IADs::GetInfoEx 메서드(iads.h)
IADs::GetInfoEx 메서드는 기본 디렉터리 저장소에서 속성 캐시로 ADSI 개체의 지정된 속성 값을 로드합니다.
구문
HRESULT GetInfoEx(
[in] VARIANT vProperties,
[in] long lnReserved
);
매개 변수
[in] vProperties
Active Directory 속성 캐시에 로드할 속성을 나열하는 null로 끝나는 유니코드 문자열 항목의 배열입니다. 각 속성 이름은 이 개체의 스키마 클래스 정의에 있는 이름과 일치해야 합니다.
[in] lnReserved
다음에 사용하도록 예약됩니다. 0으로 설정해야 합니다.
반환 값
이 메서드는 표준 반환 값과 다음을 지원합니다.
자세한 내용은 ADSI 오류 코드를 참조하세요.
설명
IADs::GetInfoEx 메서드는 이전에 캐시된 지정된 속성 값을 디렉터리 저장소에 있는 값으로 덮어씁니다. 따라서 IAD::GetInfoEx를 호출하기 전에 IADs::SetInfo가 호출되지 않은 경우 캐시에 대한 변경 내용이 손실됩니다.
IADs::GetInfoEx를 사용하여 ADSI 개체의 속성 캐시에서 선택한 속성의 값을 새로 고칩니다. IADs::GetInfo를 사용하여 모든 속성 값을 새로 고칩니다.
ADSI 컨테이너 개체의 경우 IADs::GetInfoEx 는 컨테이너의 속성 값만 캐시하지만 자식 개체의 속성 값은 캐시하지 않습니다.
예제
다음 코드 예제에서는 원하는 속성 값을 디렉터리에서 찾을 수 있다고 가정하여 IADs::GetInfoEx 를 사용하여 선택한 속성의 값을 가져오는 방법을 보여 줍니다.
Dim x As IADs
On Error GoTo Cleanup
Set x = GetObject("LDAP://CN=JeffSmith,CN=Users,DC=Fabrikam,DC=com")
' Retrieve givenName and sn from the underlying directory storage.
' Cache should have givenName and sn values.
x.GetInfoEx Array("givenName", "sn"), 0
Debug.Print x.Get("givenName") ' Property is in the cache.
Debug.Print x.Get("sn") ' Property is in the cache.
' If the "homePhone" property is not in the cache (in the next line),
' GetInfo is called implicitly.
Debug.Print x.Get("homePhone")
Cleanup:
If(Err.Number<>0) Then
MsgBox("An error has occurred. " & Err.Number);
End If
Set x = Nothing
다음 코드 예제에서는 원하는 속성 값을 디렉터리에서 찾을 수 있다고 가정하여 IADs::GetInfoEx 를 사용하여 선택한 속성의 값을 가져오는 방법을 보여 줍니다. 간단히 하기 위해 오류 검사가 생략되었습니다.
IADs *pADs = NULL;
VARIANT var;
HRESULT hr = S_OK;
hr = ADsGetObject(L"WinNT://somecomputer,computer",
IID_IADs,
(void**)&pADs);
if(!(hr==S_OK)){return hr;}
VariantInit(&var);
// Get "Owner" and "Division" attribute values.
LPWSTR pszAttrs[] = { L"Owner", L"Division" };
DWORD dwNumber = sizeof( pszAttrs ) /sizeof(LPWSTR);
hr = ADsBuildVarArrayStr( pszAttrs, dwNumber, &var );
hr = pADs->GetInfoEx(var, 0);
VariantClear(&var);
hr = pADs->Get(CComBSTR("Division"), &var);
printf(" division = %S\n", V_BSTR(&var));
VariantClear(&var);
hr = pADs->Get(CComBSTR("Owner"), &var);
printf(" owner = %S\n", V_BSTR(&var));
VariantClear(&var);
if(pADs)
pADs->Release();
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista |
지원되는 최소 서버 | Windows Server 2008 |
대상 플랫폼 | Windows |
헤더 | iads.h |
DLL | Activeds.dll |