Compartilhar via


Método ICallFrame::ReleaseMarshalData (callobj.h)

Libera recursos que são mantidos por ponteiros de interface que residem em um pacote de dados empacotados. Esse método localiza todos os ponteiros de interface no pacote e chama a função CoReleaseMarshalData em cada um deles.

Sintaxe

HRESULT ReleaseMarshalData(
  [in] PVOID                    pBuffer,
  [in] ULONG                    cbBuffer,
  [in] ULONG                    ibFirstRelease,
  [in] RPCOLEDATAREP            dataRep,
  [in] CALLFRAME_MARSHALCONTEXT *pcontext
);

Parâmetros

[in] pBuffer

Um ponteiro para o buffer que contém os valores de marshaled [out].

[in] cbBuffer

O tamanho do buffer, em bytes.

[in] ibFirstRelease

O primeiro byte no buffer, que deve ser liberado. Um valor zero implica que os ponteiros de interface em todo o buffer devem ser liberados. Presume-se que os ponteiros da interface marshaled foram liberados por algum outro mecanismo.

[in] dataRep

A representação de dados com a qual os dados foram empacotados.

[in] pcontext

Um ponteiro para a estrutura CALLFRAME_MARSHALCONTEXT que contém informações de contexto sobre como o não marshaling é realizado.

Retornar valor

Esse método pode retornar os valores a seguir.

Código de retorno Descrição
S_OK
O método foi concluído com sucesso.
E_UNEXPECTED
Ocorreu um erro inesperado.

Comentários

O método ReleaseMarshalData deve ser chamado exatamente uma vez para limpo os recursos mantidos em um buffer marshaled. No entanto, quando a enumeração MSHLFLAGS é definida como MSHLFLAGS_NORMAL, isso é feito automaticamente durante o des marshaling e, portanto, não precisa ser executado explicitamente.

Esse método pode funcionar corretamente nos parâmetros [in] e [out] empacotados.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho callobj.h

Confira também

ICallFrame