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 para o objeto que contém o MAP COM interfaces expostas a QueryInterface.pEntries
[in] Uma matriz de _ATL_INTMAP_ENTRY estruturas que acessam um MAP das interfaces disponível.iid
[in] O GUID da interface que está sendo solicitado.ppvObject
[out] Um ponteiro para o ponteiro de interface especificado em iid, ou NULO se a interface não for encontrada.
Valor de retorno
Um dos valores HRESULT padrão.
Comentários
AtlInternalQueryInterface apenas lida com interfaces na tabela de mapeamento COM. Se o objeto é agregado, AtlInternalQueryInterface não delegado a externo desconhecido. Você pode inserir interfaces na tabela de MAP COM a macro COM_INTERFACE_ENTRY ou uma 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