Compartilhar via


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

O método IADsContainer::GetObject recupera uma interface para um objeto de diretório no contêiner.

Sintaxe

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

Parâmetros

[in] ClassName

Um BSTR que especifica o nome da classe de objeto a partir do objeto a ser recuperado. Se esse parâmetro for NULL, o provedor retornará o primeiro item encontrado no contêiner.

[in] RelativeName

Um BSTR que especifica o nome diferenciado relativo do objeto a ser recuperado.

[out] ppObject

Um ponteiro para um ponteiro para a interface IDispatch no objeto especificado.

Valor retornado

Esse método dá suporte a valores retornados padrão, incluindo S_OK para uma operação bem-sucedida. Para obter mais informações sobre códigos de erro, consulte Códigos de erro ADSI.

Comentários

Para o provedor LDAP, o parâmetro bstrRelativeName deve conter o prefixo de nome, como "CN=Jeff Smith". O parâmetro bstrRelativeName também pode conter mais de um nível de nome, como "CN=Jeff Smith,OU=Sales".

Em C++, quando GetObject for bem-sucedido, o chamador deverá consultar a interface IDispatch para a interface desejada usando o método QueryInterface .

O parâmetro bstrClassName pode ser um nome de classe válido ou NULL. Se o nome da classe não for válido, incluindo quando ele contiver um espaço em branco, esse método gerará um erro de E_ADS_UNKNOWN_OBJECT .

Exemplos

O exemplo de código a seguir recupera um objeto de usuário de um objeto de contêiner.

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

Isso é equivalente a:

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

O exemplo de código a seguir recupera um objeto de usuário de um objeto de contêiner.

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 com suporte Windows Vista
Servidor mínimo com suporte Windows Server 2008
Plataforma de Destino Windows
Cabeçalho iads.h
DLL Activeds.dll

Confira também

Códigos de erro ADSI

ADsGetObject

Iads

IADs::get_Class

IADs::get_Name

IADsContainer

IDispatch