IADsContainer::GetObject 方法 (iads.h)

IADsContainer::GetObject 方法检索容器中目录对象的接口。

语法

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

parameters

[in] ClassName

一个 BSTR ,指定要检索的对象的对象类的名称。 如果此参数为 NULL,则提供程序返回在容器中找到的第一个项。

[in] RelativeName

一个 BSTR ,指定要检索的对象的相对可分辨名称。

[out] ppObject

指向指向指定对象上的 IDispatch 接口的指针的指针。

返回值

此方法支持标准返回值,包括成功操作S_OK。 有关错误代码的详细信息,请参阅 ADSI 错误代码

注解

对于 LDAP 提供程序, bstrRelativeName 参数必须包含名称前缀,例如“CN=Jeff Smith”。 bstrRelativeName 参数还可以包含多个名称级别,例如“CN=Jeff Smith,OU=Sales”。

在 C++ 中,当 GetObject 成功时,调用方必须使用 QueryInterface 方法查询所需的接口的 IDispatch 接口。

bstrClassName 参数可以是有效的类名或 NULL。 如果类名无效(包括包含空格时),此方法将引发 E_ADS_UNKNOWN_OBJECT 错误。

示例

下面的代码示例从容器对象检索用户对象。

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

这等效于:

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

下面的代码示例从容器对象检索用户对象。

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

要求

   
最低受支持的客户端 Windows Vista
最低受支持的服务器 Windows Server 2008
目标平台 Windows
标头 iads.h
DLL Activeds.dll

另请参阅

ADSI 错误代码

ADsGetObject

IAD

IADs::get_Class

IADs::get_Name

IADsContainer

IDispatch