Método IMarshal::UnmarshalInterface (objidlbase.h)
Cancela amarcação de um ponteiro de interface.
Sintaxe
HRESULT UnmarshalInterface(
[in] IStream *pStm,
[in] REFIID riid,
[out] void **ppv
);
Parâmetros
[in] pStm
Um ponteiro para o fluxo do qual o ponteiro da interface deve ser nãomarsalizado.
[in] riid
Uma referência ao identificador da interface a ser desmarsalada.
[out] ppv
O endereço da variável de ponteiro que recebe o ponteiro da interface. Após o retorno bem-sucedido, *ppv contém o ponteiro de interface solicitado da interface a ser nãomarsalizado.
Retornar valor
Esse método pode retornar o valor retornado padrão E_FAIL, bem como os valores a seguir.
Código de retorno | Descrição |
---|---|
|
O ponteiro da interface não foimarsalizado com êxito. |
|
Não há suporte para a interface especificada. |
Comentários
A biblioteca COM no processo em que a unmarshaling deve ocorrer chama a implementação do proxy desse método.
Anotações aos Chamadores
Não chame este método diretamente. No entanto, há algumas situações em que você pode chamá-lo indiretamente por meio de uma chamada para CoUnmarshalInterface. Por exemplo, se você estiver implementando um stub, sua implementação chamará CoUnmarshalInterface quando o stub receber um ponteiro de interface como um parâmetro em uma chamada de método.Observações aos implementadores
A implementação do proxy deve ler os dados gravados no fluxo pela implementação do objeto original de IMarshal::MarshalInterface e usar esses dados para inicializar o objeto proxy cujo CLSID foi retornado pela chamada do stub de marshaling para a implementação do objeto original de IMarshal::GetUnmarshalClass.Para retornar o ponteiro de interface apropriado, a implementação do proxy pode simplesmente chamar QueryInterface em si mesma, passando os parâmetros riid e ppv . No entanto, sua implementação de UnmarshalInterface é livre para criar um objeto diferente e, se necessário, retornar um ponteiro para ele.
Pouco antes de sair, mesmo que saia com um erro, sua implementação deve reposicionar o ponteiro de busca no fluxo imediatamente após o último byte de dados lidos.
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 | objidlbase.h (inclua ObjIdl.h) |