Condividi tramite


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

Codici di errore ADSI

ADsGetObject

ID

ID::get_Class

ID::get_Name

IADsContainer

Idispatch