Compartilhar via


Função CoGetStdMarshalEx (combaseapi.h)

Cria um marshaler padrão agregado para uso com manipuladores leves do lado do cliente.

Sintaxe

HRESULT CoGetStdMarshalEx(
  [in]  LPUNKNOWN pUnkOuter,
  [in]  DWORD     smexflags,
  [out] LPUNKNOWN *ppUnkInner
);

Parâmetros

[in] pUnkOuter

Um ponteiro para o IUnknown controlador.

[in] smexflags

Um dos dois valores que indica se o marshaler padrão agregado está no lado do cliente ou no lado do servidor. Esses sinalizadores são definidos na enumeração STDMSHLFLAGS .

Valor Significado
SMEXF_SERVER
0x01
Indica um marshaler padrão agregado do lado do servidor.
SMEXF_HANDLER
0x0
Indica um marshaler padrão agregado do lado do cliente (manipulador).

[out] ppUnkInner

No retorno bem-sucedido, o endereço do ponteiro para a interface IUnknown no marshaler padrão agregado recém-criado. Se ocorrer um erro, esse valor será NULL.

Valor retornado

Essa função retorna S_OK.

Comentários

O servidor chama CoGetStdMarshalEx passando o sinalizador SMEXF_SERVER. Isso cria um marshaler padrão do lado do servidor (conhecido como gerenciador de stub). O manipulador chama CoGetStdMarshalEx passando o sinalizador SMEXF_HANDLER. Isso cria um marshaler padrão do lado do cliente (conhecido como gerenciador de proxy). Observe que, ao chamar essa função, o manipulador deve passar o controle original desconhecido que foi passado para o manipulador quando o manipulador foi criado. Esse será o sistema implementado controlando desconhecido. A falha ao passar o IUnknown correto resulta em um erro retornado. Em caso de êxito, o ppUnkInner retornado é o controle desconhecido do objeto interno. O servidor e o manipulador devem manter esse ponteiro e podem usá-lo para chamar IUnknown::QueryInterface para a interface IMarshal .

Requisitos

   
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 combaseapi.h (inclua Objbase.h)
Biblioteca Ole32.lib
DLL Ole32.dll

Confira também

IMarshal

IStdMarshalInfo

O manipulador de Client-Side leve