接口属性方法
许多 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 对象的属性的详细信息,请参阅 属性缓存。