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


Интерфейс IADsExtension (iads.h)

Интерфейс IADsExtension является основой модели расширения приложения ADSI. Он позволяет независимому поставщику программного обеспечения добавлять в существующий объект ADSI поведение, зависящее от приложения, например методы или функции. Несколько поставщиков могут независимо расширять возможности одного и того же объекта для выполнения аналогичных, но несвязанных операций.

Модель расширения основана на модели агрегирования в COM. Агрегатор или внешний объект может добавлять к своей базе методы, методы агрегатного объекта или внутренний объект. Объект расширения ADSI, реализующий интерфейс IADsExtension , является агрегатным объектом, а поставщик ADSI — агрегатором.

Примечание При реализации модуля расширения по завершении работы с ним отпустите интерфейс. В противном случае агрегатор не сможет освободить интерфейс, даже если он больше не требуется.
 
Интерфейс IADsExtension можно использовать следующим образом:
  • Компонент расширения требует уведомления об инициализации в соответствии с определением dwCode в методе Operate . В этом случае клиент расширения должен вызвать метод Operate . Два других метода, а именно PrivateInvoke и PrivateGetIDsOfNames, обычно возвращают E_NOTIMPL в значении HRESULT .
  • Компонент расширения поддерживает любой двойной интерфейс или интерфейс диспетчеризации. В этом случае клиент расширения должен вызывать методы PrivateGetIDsOfNames или PrivateInvoke . Оператор обычно игнорирует данные и возвращает E_NOTIMPL в значении HRESULT .

Наследование

Интерфейс IADsExtension наследуется от интерфейса IUnknown . IADsExtension также имеет следующие типы элементов:

Методы

Интерфейс IADsExtension содержит следующие методы.

 
IADsExtension::Operate

Интерпретирует код элемента управления и входные параметры в соответствии со спецификациями поставщика.
IADsExtension::P rivateGetIDsOfNames

Метод IADsExtension::P rivateGetIDsOfNames вызывается агрегатором ADSI после того, как ADSI определяет, что расширение используется для поддержки двойного интерфейса или интерфейса диспетчеризации. Метод может использовать данные типа для получения DISPID с помощью IDispatch::GetIDsOfNames.
IADsExtension::P rivateInvoke

Метод IADsExtension::P rivateInvoke обычно вызывается ADSI после метода IADsExtension::P rivateGetIDsOfNames. Этот метод может иметь пользовательскую реализацию или делегировать операцию методу IDispatch::D ispInvoke.

Требования

   
Минимальная версия клиента Windows Vista
Минимальная версия сервера Windows Server 2008
Целевая платформа Windows
Header iads.h