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


Добавление точки подключения к объекту

Учебник по библиотеке ATL показано, как создать элемент управления с поддержкой точек подключения, например добавление события, а затем, как реализовать точки подключения.Точки подключения инструментов библиотеки ATL с классом IConnectionPointImpl.

Чтобы реализовать точки подключения, имеется 2 варианта:

  • Реализуйте собственный исходящий источник события, путем добавления точки подключения к элементу управления или объекту.

  • Используйте интерфейс точки подключения, указанный в другую библиотеку типов.

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

Добавление точка подключения к элементу управления или возразить

  1. Укажите диспетчерский интерфейс в блоке библиотеки файла idl.Если включена поддержка точек подключения, при создании элемента управления с помощью мастера управления библиотеки ATL, диспетчерский интерфейс уже будет создано.Если не включена поддержка точек подключения, при создании элемента управления необходимо вручную добавить диспетчерский интерфейс в idl-файл.Ниже приведен пример dispinterface.Для исходящих интерфейсов будут интерфейсами диспетчера но многие языки скриптов как VBScript и JScript, поэтому требуется польз этого примера 2 диспетчерские интерфейсы:

    [
       uuid(3233E37D-BCC0-4871-B277-48AE6B61224A),
       helpstring("Buddy Events")
    ]
    dispinterface DBuddyEvents
    {
       properties:
       methods:
    };
    

    Используйте uuidgen.exe или программу guidgen.exe для формирования идентификаторов GUID.

  2. Добавьте диспетчерский интерфейс в качестве интерфейса [default,source] в компонентный класс для объекта в idl-файле проекта.Опять же, если включена поддержка точек подключения, создав элемент управления, мастер элементов управления библиотеки ATL создает запись [default,source].Чтобы вручную добавить эту запись, добавить линию полужирным шрифтом.

    coclass Buddy
    {
       [default] interface IBuddy;
       [default,source] dispinterface DBuddyEvents;
    };
    

    См. файл idl в образце библиотеки ATL Circ для примера.

  3. Используйте представление классов для добавления методов и свойств на интерфейс событий.Щелкните правой кнопкой мыши класс в представлении классов, Добавить в контекстном меню, и выберите ДобавитьConnection Point.

  4. В списке реализовать точки подключения Исходные интерфейсы мастера выберите Project's interfaces.При выборе интерфейс для элемента управления и давления ОК, будет:

    • Создайте файл заголовка с данным классом прокси события, реализующий код, который вызывает исходящие вызовы для событий.

    • Добавьте запись в сопоставление точки подключения.

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

Повторно использовать интерфейс точки подключения, указанный в другую библиотеку типов

  1. В представлении классов щелкните правой кнопкой мыши класс, реализующий макрос BEGIN_COM_MAP, Добавить в контекстном меню, и нажмите кнопку ДобавитьConnection Point.

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

  3. Правка idl-файл к этому:

    • Скопируйте диспетчерский интерфейс из файла idl для объекта источника события которого используется.

    • Используйте инструкцию importlib в этой библиотеке типов.

См. также

Ссылки

Точки подключения библиотеки ATL