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

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

Sintaxe

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

Parâmetros

[in] iMethod

O número do método.

[in] pBuffer

Um ponteiro para o buffer que contém os parâmetros marshaled out.

[in] cbBuffer

O tamanho do buffer, em bytes.

[in] ibFirstRelease

O primeiro byte no buffer a ser liberado. Um valor zero implica que os ponteiros de interface em todo o buffer devem ser liberados. A ideia é que os ponteiros de interface marshaled antes do byte indicado já tenham sido liberados por algum outro mecanismo.

[in] dataRep

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

[in] pcontext

Um ponteiro para uma estrutura CALLFRAME_MARSHALCONTEXT que contém informações sobre o contexto no qual a unmarshaling deve ser executada.

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

Para limpo recursos mantidos no buffer marshaled, o método ReleaseMarshalData deve ser chamado. No entanto, quando a enumeração MSHLFLAGS é definida como normal, isso é feito automaticamente ao desmarcar.

ReleaseMarshalData pode ser usado em parâmetros marshaled in e out.

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

ICallUnmarshal