Compartilhar via


Método IMarshal::ReleaseMarshalData (objidl.h)

Destrói um pacote de dados que teve marshal realizado.

Sintaxe

HRESULT ReleaseMarshalData(
  [in] IStream *pStm
);

Parâmetros

[in] pStm

Um ponteiro para um fluxo que contém o pacote de dados a ser destruído.

Retornar valor

Esse método pode retornar os valores de retorno padrão S_OK e E_FAIL, bem como qualquer um dos erros de acesso de fluxo para a interface IStream .

Comentários

Se o pacote de dados marshaled de um objeto não for unmarshaled no espaço de processo do cliente e o pacote não for mais necessário, o cliente chamará ReleaseMarshalData na implementação IMarshal do proxy para instruir o objeto a destruir o pacote de dados. A chamada ocorre dentro da função CoReleaseMarshalData . O pacote de dados serve como uma referência adicional no objeto e liberar os dados é como liberar um ponteiro de interface chamando Release.

Se o pacote de dados marshaled de alguma forma não chegar no processo do cliente ou se ReleaseMarshalData não for recriado com êxito no proxy, COM poderá chamar esse método no próprio objeto.

Anotações para chamadores

Você raramente terá a oportunidade de chamar esse método por conta própria. Uma possível exceção seria se você implementasse o IMarshal em uma fábrica de classes para um objeto de classe no qual você também está implementando o IMarshal. Nesse caso, se você estivesse fazendo marshaling do objeto para uma tabela em que ele poderia ser recuperado por vários clientes, você poderia, como parte de sua rotina de unmarshaling, chamar ReleaseMarshalData para liberar o pacote de dados para cada proxy.

Anotações aos implementadores

Se sua implementação armazenar informações de estado sobre pacotes de dados marshaled, você poderá usar esse método para liberar as informações de estado associadas ao pacote de dados representado pelo pStm. Sua implementação também deve posicionar o ponteiro seek no fluxo após o último byte de dados.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo com suporte Windows 2000 Server [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho objidl.h (inclua ObjIdl.h)

Confira também

CoReleaseMarshalData

IMarshal