IADsContainer 屬性方法
IADsContainer介面的屬性方法會取得或設定下表所述的屬性。 如需詳細資訊,以及屬性方法的一般討論,請參閱 Interface Property Methods。
屬性
-
Count
-
-
存取類型:唯讀
-
腳本資料類型: LONG
-
// C++ method syntax HRESULT get_Count( [out] LONG* plCount );
擷取容器中的專案數目。 設定 Filter 時, Count 只會傳回篩選的專案數目。
-
-
Filter
-
-
存取類型:讀取/寫入
-
腳本資料類型: VARIANT
-
// C++ method syntax HRESULT get_Filter( [out] VARIANT* pvFilter ); HRESULT put_Filter( [in] VARIANT vFilter );
擷取或設定篩選,用來選取指定列舉中的物件類別。 這是 variant 陣列,每個元素都是架構類別的名稱。 如果未將 Filter 設定或設定為空白,則列舉值會擷取所有類別的所有物件。
-
-
提示
-
-
存取類型:讀取/寫入
-
腳本資料類型: VARIANT
-
// C++ method syntax HRESULT get_Hints( [out] VARIANT* pvHints ); HRESULT put_Hints( [in] VARIANT vHints );
BSTR字串的變異陣列。 每個元素都會識別架構定義中找到的屬性名稱。 vHints參數可讓用戶端指出每個列舉物件要載入的屬性。 這類資料可用來優化網路存取。 不過,確切的實作是提供者專屬的,目前不會由 WinNT 提供者使用。
-
備註
IADsContainer::get__NewEnum和IADsContainer::get_Count下的列舉程式會針對快取中所包含的物件執行。 當容器包含大量物件時,效能可能會受到影響。 若要增強效能,請關閉快取、設定適當的頁面大小,並使用 IDirectorySearch 介面。 因此,Microsoft LDAP 提供者不支援 get_Count 屬性。
範例
下列 Visual Basic 程式碼範例示範如何使用 IADsContainer 的屬性方法。
Dim cont As IADsContainer
Dim usr As IADsUser
On Error GoTo Cleanup
Set cont = GetObject("LDAP://OU=Sales, DC=Fabrikam, DC=COM")
cont.Hints = Array("adminDescription") ' Load this attribute. Optional.
Debug.Print cont.Get("adminDescription")
' Filter users.
cont.Filter = Array("user")
For Each usr In cont
Debug.Print usr.Name
Next
Cleanup:
If (Err.Number<>0) Then
MsgBox("An error has occurred. " & Err.Number)
End If
Set cont = Nothing
Set usr = Nothing
下列 C++ 程式碼範例示範如何使用 IADsContainer 的屬性方法。 為了簡潔起見,會省略錯誤檢查。
IADsContainer *pCont;
IADs *pChild;
IADs *pADs;
HRESULT hr = ADsGetObject(L"LDAP://OU=Sales,DC=Fabrikam,DC=COM",
IID_IADsContainer,
(void**)&pCont);
if(FAILED(hr)){goto Cleanup;}
LPWSTR pszArray[] = { L"adminDescription" };
DWORD dwNumber = sizeof(pszArray)/sizeof(LPWSTR);
hr = ADsBuildVarArrayStr( pszArray, dwNumber, &var);
if(FAILED(hr)){goto Cleanup;}
hr = pCont->put_Hints( var );
if(FAILED(hr)){goto Cleanup;}
VariantClear(&var);
hr = pCont->QueryInterface(IID_IADs, (void**)pADs);
if(FAILED(hr)){goto Cleanup;}
hr = pADs->Get(CComBSTR("adminDescription"), var);
LPWSTR pszUsers = {L"user"};
dwNumber = sizeof(pszUsers)/sizeof(LPWSTR);
hr = ADsBuildVarArrayStr(pszUsers, dwNumber, &var);
hr = pCont->put_Filter( var );
VariantClear(&var);
// Enumerate user objects in the container.
IEnumVARIANT *pEnum = NULL;
hr = ADsBuildEnumerator(pCont, &pEnum);
pCont->Release(); // Not required when users are enumerated.
ULONG lFetch;
VariantClear(&var);
while (SUCCEEDED(ADsEnumerateNext(pEnum, 1, &var, &lFetch)) &&
lFetch==1) {
hr = V_DISPATCH(&var)->QueryInterface(IID_IADs, (void**)&pChild)
if(SUCCEEDED(hr)) {
BSTR bstrName;
pChild->get_Name(&bstrName);
printf(" %S\n", bstrName);
SysFreeString(bstrName);
pChild->Release();
}
VariantClear(&var);
}
Cleanup:
if(pADs)
pADs->Release();
if(pCont)
pCont->Release();
if(pChild)
pChild->Release();
VariantClear(&var);
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 |
Windows Vista |
最低支援的伺服器 |
Windows Server 2008 |
標頭 |
|
DLL |
|
IID |
IID_IADsContainer定義為 001677D0-FD16-11CE-ABC4-02608C9E7553 |