ADsBuildEnumerator-Funktion (adshlp.h)
Die ADsBuildEnumerator-Funktion erstellt ein Enumeratorobjekt für das angegebene ADSI-Containerobjekt.
Syntax
HRESULT ADsBuildEnumerator(
[in] IADsContainer *pADsContainer,
[out] IEnumVARIANT **ppEnumVariant
);
Parameter
[in] pADsContainer
Typ: IADsContainer*
Zeiger auf die IADsContainer-Schnittstelle für das zu enumerierende Objekt.
[out] ppEnumVariant
Typ: IEnumVARIANT**
Zeiger auf einen IEnumVARIANT-Schnittstellenzeiger , der das für das angegebene Containerobjekt erstellte Enumeratorobjekt empfängt.
Rückgabewert
Typ: HRESULT
Diese Methode unterstützt die standardmäßigen HRESULT-Rückgabewerte , einschließlich S_OK für einen erfolgreichen Vorgang. Weitere Informationen zu anderen Rückgabewerten finden Sie unter ADSI-Fehlercodes.
Hinweise
Die Hilfsfunktion ADsBuildEnumerator umschließt die Aufrufe, die zum Abrufen der IEnumVARIANT-Schnittstelle für das Enumeratorobjekt verwendet werden.
So listen Sie die verfügbaren Objekte in einem Container auf
- Rufen Sie die ADsBuildEnumerator-Funktion auf, um ein IEnumVARIANT-Objekt zu erstellen, das den Inhalt des Containers aufzählt.
- Rufen Sie die ADsEnumerateNext-Funktion so oft wie nötig auf, um die Elemente aus dem Enumeratorobjekt abzurufen.
- Rufen Sie die ADSFreeEnumerator-Funktion auf, um das Enumeratorobjekt freizugeben, wenn es nicht mehr benötigt wird.
Beispiele
Das folgende Codebeispiel zeigt, wie die Funktionen ADsBuildEnumerator, ADsEnumerateNext und ADSFreeEnumerator verwendet werden können, um den Inhalt eines Containers aufzulisten.
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;
}
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows Vista |
Unterstützte Mindestversion (Server) | Windows Server 2008 |
Zielplattform | Windows |
Kopfzeile | adshlp.h |
Bibliothek | Activeds.lib |
DLL | Activeds.dll |