IDispatchImpl Class
Предоставляет реализацию по умолчанию для части IDispatch повторяющегося интерфейса.
Важно!
Этот класс и его члены нельзя использовать в приложениях, выполняемых в Среда выполнения Windows.
template<
class T,
const IID* piid= &__uuidof(T),
const GUID* plibid = &CAtlModule::m_libid,
WORD wMajor = 1,
WORD wMinor = 0,
class tihclass = CComTypeInfoHolder
>
class ATL_NO_VTABLE IDispatchImpl :
public T
Параметры
[входящий] T
Сдвоенный интерфейс.[входящий] piid
Указатель на идентификатор IID T.[входящий] plibid
Указатель на идентификатор LIBID библиотеки типов, содержащий сведения об интерфейсе. По умолчанию на уровне сервера библиотеки типов при передаче.[входящий] wMajor
Основной номер версии библиотеки типов. По умолчанию значение равно 1.[входящий] wMinor
Дополнительный номер версии библиотеки типов. По умолчанию значение равно 0.[входящий] tihclass
Класс, используемый для управления сведения о типе для T. Значение по умолчанию — CComTypeInfoHolder.
Члены
Открытые конструкторы
Имя |
Описание |
---|---|
Конструктор. Вызывает AddRef в защищенной переменной члена, которая управляет сведения о типе для двойного интерфейса. Деструктор вызывается Release. |
Открытые методы
Имя |
Описание |
---|---|
Сопоставляет набор имен соответствующему набору идентификаторов диспетчеризации. |
|
Возвращает сведения о типе повторяющегося интерфейса. |
|
Определяет, является ли доступным сведений о типе для двойного интерфейса. |
|
Предоставляет доступ к методам и свойствам со схожими именами, предоставляемым интерфейсом double. |
Заметки
IDispatchImpl предоставляет реализацию по умолчанию для части IDispatch любого повторяющегося интерфейса на объект. Сдвоенный интерфейс является производным от IDispatch и использует только типы Автоматизация- совместимости. Например, диспетчерский интерфейс, сдвоенный интерфейс поддерживает раннее связывание и позднее связывание; однако сдвоенный интерфейс поддерживает также привязку vtable.
В следующем примере показана типичная реализация метода IDispatchImpl:
class ATL_NO_VTABLE CBeeper :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CBeeper, &CLSID_Beeper>,
public IDispatchImpl<IBeeper, &IID_IBeeper, &LIBID_NVC_ATL_COMLib, /*wMajor =*/ 1, /*wMinor =*/ 0>
По умолчанию класс IDispatchImpl ищет сведения о типе для T в реестре. Для реализации незарегистрированный интерфейс можно использовать класс IDispatchImpl без обращения к реестру с помощью предопределенного номера версии. При создании объекта, IDispatchImpl, имеющий 0xFFFF в качестве значения для wMajor и 0xFFFF в качестве значения для wMinor, класс IDispatchImpl извлекает библиотеку типов из dll-файла вместо реестра.
IDispatchImpl содержащий статический член типа CComTypeInfoHolder, который управляет сведения о типе для двойного интерфейса. Если имеется несколько объектов, которые реализуют один и тот же сдвоенный интерфейс существует только один экземпляр CComTypeInfoHolder используется.
Иерархия наследования
T
IDispatchImpl
Требования
заголовок: atlcom.h