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