Fungsi ADsBuildEnumerator (adshlp.h)
Fungsi ADsBuildEnumerator membuat objek enumerator untuk objek kontainer ADSI yang ditentukan.
Sintaks
HRESULT ADsBuildEnumerator(
[in] IADsContainer *pADsContainer,
[out] IEnumVARIANT **ppEnumVariant
);
Parameter
[in] pADsContainer
Jenis: IADsContainer*
Arahkan ke antarmuka IADsContainer untuk menghitung objek.
[out] ppEnumVariant
Jenis: IEnumVARIANT**
Penunjuk ke penunjuk antarmuka IEnumVARIANT yang menerima objek enumerator yang dibuat untuk objek kontainer yang ditentukan.
Nilai kembali
Jenis: HRESULT
Metode ini mendukung nilai pengembalian HRESULT standar, termasuk S_OK untuk operasi yang berhasil. Untuk informasi selengkapnya tentang nilai pengembalian lainnya, lihat Kode Kesalahan ADSI.
Keterangan
Fungsi pembantu ADsBuildEnumerator membungkus panggilan yang digunakan untuk mengambil antarmuka IEnumVARIANT pada objek enumerator.
Untuk menghitung objek yang tersedia dalam kontainer
- Panggil fungsi ADsBuildEnumerator untuk membuat objek IEnumVARIANT yang akan menghitung konten kontainer.
- Panggil fungsi ADsEnumerateNext sebanyak yang diperlukan untuk mengambil item dari objek enumerator.
- Panggil fungsi ADSFreeEnumerator untuk merilis objek enumerator saat tidak lagi diperlukan.
Contoh
Contoh kode berikut menunjukkan bagaimana fungsi ADsBuildEnumerator, ADsEnumerateNext, dan ADSFreeEnumerator dapat digunakan untuk menghitung konten kontainer.
HRESULT PrintAllObjects(IADsContainer* pContainer)
{
HRESULT hr;
if(NULL == pContainer)
{
return E_INVALIDARG;
}
IEnumVARIANT *pEnum = NULL;
// Create an enumerator object in the container.
hr = ADsBuildEnumerator(pContainer, &pEnum);
if(SUCCEEDED(hr))
{
VARIANT var;
ULONG ulFetched = 0L;
// Get the next contained object.
while(S_OK == (hr = ADsEnumerateNext(pEnum, 1, &var, &ulFetched)) && (ulFetched > 0))
{
IADs *pADs;
// Print the object
hr = V_DISPATCH(&var)->QueryInterface(IID_IADs, (void**)&pADs);
if(SUCCEEDED(hr))
{
CComBSTR sbstr;
IADsContainer *pChildContainer;
hr = pADs->get_Name(&sbstr);
if(SUCCEEDED(hr))
{
wprintf(sbstr);
wprintf(L"\n");
}
hr = pADs->QueryInterface(IID_IADsContainer, (void**)&pChildContainer);
if(SUCCEEDED(hr))
{
// If the retrieved object is a container, recursively print its contents as well.
PrintAllObjects(pChildContainer);
}
pADs->Release();
}
// Release the VARIANT.
VariantClear(&var);
}
ADsFreeEnumerator(pEnum);
}
return hr;
}
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows Vista |
Server minimum yang didukung | Windows Server 2008 |
Target Platform | Windows |
Header | adshlp.h |
Pustaka | Activeds.lib |
DLL | Activeds.dll |