Compartilhar via


CoReleaseMarshalData

Windows Mobile SupportedWindows Embedded CE Supported

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:

  1. A função lê um CLSID a partir de transmitir.
  2. 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.
  3. 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

See Also

Reference

COM Functions