다음을 통해 공유


IADsContainer::GetObject 메서드(iads.h)

IADsContainer::GetObject 메서드는 컨테이너의 디렉터리 개체에 대한 인터페이스를 검색합니다.

구문

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

매개 변수

[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 오류를 throw합니다.

예제

다음 코드 예제에서는 컨테이너 개체에서 사용자 개체를 검색합니다.

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