Занятие 1. Архитектура СОМ - 4
В Visual Basic метод
AddRef вызывается при использовании функции
CreateObject.
Метод Release применяется для уничтожения объекта и уменьшения значения счетчика ссылок. В Visual Basic это делают, присваивая объекту значение Nothing.
Метод Querylnterface предоставляет список интерфейсов, поддерживаемых объектом. Например, объект СОМ может иметь разные интерфейсы для работника и для менеджера (lEmployee и IManager). Если клиент содержит объектную переменную, которая указывает на достоверный интерфейс СОМ, он вправе, используя этот метод, запросить любой интерфейс, предоставляемый объектом. Visual Basic предоставляет такую возможность автоматически средствами оператора Set.
Пример Здесь на 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 — предоставляет доступ к свойствам и методам объекта.
Во время выполнения клиент передает строку с именем свойства (или метода), которое он хочет вызвать, методу IDispatch.GetIDsOfNames. Если данное свойство (или метод) объекта существует, клиент получает идентификатор соответствующей функции.
Начало Назад Вперед