IADsAccessControlList::get__NewEnum 메서드(iads.h)
IADsAccessControlList::get__NewEnum 메서드는 ACL이 ACE를 열거할 열거자 개체를 가져오는 데 사용됩니다.
구문
HRESULT get__NewEnum(
[out] IUnknown **retval
);
매개 변수
[out] retval
ACL의 열거자 개체에서 IEnumVARIANT 인터페이스를 검색하는 데 사용되는 IUnknown 인터페이스에 대한 포인터입니다.
반환 값
이 메서드는 S_OK 및E_FAIL 포함한 표준 반환 값을 반환합니다. 다른 반환 값에 대한 자세한 내용은 ADSI 오류 코드를 참조하세요.
설명
get__NewEnum 두 개의 밑줄이 있습니다.
예제
다음 코드 예제에서는 For Each 루프 실행에서 get__NewEnum 메서드를 암시적으로 호출합니다.
Dim Dacl As IADsAccessControlList
Dim ace As IADsAccessControlEntry
On Error GoTo Cleanup
' Get DACL. Code omitted.
' Display the trustees for each of the ACEs
For Each ace In Dacl
Debug.Print ace.trustee
Next ace
Cleanup:
If (Err.Number<>0) Then
MsgBox("An error has occurred. " & Err.Number)
End If
Set Dacl = Nothing
Set ace = Nothing
다음 코드 예제에서는 IADsAccessControlList::get__NewEnum 사용하여 ACE를 열거하는 방법을 보여 줍니다.
HRESULT ListTrustees(IADsAccessControlList *pACL)
{
IEnumVARIANT *pEnum = NULL;
LPUNKNOWN pUnk = NULL;
ULONG lFetch = 0;
BSTR bstr = NULL;
IADsAccessControlEntry *pACE = NULL;
IDispatch *pDisp = NULL;
VARIANT var;
HRESULT hr = S_OK;
VariantInit(&var);
hr = pACL->get__NewEnum(&pUnk);
if (FAILED(hr)){goto Cleanup;}
hr = pUnk->QueryInterface( IID_IEnumVARIANT, (void**) &pEnum );
pUnk->Release();
if (FAILED(hr)){goto Cleanup;}
hr = pEnum->Next( 1, &var, &lFetch );
if (FAILED(hr)){goto Cleanup;}
while( hr == S_OK )
{
if ( lFetch == 1 )
{
if ( VT_DISPATCH != V_VT(&var) )
{
goto Cleanup;
}
pDisp = V_DISPATCH(&var);
/////////////////////////
// Get the individual ACE
/////////////////////////
hr = pDisp->QueryInterface( IID_IADsAccessControlEntry,(void**)&pACE );
if ( SUCCEEDED(hr) )
{
pACE->get_Trustee(&bstr);
printf("\n %S:\n", bstr);
//ACE manipulation here
SysFreeString(bstr);
pACE->Release();
}
pACE->Release();
pDisp->Release();
VariantClear(&var);
}
hr = pEnum->Next( 1, &var, &lFetch );
}
Cleanup:
if(pEnum) pEnum->Release();
if(pUnk) pUnk->Release();
if(bstr) SysFreeString(bstr);
if(pACE) pACE->Release();
VariantClear(&var);
return hr;
}
요구 사항
지원되는 최소 클라이언트 | Windows Vista |
지원되는 최소 서버 | Windows Server 2008 |
대상 플랫폼 | Windows |
헤더 | iads.h |
DLL | Activeds.dll |