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