Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Замечание
Библиотека активных шаблонов (ATL) продолжает поддерживаться. Однако мы больше не добавляем функции или обновляем документацию.
Эти функции обеспечивают поддержку реализаций COM Map IUnknown .
| Function | Description |
|---|---|
| AtlInternalQueryInterface | Делегирует IUnknown негрегатный объект. |
| InlineIsEqualIUnknown | Создает эффективный код для сравнения интерфейсов с IUnknown. |
Требования
Заголовок: atlbase.h
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 ();
}
InlineIsEqualIUnknown
Вызовите эту функцию для специального случая тестирования IUnknown.
BOOL InlineIsEqualUnknown(REFGUID rguid1);
Параметры
rguid1
[in] GUID для сравнения IID_IUnknownс .