Freigeben über


IADsContainer::GetObject-Methode (iads.h)

Die IADsContainer::GetObject-Methode ruft eine Schnittstelle für ein Verzeichnisobjekt im Container ab.

Syntax

HRESULT GetObject(
  [in]  BSTR      ClassName,
  [in]  BSTR      RelativeName,
  [out] IDispatch **ppObject
);

Parameter

[in] ClassName

Ein BSTR , der den Namen der Objektklasse als das abzurufende Objekt angibt. Wenn dieser Parameter NULL ist, gibt der Anbieter das erste Element zurück, das im Container gefunden wurde.

[in] RelativeName

Ein BSTR , der den relativen Distinguished-Namen des abzurufenden Objekts angibt.

[out] ppObject

Ein Zeiger auf einen Zeiger auf die IDispatch-Schnittstelle für das angegebene Objekt.

Rückgabewert

Diese Methode unterstützt Standardrückgabewerte, einschließlich S_OK für einen erfolgreichen Vorgang. Weitere Informationen zu Fehlercodes finden Sie unter ADSI-Fehlercodes.

Hinweise

Für den LDAP-Anbieter muss der bstrRelativeName-Parameter das Namenspräfix enthalten, z. B. "CN=Jeff Smith". Der bstrRelativeName-Parameter kann auch mehrere Namensebenen enthalten, z. B. "CN=Jeff Smith,OU=Sales".

Wenn GetObject in C++ erfolgreich ist, muss der Aufrufer die IDispatch-Schnittstelle für die gewünschte Schnittstelle mithilfe der QueryInterface-Methode abfragen.

Der bstrClassName-Parameter kann entweder ein gültiger Klassenname oder NULL sein. Wenn der Klassenname ungültig ist, auch wenn er ein leeres Leerzeichen enthält, löst diese Methode einen E_ADS_UNKNOWN_OBJECT Fehler aus.

Beispiele

Im folgenden Codebeispiel wird ein Benutzerobjekt aus einem Containerobjekt abgerufen.

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")

Das entspricht:

Dim usr As IADsUser
Set usr=GetObject("LDAP://CN=jeffsmith,OU=Sales,DC=Fabrikam,DC=com")

Im folgenden Codebeispiel wird ein Benutzerobjekt aus einem Containerobjekt abgerufen.

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();

Anforderungen

   
Unterstützte Mindestversion (Client) Windows Vista
Unterstützte Mindestversion (Server) Windows Server 2008
Zielplattform Windows
Kopfzeile iads.h
DLL Activeds.dll

Weitere Informationen

ADSI-Fehlercodes

ADsGetObject

Iads

IADs::get_Class

IADs::get_Name

IADsContainer

IDispatch