Funzione ADsBuildEnumerator (adshlp.h)
La funzione ADsBuildEnumerator crea un oggetto enumeratore per l'oggetto contenitore ADSI specificato.
Sintassi
HRESULT ADsBuildEnumerator(
[in] IADsContainer *pADsContainer,
[out] IEnumVARIANT **ppEnumVariant
);
Parametri
[in] pADsContainer
Tipo: IADsContainer*
Puntatore all'interfaccia IADsContainer per l'oggetto da enumerare.
[out] ppEnumVariant
Tipo: IEnumVARIANT**
Puntatore a un puntatore dell'interfaccia IEnumVARIANT che riceve l'oggetto enumeratore creato per l'oggetto contenitore specificato.
Valore restituito
Tipo: HRESULT
Questo metodo supporta i valori restituiti HRESULT standard, inclusi S_OK per un'operazione riuscita. Per altre informazioni sugli altri valori restituiti, vedere Codici di errore ADSI.
Commenti
La funzione helper di ADsBuildEnumerator esegue il wrapping delle chiamate usate per recuperare l'interfaccia IEnumVARIANT nell'oggetto enumeratore.
Per enumerare gli oggetti disponibili in un contenitore
- Chiamare la funzione ADsBuildEnumerator per creare un oggetto IEnumVARIANT che enumererà il contenuto del contenitore.
- Chiamare la funzione ADsEnumerateNext quante volte necessario per recuperare gli elementi dall'oggetto enumeratore.
- Chiamare la funzione ADSFreeEnumerator per rilasciare l'oggetto enumeratore quando non è più necessario.
Esempio
Nell'esempio di codice seguente viene illustrato come è possibile usare le funzioni ADsBuildEnumerator, ADsEnumerateNext e ADSFreeEnumerator per enumerare il contenuto di un contenitore.
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;
}
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows Vista |
Server minimo supportato | Windows Server 2008 |
Piattaforma di destinazione | Windows |
Intestazione | adshlp.h |
Libreria | Activeds.lib |
DLL | Activeds.dll |