Поделиться через


IDispEventImpl Class

Этот класс предоставляет реализации методов IDispatch.

Важно!

Этот класс и его члены нельзя использовать в приложениях, выполняемых в Среда выполнения Windows.

template < 
UINT nID, 
class T, 
const IID* pdiid= &IID_NULL, 
const GUID* plibid= &GUID_NULL, 
WORD wMajor= 0, 
WORD wMinor= 0, 
class tihclass= CcomTypeInfoHolder 
> 
class ATL_NO_VTABLE IDispEventImpl : 
public IDispEventSimpleImpl<nID, T, pdiid>

Параметры

  • nID
    Уникальный идентификатор для исходного объекта. При IDispEventImpl базовый класс для составного элемента управления, используйте идентификатор требуемого ресурса, содержащихся элементов управления для этого параметра. В других случаях, используйте произвольное положительное целое число.

  • T
    Класс, производный от IDispEventImpl пользователя.

  • pdiid
    Указатель на идентификатор IID диспетчерский интерфейс события, реализуемого этим классом. Этот интерфейс должен быть определен в библиотеке типов, указанной plibid, wMajor и wMinor.

  • plibid
    Указатель на библиотеку типов, которая определяет интерфейс диспетчера указал на pdiid. Если &GUID_NULL библиотека типов будет загружено из поиска объекта события.

  • wMajor
    Основной номер версии библиотеки типов. Значение по умолчанию - 0.

  • wMinor
    Дополнительный номер версии библиотеки типов. Значение по умолчанию - 0.

  • tihclass
    Класс, используемый для управления сведения о типе для T. По умолчанию класс типа CComTypeInfoHolder; однако можно переопределить этот параметр шаблона, предоставляя класс типа, за исключением CComTypeInfoHolder.

Члены

Открытые определения типов

Имя

Описание

IDispEventImpl Class

Класс, используемый для управления сведения о типе. По умолчанию — CComTypeInfoHolder.

Открытые конструкторы

Имя

Описание

IDispEventImpl::IDispEventImpl

Конструктор.

Открытые методы

Имя

Описание

IDispEventImpl::GetFuncInfoFromId

Находит индекс функции для заданного идентификатора диспетчера.

IDispEventImpl::GetIDsOfNames

Сопоставляет один элемент и необязательный набор имен аргументов к соответствующему набору целого числа идентификаторов dispid.

IDispEventImpl::GetTypeInfo

Извлекает сведения о типе объекта.

IDispEventImpl::GetTypeInfoCount

Извлекает число интерфейсов сведений о типе.

IDispEventImpl::GetUserDefinedType

Возвращает базовый тип пользовательского типа.

Заметки

IDispEventImpl предоставляет способ реализации диспетчерский интерфейс события, не требуя указанных код реализации для каждого метода или события, в этом интерфейсе. IDispEventImpl предоставляет реализации методов IDispatch. Нужно только предоставить реализацию для событий, что нужно знать обработки.

Рабочие IDispEventImpl совместно с сопоставление приемника событий в классе для направления события в соответствующее обработчик функции. Использовать этот класс.

Добавить макрос SINK_ENTRY или SINK_ENTRY_EX к сопоставлению приемника событий для всех событий для каждого объекта, который необходимо обработать. При использовании IDispEventImpl в качестве базового класса составного элемента управления можно вызвать AtlAdviseSinkMap для задания и критические соединение с источниками событий для всего сопоставления приемников записей в случае. В других случаях или для больших элемента управления, DispEventAdvise вызова для установки подключения между исходный объект, а базовый класс. Вызов DispEventUnadvise для прерывания соединение.

Необходимо наследовать IDispEventImpl (с использованием уникальное значение для nID) для каждого объекта, для которого нужно обрабатывать события. Можно повторно использовать базовый класс, unadvising к одному объекту-источнику затем советуя относительно другого объекта источника, но максимальное число исходных объектов, которые могут быть одним объектом обработаны одновременно ограничено числом базовых классов IDispEventImpl.

IDispEventImpl предоставляет те же функциональные возможности, что IDispEventSimpleImpl, за исключением того, что она возвращает сведения о типе об интерфейсе из библиотеки типов, а не его с предоставленными как указатель на структуру _ATL_FUNC_INFORMATION. Используйте IDispEventSimpleImpl при отсутствии библиотеку типов, описывающую интерфейс события или не понадобиться, чтобы избежать издержек, связанных с использованием библиотеки типов.

Примечание

IDispEventImpl и IDispEventSimpleImpl обеспечивают собственную реализацию IUnknown::QueryInterface что каждый базовый класс IDispEventImpl и IDispEventSimpleImpl, чтобы задействовать его как отдельный идентификатор модели COM, пока все еще, обеспечивая прямой доступ к членам класса в основном COM-объект.

Реализация библиотеки ATL CE событий ActiveX только обозреватель типов тонет возвращаемые значения HRESULT или свободного пространства из методов обработчика событий; любое другое возвращаемое значение не поддерживается и его функциональности не определено.

Дополнительные сведения см. в разделе Поддержка IDispEventImpl.

Иерархия наследования

_IDispEvent

_IDispEventLocator

IDispEventSimpleImpl

IDispEventImpl

Требования

Header: atlcom.h

См. также

Ссылки

_ATL_FUNC_INFO Structure

IDispatchImpl Class

IDispEventSimpleImpl Class

SINK_ENTRY

SINK_ENTRY_EX

SINK_ENTRY_INFO

Другие ресурсы

ATL Class Overview