Здесь на Visual Basic выполняются
Пример 1
Здесь на Visual Basic выполняются методы AddRef и Release для объекта СОМ: 'Вызов метода AddRef
Set MyObject = CreateObject('Word.Application")
'Вызов метода Release
Set MyObject = Nothing
Интерфейс IDispatch IDispatch — это интерфейс автоматизации для контроллеров, не использующих интерфейсы СОМ напрямую. Исполняемый файл или DLL, использующие I Dispatch, называют серверами автоматизации. При доступе к объекту через интерфейс IDispatch применяется отложенное связывание — реальный доступ происходит во время выполнения. IDispatch поддерживает следующие основные методы.
- GetIDsOfNames — отображает имя одного члена класса и, по желанию, набор имен аргументов в соответствующий набор целых идентификаторов связи (Dispatch Identifier, DISPID), которые затем можно использовать в вызовах метода Invoke.
- GetTypeInfo — извлекает информацию о типах объекта.
- GetTypeInfoCount — извлекает информацию о типах, предоставляемых объектом (возвращает 0, если информации о типах нет, и 1 — если есть).
- Invoke — предоставляет доступ к свойствам и методам объекта.
Set MyObject = CreateObject("Word.Application")
Применение общей объектной переменной обеспечивает отложенное связывание — Вы можете использовать одну и ту же переменную для различных объектов и для объектов, которые поддерживают только отложенное связывание. Виртуальные таблицы Автоматизация позволяет ActiveX-клиенту вызывать метод или свойство напрямую. Этот способ, не использующий интерфейс IDispatch, называется связыванием через виртуальную таблицу. В Visual Basic применение виртуальной таблицы именуют ранним связыванием. Для него необходима информации о типах в виде библиотеки типов. Клиент получает эти данные на стадии компиляции, проверяет типы и синтаксис и затем вызывает методы и функции напрямую. На стадии выполнения раннее связывание работает гораздо быстрее, поскольку местонахождение сервера автоматизации уже известно, типы данных и синтаксис проверены, а доступ осуществляется непосредственно, без вызова IDispatch. Для ссылки на экземпляры интерфейсов клиенты используют указатели, получая их во время создания объекта или запрашивая объект. Определив интерфейс, Вы задаете массив указателей на функции, известный как виртуальная таблица (Virtual Table, VTBL). Функции, на которые указывают члены VTBL, называются методами, или функциями-членами интерфейса. Общепринято имена интерфейсов начинать с буквы «I».