Compartir a través de


Método IADsContainer::GetObject (iads.h)

El método IADsContainer::GetObject recupera una interfaz para un objeto de directorio en el contenedor.

Sintaxis

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

Parámetros

[in] ClassName

BSTR que especifica el nombre de la clase de objeto a partir del objeto que se va a recuperar. Si este parámetro es NULL, el proveedor devuelve el primer elemento que se encuentra en el contenedor.

[in] RelativeName

BSTR que especifica el nombre distintivo relativo del objeto que se va a recuperar.

[out] ppObject

Puntero a un puntero a la interfaz IDispatch del objeto especificado.

Valor devuelto

Este método admite valores devueltos estándar, incluidos S_OK para una operación correcta. Para obtener más información sobre los códigos de error, consulta Códigos de error adsi.

Comentarios

Para el proveedor LDAP, el parámetro bstrRelativeName debe contener el prefijo de nombre, como "CN=Jeff Smith". El parámetro bstrRelativeName también puede contener más de un nivel de nombre, como "CN=Jeff Smith,OU=Sales".

En C++, cuando GetObject se ha realizado correctamente, el autor de la llamada debe consultar la interfaz IDispatch para la interfaz deseada mediante el método QueryInterface .

El parámetro bstrClassName puede ser un nombre de clase válido o NULL. Si el nombre de clase no es válido, incluido cuando contiene un espacio en blanco, este método producirá un error de E_ADS_UNKNOWN_OBJECT .

Ejemplos

En el ejemplo de código siguiente se recupera un objeto de usuario de un objeto contenedor.

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

Esto equivale a:

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

En el ejemplo de código siguiente se recupera un objeto de usuario de un objeto contenedor.

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

Requisitos

   
Cliente mínimo compatible Windows Vista
Servidor mínimo compatible Windows Server 2008
Plataforma de destino Windows
Encabezado iads.h
Archivo DLL Activeds.dll

Consulte también

Códigos de error adsi

ADsGetObject

Iads

IADs::get_Class

IADs::get_Name

IADsContainer

IDispatch