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