IADsClass 인터페이스(iads.h)

IADsClass 인터페이스는 ADSI 개체에 대한 클래스 정의를 제공하는 스키마 클래스 개체를 관리하도록 설계되었습니다. 다른 스키마 관리 인터페이스에는 특성 정의에 대한 IADsProperty 및 특성 구문에 대한 IADsSyntax 가 포함됩니다.

상속

IADsClass 인터페이스는 IDispatchIAD에서 상속됩니다. IADsClass 에는 다음과 같은 유형의 멤버도 있습니다.

메서드

IADsClass 인터페이스에는 이러한 메서드가 있습니다.

 
IADsClass::Qualifiers

이 스키마 클래스에 대한 추가 한정자를 설명하는 ADSI 개체의 컬렉션을 반환합니다.

설명

스키마 개체는 지정된 디렉터리의 스키마 컨테이너에서 구성됩니다. 개체의 스키마 클래스에 액세스하려면 개체의 스키마 속성(즉, IADs::get_Schema 속성 메서드 호출)을 사용하여 ADsPath 문자열을 가져오고 해당 문자열을 사용하여 스키마 클래스 개체에 바인딩합니다.

예제

다음 코드 예제에서는 IADsClass 인터페이스를 구현하는 방법을 보여 줍니다.

Dim obj As IADs
Dim cls As IADsClass

On Error GoTo Cleanup

Set obj = GetObject("WinNT://myMachine,computer")
Set cls = GetObject(obj.Schema)
 
' Inspecting mandatory and optional properties.
For Each p In cls.MandatoryProperties
    MsgBox "Must-have: " & p
Next
For Each p In cls.OptionalProperties
    MsgBox "May-have: " & p
Next

Cleanup:
    If (Err.Number<>0) Then
        MsgBox("An error has occurred. " & Err.Number)
    End If
    Set obj = Nothing
    Set cls = Nothing

다음 코드 예제에서는 IADsClass 인터페이스를 구현하는 방법을 보여 줍니다.

HRESULT hr = S_OK;
IADsClass *pCls = NULL;
IADs *pADs;
BSTR bstrSchema;
VARIANT var;
 
hr = CoInitialize(NULL);
hr = ADsGetObject(L"WinNT://myComputer,computer",
                  IID_IADs,
                  (void**)&pADs);
if (FAILED(hr)) { goto Cleanup;}
 
hr = pADs->get_Schema(&bstrSchema);
pADs->Release();
if(FAILED(hr)) { goto Cleanup; }
 
hr = ADsGetObject(bstrSchema, IID_IADsClass, (void**)&pCls);
if(FAILED(hr)) { goto Cleanup; }
 
VariantInit(&var);
pCls->get_MandatoryProperties(&var);
hr = printVarArray(var);
 
VariantClear(&var);
pCls->get_OptionalProperties(&var);
hr = printVarArray(var);

Cleanup:
    if(pCls)
        pCls->Release();

    if(pADs)
        pADs->Release();

    SysFreeString(bstrSchema);
    VariantClear(&var);
    CoUninitialize();
    return hr;

다음 코드 예제에서는 printVarArray 함수를 구현하는 방법을 보여줍니다.

HRESULT printVarArray(VARIANT var)
{
    LONG lstart, lend;
    VARIANT varItem;
    HRESULT hr;
    SAFEARRAY *sa = V_ARRAY( &var );
    hr = SafeArrayGetLBound( sa, 1, &lstart );
    hr = SafeArrayGetUBound( sa, 1, &lend );
    VariantInit(&varItem);
    for ( long idx=lstart; idx <= lend; idx++ ) {
        hr = SafeArrayGetElement( sa, &idx, &varItem );
        printf("   %S \n", V_BSTR(&varItem));
        VariantClear(&varItem);
    }
    printf("\n");
    return S_OK;
}

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista
지원되는 최소 서버 Windows Server 2008
대상 플랫폼 Windows
헤더 iads.h

추가 정보

IAD

IADsContainer

IADsProperty

IADsSyntax

IDispatch