Методы свойств интерфейса
Многие интерфейсы ADSI предназначены для поддержки автоматизации и, следовательно, являются двойными интерфейсами, так как поддерживают клиентский доступ через интерфейсы IUnknown и IDispatch . Клиенты, не относящиеся к автоматизации, например написанные на C/C++, разрешают вызов метода напрямую с помощью метода IUnknown::QueryInterface и вызывают метод напрямую. Клиенты службы автоматизации, также называемые клиентами с привязкой к именам, например клиенты, написанные на языке Visual Basic или Visual Basic Scripting Edition (VBScript), должны разрешать вызов метода косвенно с помощью метода dispinterface .
Интерфейс ADSI, поддерживающий автоматизацию, определяет методы свойств для получения и изменения свойств объекта, реализующего интерфейс. Методы свойств имеют имена, которые имеют get_ и put_ перед соответствующими именами свойств, например get_User и put_Name.
Каждый метод get_ принимает один параметр в качестве выходных данных. Этот параметр является адресом, выделенным методом переменной типа данных свойства. При возврате эта переменная принимает текущее значение запрошенного свойства. Вызывающий объект должен освободить выделенную память переменной, когда свойство больше не требуется.
Каждый метод put_ принимает один параметр в качестве входных данных для типа данных соответствующего свойства. Параметр содержит новое значение свойства .
В следующем примере кода показан вызов методов свойств, которые следуют обычной процедуре для вызова функции-члена объекта .
IADs *pADs;
BSTR bstrName;
pADs->get_Name(&bstrName);
В следующем примере кода показан вызов методов свойств в клиентах автоматизации, которые могут несколько отличаться. Например, в Visual Basic используется точечная нотация.
Dim Obj As IADs
Dim objName As String
objName = Obj.Name
Все параметры и типы возвращаемых значений должны относиться к параметрам, определяемым типом данных VARIANT. Все методы в двойном интерфейсе возвращают значение HRESULT, указывающее на успешное или неудачное завершение.
Дополнительные сведения о получении и настройке свойств для объектов ADSI см. в разделе Кэш свойств.