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


Implementing a Dual Interface

Можно реализовать с помощью класса IDispatchImpl сдвоенный интерфейс, который предоставляет реализацию по умолчанию IDispatch двойном методов в интерфейсе. Дополнительные сведения см. в разделе Implementing the IDispatch Interface.

Использовать этот класс.

  • Укажите собственный сдвоенный интерфейс в библиотеке типов.

  • Создайте производный класс от специализации IDispatchImpl (передачи данных об интерфейсе и библиотеке типов как аргументы шаблонов).

  • Добавьте запись (или записи) к сопоставлению COM для предоставления сдвоенный интерфейс, через QueryInterface.

  • Реализуйте vtable часть интерфейса в классе.

  • Убедитесь, что библиотека типов, содержащие определения интерфейсов доступные объекты во время выполнения.

Мастер простых объектов ATL

Если нужно создать новый интерфейс и новый класс для реализации его можно использовать Библиотеки ATL добавляет диалоговое окно класса, а затем Мастер объекта простой библиотеки ATL.

Мастер реализации интерфейсов

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

Примечание

Можно обработать созданный базовым классом, поэтому основной и дополнительный номера версии библиотеки типов, передаются как аргументы шаблонов к базовому классу IDispatchImpl.Мастер реализации интерфейса не проверяет номер версии библиотеки типов.

Реализация интерфейса IDispatch

Можно использовать базовый класс, обеспечивающий реализацию IDispatchImpl только диспетчерский интерфейс, указав соответствующую запись в сопоставлении модели COM (использование макроса COM_INTERFACE_ENTRY2 или COM_INTERFACE_ENTRY_IID ), пока будет библиотеку типов, описывающую соответствующий сдвоенный интерфейс. Он скорее общий для реализации интерфейса IDispatch таким образом, например. Мастер объекта библиотеки ATL простой и мастера обе реализации интерфейса предположим, что необходимо реализовать предназначен IDispatch таким образом, поэтому они добавляют соответствующую запись для сопоставления.

Примечание

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

См. также

Основные понятия

Dual Interfaces and ATL