Função CoMarshalInterThreadInterfaceInStream (combaseapi.h)

Faz marshaling de um ponteiro de interface de um thread para outro thread no mesmo processo.

Sintaxe

HRESULT CoMarshalInterThreadInterfaceInStream(
  [in]  REFIID    riid,
  [in]  LPUNKNOWN pUnk,
  [out] LPSTREAM  *ppStm
);

Parâmetros

[in] riid

Uma referência ao identificador da interface a ser marshalada.

[in] pUnk

Um ponteiro para a interface a ser marshalada, que deve ser derivada de IUnknown. Este parâmetro pode ser NULL.

[out] ppStm

O endereço da variável de ponteiro IStream* que recebe o ponteiro de interface para o fluxo que contém a interface marshaled.

Retornar valor

Essa função pode retornar os valores de retorno padrão E_OUTOFMEMORY e S_OK.

Comentários

A função CoMarshalInterThreadInterfaceInStream permite que um objeto marshale de maneira fácil e confiável um ponteiro de interface para outro thread no mesmo processo. O fluxo retornado no parâmetro ppStm tem a garantia de se comportar corretamente quando um cliente em execução no thread de recebimento tenta desmarcar o ponteiro. Em seguida, o cliente pode chamar o CoGetInterfaceAndReleaseStream para desmarcar o ponteiro da interface e liberar o objeto de fluxo.

A função CoMarshalInterThreadInterfaceInStream executa as seguintes tarefas:

  1. Cria um objeto de fluxo.
  2. Passa o ponteiro IStream do objeto de fluxo para CoMarshalInterface.
  3. Retorna o ponteiro IStream para o chamador.

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

Confira também

CoGetInterfaceAndReleaseStream