Интерфейс IDispatch и специальные возможности
Интерфейс IDispatch изначально предназначен для поддержки автоматизации. Он предоставляет механизм последней привязки для доступа к методам и свойствам объекта и получения сведений. Ранее разработчикам серверов пришлось реализовать интерфейсы IDispatch и интерфейсы IAccessible для своих доступных объектов; то есть они должны были предоставить двойной интерфейс. С помощью Microsoft Active Accessibility 2.0 серверы могут возвращать E_NOTIMPL из методов IDispatch, а Microsoft Active Accessibility реализует для них интерфейс IAccess.
Помимо методов, унаследованных от IUnknown, разработчики серверов должны реализовать следующие методы в определении класса каждого объекта, который предоставляется:
- GetTypeInfoCount возвращает количество описаний типов для объекта. Для объектов, поддерживающих IDispatch, число сведений о типе всегда одно.
- GetTypeInfo извлекает описание программного интерфейса объекта.
- GetIDsOfNames сопоставляет имя метода или свойства с DISPID, которая позже используется для вызова метода или свойства.
- Invoke вызывает один из методов объекта или получает или задает одно из его свойств.