CoReleaseMarshalData
9/8/2008
Essa função destrói um pacote de dados anteriormente empacotado.
Syntax
STDAPI CoReleaseMarshalData(
IStream* pStm
);
Parameters
- pStm
[no] Ponteiro para a transmitir que contém o pacote de dados para ser destruídos.
Return Value
O padrão oferece suporte a essa função retornar valores E_FAIL, E_INVALIDARG,
E_OUTOFMEMORY e E_UNEXPECTED, bem como o seguinte:
- S_OK
O pacote de dados com êxito foi destruídos.
- STG_E_INVALIDPOINTER
Um IStream Erro ao lidar com o pStm parâmetro.
- CO_E_NOTINITIALIZED
O CoInitialize função não foi chamado na atual segmento antes essa função foi chamado.
Remarks
O CoReleaseMarshalData função executa a seguinte tarefas:
- A função lê um CLSID a partir de transmitir.
- Se implementação empacotamento usar como padrão do COM estiver sendo usada, a função obtém um IMarshal ponteiro para uma instância do padrão unmarshaler.
Se empacotamento personalizado estiver sendo usado, a função cria um proxy, chamado de CoCreateInstance função, passando o CLSID-ler a partir de transmitir e solicitar uma IMarshal ponteiro interface para o proxy recém-criado. - Usando que IMarshal ponteiro interface que ele adquiriu, chamadas de função IMarshal::ReleaseMarshalData.
Normalmente o aplicativo não irá chamar essa função. Ela talvez precise chamar esta função somente se usando empacotamento personalizado para gravar e usar uma implementação especial de IMarshal. O seguinte é exemplos de situações para o qual CoReleaseMarshalData deve ser chamado:
- Uma falha tentativa foi feita para desempacotar a pacote de dados.
- Um pacote de dados empacotado foi removido de uma tabela global.
Como uma analogia, a pacote de dados pode ser considerado como uma referência para o original objeto, apenas as if fosse outro ponteiro interface sendo mantido sobre o objeto. Como um ponteiro interface real, que pacote de dados deve ser lançado em alguns apontar. O uso de IMarshal::ReleaseMarshalData a versão pacotes dados é parecido com o uso de IUnknown::Release a versão interface ponteiros.
Observe que o aplicativo não é necessário chamar CoReleaseMarshalData Após um bem-sucedido de chamar o CoUnmarshalInterface função. Que função libera os dados empacotar como parte de seu processamento.
Para determinar se a plataforma oferece suporte a essa função, consulte Determinando suporte COM APIs.
Requirements
Header | objbase.h |
Library | ole32.lib |
Windows Embedded CE | Windows CE 3.0 and later |
Windows Mobile | Windows Mobile Version 5.0 and later |