Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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
IADs::get_Class
IADs::get_Name