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


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

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

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

Примечание.

Мастер не поддерживает диалоговые окна ATL, XML-веб-службы с использованием ATL, объекты производительности и счетчики производительности.

Если вы добавляете элемент управления ATL, можно указать, следует ли реализовать интерфейсы по умолчанию. Интерфейсы по умолчанию перечислены на странице Интерфейсы этого мастера и определены в файле atlcom.h.

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

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

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

  1. В представлении классов щелкните правой кнопкой мыши имя класса для объекта ATL.

  2. Выберите пункт Добавить в контекстном меню и нажмите Реализовать интерфейс, чтобы отобразить Мастер реализации интерфейса.

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

  4. В представлении класса разверните узел объекта "Базы и интерфейсы", чтобы просмотреть реализованный интерфейс. Затем разверните узел этого интерфейса, чтобы просмотреть его доступные свойства, методы и события.

    Примечание.

    Вы также можете использовать обозреватель объектов для просмотра членов интерфейса.

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

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

Этот мастер реализует интерфейс для COM-объекта. Реализации многих интерфейсов включены в библиотеки COM, доступные в Visual Studio и Windows. Реализация интерфейса связывается с объектом при создании экземпляра этого объекта. Интерфейс также предоставляет те же службы, что и объект.

Сведения об интерфейсах и реализациях см. в разделе Интерфейсы и их реализации для Windows SDK.

  • Реализовать интерфейс из

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

    Вариант Описание
    Проект Библиотека типов является частью проекта.
    Реестр Библиотека типов зарегистрирована в системе. Зарегистрированные библиотеки типов перечислены в разделе Доступные библиотеки типов.
    Файл Библиотека типов не обязательно зарегистрирована в системе, но она сохраняется в файле. Нужно указать расположение файла в поле Расположение.
  • Доступные библиотеки типов

    Отображает доступные библиотеки типов, содержащие определения интерфейсов, которые можно реализовать. Если выбрать элемент Файл в области Реализовать интерфейс из, это поле будет недоступно для изменения.

  • Местонахождение

    Отображает расположение библиотеки типов, выбранной в списке Доступные библиотеки типов. Если вы выбрали элемент Файл в области Реализовать интерфейс из, нажмите кнопку с многоточием, чтобы найти файл, содержащий нужную библиотеку типов.

  • Интерфейсы

    Отображает интерфейсы, определения которых находятся в библиотеке типов, выбранной в поле Доступные библиотеки типов.

    Примечание.

    Интерфейсы с тем же именем, что и уже реализованные выбранным объектом, не отображаются в поле Интерфейсы.

    Кнопка "Перенести" Description
    > Добавляет в список Реализовать интерфейсы имя интерфейса, выбранного в списке Интерфейсы.
    >> Добавляет в список Реализовать интерфейсы имена всех интерфейсов, доступных в списке Интерфейсы.
    < Удаляет имя интерфейса, выбранного в списке Реализовать интерфейсы.
    << Удаляет имена всех интерфейсов, указанных в списке Реализовать интерфейсы.
  • Реализовать интерфейсы

    Отображает имена интерфейсов, выбранных для реализации в объекте.

    Примечание.

    Если вы включаете больше одного интерфейса, производного от IDispatch, или пытаетесь реализовать интерфейс, производный от другого интерфейса, который уже входит в ваш класс, нужно устранить неоднозначность записей COM_MAP. Дополнительные сведения см. в разделе COM_INTERFACE_ENTRY2.