表1 IADs接口的屬性
屬性名 類型 說明 Name BSTR 對象名字 AdsPath BSTR 對象的全路徑 Class BSTR 對象的類別(表結構對象的路徑) GUID BSTR 對象的全局唯一標識(GUID) Parent BSTR 父包容器的路徑 Schema BSTR 表結構對象的路徑
表2 IADs接口的方法
方法名 參數 說明 GetInfo 用屬性值重新裝入對象 SetInfo 提交屬性值的變化 Get BSTR bstrName,
VARIANT *pvProp 獲取指定名字的屬性值 Put BSTR bstrName,
VARIANT vProp 設置指定名字的屬性值 GetEx BSTR bstrName,
VARIANT *pvProp 獲取指定名字的單值或多值屬性值 PutEx LONG lnControlCode,
BSTR bstrName,
VARIANT vProp 設置指定名字的單值或多值屬性值;若lnControlCode為ADS_PROPERTY_CLEAR,可以刪除屬性 GetInfoEx VARIANT vProps,
LONG lReserved 與GetInfo類似,優化處理
另一個重要的接口是IADsContainer,它是所有包容器對象必須要實現的接口。IADsContainer接口的屬性和方法如表3和表4所示。
表3 IADsContainer接口的屬性
屬性名 類型 說明 Count long 包容器中對象的個數 _NewEnum LPUNKNOWN 返回包容器中對象的枚舉器 Filter VARIANT BSTR數組,每個BSTR指定了過濾器的定義 Hints VARIANT 屬性數組,其用法與GetInfoEx類似
表4 IADsContainer接口的方法
方法名 參數 說明 GetObject BSTR bstrClass,
BSTR bstrRelativeName,
LPDISPATCH *pNewObject 得到包容器對象中指定對象的IDispatch接口指針 Create BSTR bstrClass,
BSTR bstrRelativeName,
LPDISPATCH *pNewObject 在包容器對象中創建指定名字的目錄對象,并返回對象的IDispatch接口指針 Delete BSTR bstrClass,
BSTR bstrRelativeName 刪除包容器對象中指定的目錄對象 CopyHere BSTR bstrSource,
BSTR bstrNewName,
LPDISPATCH* pNewObject 拷貝目錄對象到當前包容器對象中 MoveHere BSTR bstrSource,
BSTR bstrNewName,
LPDISPATCH* pNewObject 移動目錄對象到當前包容器對象中
IADs和IADsContainer接口分別代表了目錄服務中的目錄對象和包容器對象,為了對一個名字空間進行各種目錄操作,我們必須從最基本的根出發,ADSI為我們提供了接口IADsNamespaces用以表達名字空間對象。IADsNamespaces接口比較簡單,它只有一個屬性“DefaultContainer”,此屬性指定了客戶程序訪問的基本包容器對象的路徑。
僅僅一個IADs接口還難以表達一個目錄對象的全部特征,前面已經提到,ADSI用類別來定義目錄對象的特征,并且類別對象本身也是目錄對象,它除了實現IADs接口外,還實現了IADsClass接口。IADsClass接口從IADs派生,其屬性如表5所示。
表5 IADsClass接口的屬性
屬性名 類型 說明 PrimaryInterface BSTR 可直接訪問到此類別屬性的接口ID CLSID BSTR 與之相連的COM對象的CLSID OID BSTR 定義此類別的對象標識符 Abstract VARIANT_BOOL 指示此類別是否為抽象類,若是的話,則它不能被實例化,但其它類可以繼承該類別 Auxiliary VARIANT_BOOL 指示此類別是否為輔助類 MandatoryProperties VARIANT 與之相連的目錄對象必須支持的屬性名數組 OptionalProperties VARIANT 與之相連的目錄對象支持的可選屬性名數組 NamingProperties VARIANT 與之相連的目錄對象支持的命名屬性名數組(用于指示相對標識名RDN) DerivedFrom VARIANT 此類所繼承的類的路徑數組 AuxDerivedFrom VARIANT 此類所繼承的輔助類的路徑數組 PossibleSuperiors VARIANT 可能包含此類實例的類的路徑數組 Containment VARIANT 可能被包含此類中的類的路徑數組 Container VARIANT_BOOL 指示此類是否為包容器對象類別 HelpFileName BSTR 幫助文件名 HelpFileContext long 幫助環境標識符
IADsClass接口只有一個方法Qualifiers,用來返回描述附加限制對象的集合對象。在IADsClass接口的屬性中,PrimaryInterface屬性可直接指示客戶程序去請求對應的接口ID,以便訪問該類別所指示的屬性,比如,在目錄服務中,“User”類指示用戶對象實現了一個ADSI接口IADsUser,它包含屬性“姓”、“名”、“職稱”、“電話”等等。
|