IADsContainer 속성 메서드
IADsContainer 인터페이스의 속성 메서드는 다음 표에 설명된 속성을 얻거나 설정합니다. 자세한 내용과 속성 메서드에 대한 일반적인 설명은 인터페이스 속성 메서드를 참조하세요.
속성
-
Count
-
-
액세스 형식: 읽기 전용
-
스크립팅 데이터 형식: LONG
-
// C++ method syntax HRESULT get_Count( [out] LONG* plCount );
컨테이너의 항목 수를 검색합니다. Filter를 설정하면 Count는 필터링된 항목의 수만 반환합니다.
-
-
Filter
-
-
액세스 형식: 읽기/쓰기
-
데이터 형식 스크립팅: VARIANT
-
// C++ method syntax HRESULT get_Filter( [out] VARIANT* pvFilter ); HRESULT put_Filter( [in] VARIANT vFilter );
지정된 열거형에서 개체 클래스를 선택하는 데 사용되는 필터를 검색하거나 설정합니다. 이 배열은 각 요소가 스키마 클래스의 이름인 변형 배열입니다. Filter가 비어 있거나 설정되지 않은 경우 모든 클래스의 모든 개체가 열거자에 의해 검색됩니다.
-
-
힌트
-
-
액세스 형식: 읽기/쓰기
-
데이터 형식 스크립팅: VARIANT
-
// C++ method syntax HRESULT get_Hints( [out] VARIANT* pvHints ); HRESULT put_Hints( [in] VARIANT vHints );
BSTR 문자열의 변형 배열입니다. 각 요소는 스키마 정의에 있는 속성의 이름을 식별합니다. vHints 매개 변수를 사용하면 클라이언트가 열거된 각 개체에 대해 로드할 특성을 나타낼 수 있습니다. 이러한 데이터를 사용하여 네트워크 액세스를 최적화할 수 있습니다. 그러나 정확한 구현은 공급자별로 지정되며 현재 WinNT 공급자에서 사용되지 않습니다.
-
설명
IADsContainer::get__NewEnum 및 IADsContainer::get_Count 아래의 열거형 프로세스는 캐시에 포함된 개체에 대해 수행됩니다. 컨테이너에 많은 수의 개체가 포함된 경우 성능이 영향을 받을 수 있습니다. 성능을 향상시키려면 캐시를 끄고 적절한 페이지 크기를 설정하고 IDirectorySearch 인터페이스를 사용합니다. 이러한 이유로 get_Count 속성은 Microsoft LDAP 공급자에서 지원되지 않습니다.
예제
다음 Visual Basic 코드 예제에서는 IADsContainer 의 속성 메서드를 사용할 수 있는 방법을 보여 줍니다.
Dim cont As IADsContainer
Dim usr As IADsUser
On Error GoTo Cleanup
Set cont = GetObject("LDAP://OU=Sales, DC=Fabrikam, DC=COM")
cont.Hints = Array("adminDescription") ' Load this attribute. Optional.
Debug.Print cont.Get("adminDescription")
' Filter users.
cont.Filter = Array("user")
For Each usr In cont
Debug.Print usr.Name
Next
Cleanup:
If (Err.Number<>0) Then
MsgBox("An error has occurred. " & Err.Number)
End If
Set cont = Nothing
Set usr = Nothing
다음 C++ 코드 예제에서는 IADsContainer 의 속성 메서드를 사용하는 방법을 보여 줍니다. 간단히 하기 위해 오류 검사는 생략됩니다.
IADsContainer *pCont;
IADs *pChild;
IADs *pADs;
HRESULT hr = ADsGetObject(L"LDAP://OU=Sales,DC=Fabrikam,DC=COM",
IID_IADsContainer,
(void**)&pCont);
if(FAILED(hr)){goto Cleanup;}
LPWSTR pszArray[] = { L"adminDescription" };
DWORD dwNumber = sizeof(pszArray)/sizeof(LPWSTR);
hr = ADsBuildVarArrayStr( pszArray, dwNumber, &var);
if(FAILED(hr)){goto Cleanup;}
hr = pCont->put_Hints( var );
if(FAILED(hr)){goto Cleanup;}
VariantClear(&var);
hr = pCont->QueryInterface(IID_IADs, (void**)pADs);
if(FAILED(hr)){goto Cleanup;}
hr = pADs->Get(CComBSTR("adminDescription"), var);
LPWSTR pszUsers = {L"user"};
dwNumber = sizeof(pszUsers)/sizeof(LPWSTR);
hr = ADsBuildVarArrayStr(pszUsers, dwNumber, &var);
hr = pCont->put_Filter( var );
VariantClear(&var);
// Enumerate user objects in the container.
IEnumVARIANT *pEnum = NULL;
hr = ADsBuildEnumerator(pCont, &pEnum);
pCont->Release(); // Not required when users are enumerated.
ULONG lFetch;
VariantClear(&var);
while (SUCCEEDED(ADsEnumerateNext(pEnum, 1, &var, &lFetch)) &&
lFetch==1) {
hr = V_DISPATCH(&var)->QueryInterface(IID_IADs, (void**)&pChild)
if(SUCCEEDED(hr)) {
BSTR bstrName;
pChild->get_Name(&bstrName);
printf(" %S\n", bstrName);
SysFreeString(bstrName);
pChild->Release();
}
VariantClear(&var);
}
Cleanup:
if(pADs)
pADs->Release();
if(pCont)
pCont->Release();
if(pChild)
pChild->Release();
VariantClear(&var);
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 |
Windows Vista |
지원되는 최소 서버 |
Windows Server 2008 |
헤더 |
|
DLL |
|
IID |
IID_IADsContainer 001677D0-FD16-11CE-ABC4-02608C9E7553으로 정의됩니다. |
추가 정보
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기