Metodo IADsContainer::GetObject (iads.h)
Il metodo IADsContainer::GetObject recupera un'interfaccia per un oggetto directory nel contenitore.
Sintassi
HRESULT GetObject(
[in] BSTR ClassName,
[in] BSTR RelativeName,
[out] IDispatch **ppObject
);
Parametri
[in] ClassName
Oggetto BSTR che specifica il nome della classe oggetto a partire dall'oggetto da recuperare. Se questo parametro è NULL, il provider restituisce il primo elemento trovato nel contenitore.
[in] RelativeName
Oggetto BSTR che specifica il nome distinto relativo dell'oggetto da recuperare.
[out] ppObject
Puntatore a un puntatore all'interfaccia IDispatch nell'oggetto specificato.
Valore restituito
Questo metodo supporta i valori restituiti standard, inclusi i S_OK per un'operazione riuscita. Per altre informazioni sui codici di errore, vedere Codici di errore ADSI.
Commenti
Per il provider LDAP, il parametro bstrRelativeName deve contenere il prefisso del nome, ad esempio "CN=Jeff Smith". Il parametro bstrRelativeName può contenere anche più di un livello di nome, ad esempio "CN=Jeff Smith,OU=Sales".
In C++, quando GetObject ha avuto esito positivo, il chiamante deve eseguire una query sull'interfaccia IDispatch per l'interfaccia desiderata usando il metodo QueryInterface .
Il parametro bstrClassName può essere un nome di classe valido o NULL. Se il nome della classe non è valido, incluso quando contiene uno spazio vuoto, questo metodo genererà un errore E_ADS_UNKNOWN_OBJECT .
Esempio
Nell'esempio di codice seguente viene recuperato un oggetto utente da un oggetto contenitore.
Dim cont As IADsContainer
Dim usr As IADsUser
Set cont = GetObject("LDAP://OU=Sales,DC=Fabrikam,DC=com")
Set usr = cont.GetObject("user", "CN=jeffsmith")
Equivale a:
Dim usr As IADsUser
Set usr=GetObject("LDAP://CN=jeffsmith,OU=Sales,DC=Fabrikam,DC=com")
Nell'esempio di codice seguente viene recuperato un oggetto utente da un oggetto contenitore.
HRESULT hr = S_OK;
CoInitialize(NULL);
IADsContainer *pCont = NULL;
hr = ADsGetObject(L"LDAP://DC=windows2000,DC=mytest,DC=fabrikam,DC=com",
IID_IADsContainer,
(void**) &pCont );
if(FAILED(hr))
{
goto Cleanup;
}
///////////////////////////////////////////////////////////////////////
// Retrieve the child from the container.
// Be aware that in the LDAP provider you can navigate multiple levels.
///////////////////////////////////////////////////////////////////////
IDispatch *pDisp = NULL;
IADs *pADs = NULL;
hr = pCont->GetObject(CComBSTR("user"), CComBSTR("CN=Jeff Smith,OU=DSys"), &pDisp);
pCont->Release();
if(FAILED(hr))
{
goto Cleanup;
}
hr = pDisp->QueryInterface(IID_IADs, (void**)&pADs);
pDisp->Release();
if(FAILED(hr))
{
goto Cleanup;
}
// Perform an operation with pADs.
pADs->Release();
Cleanup:
if(pCont)
pCont->Release();
if(pDisp)
pDisp->Release();
if(pADs)
pADs->Release();
CoUninitialize();
Requisiti
Client minimo supportato | Windows Vista |
Server minimo supportato | Windows Server 2008 |
Piattaforma di destinazione | Windows |
Intestazione | iads.h |
DLL | Activeds.dll |
Vedi anche
ID::get_Class
ID::get_Name