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


Создание интерфейса COM

Visual Studio предоставляет мастеры и шаблоны для создания проектов, использующих определяющие COM интерфейсы и disp-интерфейсы для COM-объектов и классов автоматизации.

Эти мастеры можно использовать для выполнения трех следующих типичных задач.

  • Добавление поддержки ATL в проект MFC

    Добавьте поддержку ATL в приложение MFC после создания проекта MFC с помощью мастера приложений MFC и последующего запуска мастера кода Добавление поддержки ATL в MFC. Эта поддержка действует только для простых COM-объектов, добавленных в исполняемый файл MFC или проект библиотеки DLL. Эти объекты ATL могут иметь несколько интерфейсов.

  • Создание элемента ActiveX MFC

    Откройте Мастер элементов ActiveX MFC для создания элемента управления ActiveX с disp-интерфейсом и схемы событий, определенных в IDL-файле и классе элементов управления соответственно.

  • Добавление элемента управления ATL

    Используйте сочетание мастера проектов ATL и мастера элементов управления ATL, чтобы создать элемент управления ActiveX ATL.

    Вы также можете добавить элемент управления ATL в проект MFC, куда уже добавили поддержку ATL, как описано выше. Кроме того, если вы выбираете пункт Элемент управления ATL в диалоговом окне Добавление класса и еще не добавили поддержку ATL в проект MFC, Visual Studio отображает диалоговое окно с предложением подтвердить добавление поддержки ATL в ваш проект MFC.

    Этот мастер создает исходный код IDL и схему COM в классах проекта.

После открытия проекта ATL диалоговое окно Добавление класса позволяет вам выбрать дополнительные мастеры и шаблоны для добавления COM-интерфейсов в проект. Следующие мастеры позволяют задать один или несколько интерфейсов для объекта.

Кроме того, можно реализовать новые интерфейсы для своего элемента управления COM. Просто щелкните правой кнопкой мыши класс элемента управления объекта в представлении классов и выберите команду Реализовать интерфейс.

Примечание.

Visual Studio не предоставляет мастер для добавления интерфейса в проект. Вы можете добавить интерфейс в проект ATL или добавить поддержку ATL в проект MFC, добавив простой объект с помощью мастера простых объектов ATL. Кроме того, можно открыть IDL-файл проекта и создать интерфейс, введя следующее:

interface IMyInterface {
};

Дополнительные сведения см. в разделах Реализация интерфейса и Добавление объектов и элементов управления в проект ATL.

Visual C++ предоставляет несколько способов просмотра и редактирования COM-интерфейсов, определенных для проектов. В представлении классов отображаются значки для всех интерфейсов или disp-интерфейсов, определенных в IDL-файле проекта C++.

Для классов COM-объектов на основе ATL представление классов считывает схему COM в классе ATL, чтобы показать связь между классом ATL и любым из реализуемых им интерфейсов.

В представлении классов и его контекстных меню можно работать с интерфейсами следующим образом.

  • Добавление объектов ATL в приложение на основе MFC.
  • Добавление методов, свойств и событий.
  • Переход непосредственно к коду интерфейса элемента с помощью двойного щелчка элемента.

В этом разделе

Изменение интерфейса COM

С помощью команд из контекстного меню представления классов можно определить новые методы и свойства для COM-интерфейсов в проектах Visual Studio C++. С панели элементов можно также определить события для элементов управления ActiveX.

Для классов COM-объектов на основе ATL и MFC можно изменить реализацию класса одновременно с редактированием интерфейса.

Примечание.

Для интерфейсов, определенных за пределами диалогового окна Добавление класса, Visual C++ добавляет методы или свойства в IDL-файл, а также добавляет заглушки в классы, реализующие методы, даже если интерфейсы добавляются вручную.

Ниже указаны три мастера, помогающие настроить существующие интерфейсы. Они доступны из представления классов:

Мастер Тип проекта
Мастер добавления свойства Проекты ATL или проекты MFC, поддерживающие ATL. Щелкните правой кнопкой мыши интерфейс, в который нужно добавить свойство.

При необходимости Visual C++ определяет тип проекта и изменяет параметры в мастере добавления свойства:

— Для disp-интерфейсов в проектах, созданных с помощью мастера приложений MFC, вызов мастера добавления свойства предоставляет параметры, характерные для MFC.
— Для интерфейсов элементов управления ActiveX библиотеки MFC мастер добавления свойства предоставляет список стандартных методов и свойств, которые можно использовать в исходном виде либо настроить для своего элемента управления.
— Для всех других интерфейсов мастер добавления свойства предоставляет параметры, подходящие для большинства ситуаций.
Мастер добавления метода Проекты ATL или проекты MFC, поддерживающие ATL. Щелкните правой кнопкой мыши интерфейс, в который нужно добавить метод.

При необходимости Visual C++ определяет тип проекта и изменяет параметры в мастере добавления метода:

— Для disp-интерфейсов в проектах, созданных с помощью мастера приложений MFC, вызов мастера добавления метода предоставляет параметры, характерные для MFC.
— Для интерфейсов элементов управления ActiveX библиотеки MFC мастер добавления метода предоставляет список стандартных методов и свойств, которые можно использовать в исходном виде либо настроить для своего элемента управления.
— Для всех других интерфейсов мастер добавления метода предоставляет параметры, подходящие для большинства ситуаций.

Кроме того, можно реализовать новые интерфейсы для своего элемента управления COM. Просто щелкните правой кнопкой мыши класс элемента управления объекта в представлении классов и выберите команду Реализовать интерфейс.