CoUnmarshalInterface
9/8/2008
Essa função inicializa um proxy recém-criado usando dados gravados na transmitir por um chamar anterior para o CoMarshalInterface função e retorna um ponteiro interface para esse proxy.
Syntax
STDAPI CoUnmarshalInterface(
IStream* pStm,
REFIID riid,
void** ppv
);
Parameters
- pStm
[no] Ponteiro para a transmitir a partir da qual a interface é ser unmarshaled.
- riid
[no] Referência ao identificador da interface seja unmarshaled.
- PPV
[out] Endereço do ponteiro variável que recebe o ponteiro interface solicitado em riid. Após bem-sucedido retornar *PPV Contém o ponteiro interface solicitada para a interface unmarshaled.
Return Value
Essa função suporta o padrão valor de retorno E_FAIL, bem como o seguinte:
- S_OK
O ponteiro interface foi unmarshaled com êxito.
- STG_E_INVALIDPOINTER
pStm é um inválido ponteiro.
- CO_E_NOTINITIALIZED
O CoInitialize função não foi chamado na atual segmento antes essa função foi chamado.
- CO_E_OBJNOTCONNECTED
O aplicativo objeto foi desconectado do sistema arquitetura de comunicação remota (de exemplo, as a result of um chamar para o CoDisconnectObject função).
- REGDB_E_CLASSNOTREG
Erro ao ler o banco de dados registro.
- E_NOINTERFACE
O final Falha de QueryInterface desta função para a interface solicitada retornou E_NOINTERFACE.
- CoCreateInstanceErros
Erro ao criar o manipulador.
Remarks
O CoUnmarshalInterface função executa a seguinte tarefas:
- Lê a partir de transmitir o CLSID a ser usado para criar uma instância do proxy.
- Obtém um IMarshal ponteiro para o proxy que é fazer o desempacotamento.
Se o objeto usa implementação empacotamento usar como padrão do COM, o ponteiro assim obtido é para uma instância do genérico objeto proxy.
Se o empacotamento está ocorrendo entre dois segmentos no mesmo processo, o ponteiro é uma instância do in-processo empacotador de segmentos livres.
Se o objeto fornece sua própria codificar empacotamento, CoUnmarshalInterface Chamadas de CoCreateInstance função, passando o CLSID-ler a partir de transmitir empacotamento.
CoCreateInstance Cria uma instância de proxy do objeto e retorna um IMarshal ponteiro interface para o proxy. - Usando que IMarshal ponteiro interface que ele foi adquirido, em seguida, chama a função IMarshal::UnmarshalInterface e, se apropriado, IMarshal::ReleaseMarshalData.
O primário chamador desta função está COM em si, de dentro proxies interface ou stubs que desempacotar um ponteiro interface.
Há, no entanto, algumas situações em que o aplicativo pode chamar CoUnmarshalInterface. De exemplo, quando estiver implementando um stub, ele irá chamar CoUnmarshalInterface Quando o stub recebe um ponteiro interface como um parâmetro no chamar método.
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 |