AtlInternalQueryInterface
Извлекает указатель на запрашиваемый интерфейс.
HRESULT AtlInternalQueryInterface(
void* pThis,
const _ATL_INTMAP_ENTRY* pEntries,
REFIID iid,
void** ppvObject
);
Параметры
pThis
[in] Указатель на объект, который содержит сопоставление модели COM интерфейс предоставлял к QueryInterface.pEntries
[in] Массив структур _ATL_INTMAP_ENTRY, которые обращаются к сопоставления доступных интерфейсов.iid
[in] Идентификатор GUID, спрашиванной интерфейса.ppvObject
[out] Указатель на указатель интерфейса, указанному в iid или NULL если интерфейс не найден.
Возвращаемое значение
Один из стандартных значений HRESULT.
Заметки
Интерфейсы маркеров AtlInternalQueryInterface только в таблице сопоставлений модели COM. Если объект статистической обработки, не AtlInternalQueryInterface делегатов к внешнему неизвестный тип. Можно ввести интерфейсы в таблицу сопоставления модели COM с макросом COM_INTERFACE_ENTRY или одним из его вариантов.
Пример
// 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 ();
}
Требования
Header: atlbase.h
См. также
Ссылки
CComObjectRootEx::InternalAddRef
CComObjectRootEx::InternalRelease