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


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

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

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

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