다음을 통해 공유


IADsContainer 속성 메서드

IADsContainer 인터페이스의 속성 메서드는 다음 표에 설명된 속성을 얻거나 설정합니다. 자세한 내용과 속성 메서드에 대한 일반적인 설명은 인터페이스 속성 메서드를 참조하세요.

속성

Count

컨테이너의 항목 수를 검색합니다. Filter를 설정하면 Count는 필터링된 항목의 수만 반환합니다.

액세스 형식: 읽기 전용

스크립팅 데이터 형식: LONG

// C++ method syntax
HRESULT get_Count(
  [out] LONG* plCount
);

Filter

지정된 열거형에서 개체 클래스를 선택하는 데 사용되는 필터를 검색하거나 설정합니다. 이 배열은 각 요소가 스키마 클래스의 이름인 변형 배열입니다. Filter가 비어 있거나 설정되지 않은 경우 모든 클래스의 모든 개체가 열거자에 의해 검색됩니다.

액세스 형식: 읽기/쓰기

데이터 형식 스크립팅: VARIANT

// C++ method syntax
HRESULT get_Filter(
  [out] VARIANT* pvFilter
);
HRESULT put_Filter(
  [in] VARIANT vFilter
);

힌트

BSTR 문자열의 변형 배열입니다. 각 요소는 스키마 정의에 있는 속성의 이름을 식별합니다. vHints 매개 변수를 사용하면 클라이언트가 열거된 각 개체에 대해 로드할 특성을 나타낼 수 있습니다. 이러한 데이터를 사용하여 네트워크 액세스를 최적화할 수 있습니다. 그러나 정확한 구현은 공급자별로 지정되며 현재 WinNT 공급자에서 사용되지 않습니다.

액세스 형식: 읽기/쓰기

데이터 형식 스크립팅: VARIANT

// C++ method syntax
HRESULT get_Hints(
  [out] VARIANT* pvHints
);
HRESULT put_Hints(
  [in] VARIANT vHints
);

설명

IADsContainer::get__NewEnumIADsContainer::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
헤더
Iads.h
DLL
Activeds.dll
IID
IID_IADsContainer 001677D0-FD16-11CE-ABC4-02608C9E7553으로 정의됩니다.

추가 정보

IADsContainer

IDirectorySearch