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
IADs::get_Class
IADs::get_Name