Partilhar via


Funções Globais do COM Map

Observação

A Active Template Library (ATL) continua a ser suportada. No entanto, já não estamos a adicionar funcionalidades nem a atualizar a documentação.

Estas funções fornecem suporte para implementações do COM Map IUnknown .

Função Description
AtlInternalQueryInterface Delega para o IUnknown de um objeto não agregado.
InlineIsEqualIUnknown Gera código eficiente para comparar interfaces com IUnknown.

Requerimentos

Cabeçalho: atlbase.h

AtlInternalQueryInterface

Recupera um ponteiro para a interface solicitada.

HRESULT AtlInternalQueryInterface(
    void* pThis,
    const _ATL_INTMAP_ENTRY* pEntries,
    REFIID iid,
    void** ppvObject);

Parâmetros

pThis
[dentro] Um apontador para o objeto que contém o mapa COM das interfaces expostas a QueryInterface.

pEntradas
[dentro] Um conjunto de _ATL_INTMAP_ENTRY estruturas que acede a um mapa das interfaces disponíveis.

IID
[dentro] O GUID da interface a ser solicitada.

ppvObject
[fora] Um ponteiro para o ponteiro da interface especificado no iid, ou NULL se a interface não for encontrada.

Valor de retorno

Um dos valores padrão do HRESULT.

Observações

AtlInternalQueryInterface apenas trata de interfaces na tabela de mapas COM. Se o seu objeto for agregado, AtlInternalQueryInterface não delega ao desconhecido exterior. Pode introduzir interfaces na tabela de mapas COM com a COM_INTERFACE_ENTRY macro ou uma das suas variantes.

Example

// MyTimerProc is a callback function passed to SetTimer()
VOID CALLBACK MyTimerProc(HWND /*hwnd*/, UINT /*uMsg*/, UINT /*idEvent*/, 
   DWORD /*dwTime*/)
{
   LPDISPATCH pDisp = NULL;
   // gpMyCtrl is a global variable of type CMyCtrl*
   // _GetEntries() is a static function you get with BEGIN_COM_MAP()
   AtlInternalQueryInterface (gpMyCtrl, CMyCtrl::_GetEntries(), IID_IDispatch, 
      (LPVOID*)&pDisp);
   //...
   pDisp->Release ();
}

InlineIsEqualIUnknown

Chame-se a esta função, para o caso especial de testar para IUnknown.

BOOL InlineIsEqualUnknown(REFGUID rguid1);

Parâmetros

rguid1
[dentro] O GUID para comparar com IID_IUnknown.

Consulte também

Funções
COM Map Macros