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