Partilhar via


AtlInternalQueryInterface

Recupera um ponteiro para a interface solicitada.

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

Parâmetros

  • pThis
    [in] um ponteiro ao objeto que contém o mapa de interfaces COM tenha expostos a QueryInterface.

  • pEntries
    [in] um vetor de estruturas de _ATL_INTMAP_ENTRY que acessam um mapa de interfaces disponíveis.

  • iid
    [in] GUID de interface que está sendo solicitada.

  • ppvObject
    [out] um ponteiro ao ponteiro de interface especificada em iid, ou NULO se a interface não for encontrada.

Valor de retorno

Um dos valores padrão do HRESULT.

Comentários

AtlInternalQueryInterface trata apenas interfaces na tabela do mapa da. Se o objeto é agregado, AtlInternalQueryInterface não delega ao desconhecido externo. Você pode inserir interfaces na tabela de mapa de COM_INTERFACE_ENTRY COM com macros ou de suas variantes.

Exemplo

// 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 ();
}

Requisitos

Cabeçalho: atlbase.h

Consulte também

Referência

CComObjectRootEx::InternalAddRef

CComObjectRootEx::InternalRelease

Outros recursos

Funções globais do mapa COM