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


Интерфейс IDispatch и специальные возможности

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

Помимо методов, унаследованных от IUnknown, разработчики серверов должны реализовать следующие методы в определении класса каждого объекта, который предоставляется:

  • GetTypeInfoCount возвращает количество описаний типов для объекта. Для объектов, поддерживающих IDispatch, число сведений о типе всегда одно.
  • GetTypeInfo извлекает описание программного интерфейса объекта.
  • GetIDsOfNames сопоставляет имя метода или свойства с DISPID, которая позже используется для вызова метода или свойства.
  • Invoke вызывает один из методов объекта или получает или задает одно из его свойств.