Share via


IADsContainer::GetObject, méthode (iads.h)

La méthode IADsContainer::GetObject récupère une interface pour un objet de répertoire dans le conteneur.

Syntaxe

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

Paramètres

[in] ClassName

BSTR qui spécifie le nom de la classe d’objet à partir de l’objet à récupérer. Si ce paramètre a la valeur NULL, le fournisseur retourne le premier élément trouvé dans le conteneur.

[in] RelativeName

BSTR qui spécifie le nom unique relatif de l’objet à récupérer.

[out] ppObject

Pointeur vers un pointeur vers l’interface IDispatch sur l’objet spécifié.

Valeur retournée

Cette méthode prend en charge les valeurs de retour standard, y compris les S_OK pour une opération réussie. Pour plus d’informations sur les codes d’erreur, consultez Codes d’erreur ADSI.

Notes

Pour le fournisseur LDAP, le paramètre bstrRelativeName doit contenir le préfixe de nom, tel que « CN=Jeff Smith ». Le paramètre bstrRelativeName peut également contenir plusieurs niveaux de nom, tels que « CN=Jeff Smith,OU=Sales ».

En C++, lorsque GetObject a réussi, l’appelant doit interroger l’interface IDispatch pour l’interface souhaitée à l’aide de la méthode QueryInterface .

Le paramètre bstrClassName peut être un nom de classe valide ou NULL. Si le nom de la classe n’est pas valide, y compris lorsqu’il contient un espace vide, cette méthode lève une erreur E_ADS_UNKNOWN_OBJECT .

Exemples

L’exemple de code suivant récupère un objet utilisateur à partir d’un objet conteneur.

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

Ceci équivaut à :

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

L’exemple de code suivant récupère un objet utilisateur à partir d’un objet conteneur.

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

Configuration requise

   
Client minimal pris en charge Windows Vista
Serveur minimal pris en charge Windows Server 2008
Plateforme cible Windows
En-tête iads.h
DLL Activeds.dll

Voir aussi

Codes d’erreur ADSI

ADsGetObject

IADs

IADs::get_Class

IADs::get_Name

IADsContainer

IDispatch