CoGetStandardMarshal
9/8/2008
Essa função cria um usar como padrão, ou padrão, objeto empacotamento no processo de cliente ou o processo servidor, depending on o chamador e retorna um ponteiro para do esse objeto IMarshal implementação.
Syntax
STDAPI CoGetStandardMarshal(
REFIID riid,
IUnknown* pUnk,
DWORD dwDestContext,
LPVOID pvDestContext,
DWORD mshlflags,
LPMARSHAL* ppMarshal
);
Parameters
- riid
[no] Referência ao identificador da interface cujo ponteiro é para ser empacotado. Esta interface deve ser derivado a partir de IUnknown interface.
- pUnk
[no] Ponteiro para a interface para ser empacotado.
dwDestContext
[no] Contexto de destino em que a interface especificada deve ser unmarshaled. Valores para dwDestContext provenientes de enumeração MSHCTX.Atualmente, desempacotamento pode ocorrer em outro compartimento do atual processo (MSHCTX_INPROC) ou em outro processo no mesmo computador como o atual processo (MSHCTX_LOCAL).
- pvDestContext
[no] Reservado para uso futuro; deve ser NULL.
- mshlflags
[no] Sinalizador que indica se os dados ser empacotado é para serem transmitidos voltar para o processo cliente — a maiúsculas e minúsculas normal — ou gravado em uma tabela global, onde ele pode ser recuperado por múltiplo clientes. Os valores válidos provenientes de MSHLFLAGS enumeração.
- ppMarshal
[out] Endereço do IMarshalvariável * pointer que recebe o ponteiro interface para o padrão empacotador.
Return Value
O padrão oferece suporte a essa função retornar valores E_FAIL, E_OUTOFMEMORY e E_UNEXPECTED, bem como o seguinte:
- S_OK
O IMarshal instância foi retornada com êxito.
- CO_E_NOTINITIALIZED
O CoInitialize função não foi chamado na atual segmento antes essa função foi chamado.
Remarks
O CoGetStandardMarshal função cria um usar como padrão, ou padrão, objeto empacotamento no processo de cliente ou o processo servidor, como pode ser necessário e retorna do esse objeto IMarshal ponteiro para o chamador.
Se você implementar IMarshal, você pode desejar sua implementação para chamar CoGetStandardMarshal Como uma forma de delegar a implementação usar como padrão do COM qualquer contextos destino que você não entende totalmente ou desejar ao identificador. Caso contrário, você pode ignorar essa função, que chama COM como parte de seus procedimentos internos empacotamento.
Quando a biblioteca COM no processo de cliente recebe um ponteiro empacotado interface, ele procura uma CLSID a ser usado em criar um proxy para fins de desempacotamento o pacote.
Se o pacote não contiver um CLSID para o proxy, COM chamadas CoGetStandardMarshal, passando um NULL pUnk valor. Essa função cria um padrão proxy no processo de cliente e retorna um ponteiro para implementação do que proxy do IMarshal. COM usa esse ponteiro para chamar CoUnmarshalInterface Para recuperar o ponteiro para a interface solicitada.
Se implementação do aplicativo de servidor o OLE do IMarshal Chamadas CoGetStandardMarshal, você deve transmitir dois de IID de (riid) e um ponteiro para (pUnk), a interface requisitada.
Esta função executa a seguinte tarefas:
- Determina se pUnk é NULL.
- Se pUnk é NULL, cria um padrão interface proxy no processo de cliente para o especificado riid e retorna do o proxy IMarshal ponteiro.
- Se não for pUnk NULL, verifica se um empacotador para o objeto já existe, cria um novo nome se necessário e retorna do o empacotador IMarshal ponteiro.
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 |