Compartilhar via


Método IGlobalInterfaceTable::GetInterfaceFromGlobal (objidl.h)

Recupera um ponteiro para uma interface em um objeto utilizável pelo apartment de chamada. Essa interface deve estar registrada atualmente na tabela de interface global.

Sintaxe

HRESULT GetInterfaceFromGlobal(
  [in]  DWORD  dwCookie,
  [in]  REFIID riid,
  [out] void   **ppv
);

Parâmetros

[in] dwCookie

Identifica a interface (e seu objeto) e é recuperado por meio de uma chamada para IGlobalInterfaceTable::RegisterInterfaceInGlobal.

[in] riid

O IID da interface.

[out] ppv

Um ponteiro para o ponteiro para a interface solicitada.

Retornar valor

Esse método pode retornar os valores a seguir.

Código de retorno Descrição
S_OK
O método foi concluído com sucesso.
E_INVALIDARG
Um ou mais parâmetros são inválidos.

Comentários

Depois que uma interface tiver sido registrada na tabela de interface global, um apartment poderá obter um ponteiro para essa interface chamando o método GetInterfaceFromGlobal com o cookie fornecido. Esse ponteiro para a interface pode ser usado no apartamento de chamada, mas não por outros apartamentos no processo.

O aplicativo é responsável por coordenar o acesso à variável global durante chamadas para IGlobalInterfaceTable::RevokeInterfaceFromGlobal. Ou seja, o aplicativo deve garantir que um thread não chame RevokeInterfaceFromGlobal enquanto outro thread estiver chamando GetInterfaceFromGlobal com o mesmo cookie. Várias chamadas para GetInterfaceFromGlobal para o mesmo cookie são permitidas.

O método GetInterfaceFromGlobal chama AddRef no ponteiro obtido no parâmetro ppv . É responsabilidade do chamador chamar Release nesse ponteiro.

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 objidl.h (inclua ObjIdl.h)

Confira também

Iglobalinterfacetable