MÉTHODE IADsAccessControlList::get__NewEnum (iads.h)
La méthode IADsAccessControlList::get__NewEnum est utilisée pour obtenir un objet énumérateur pour la liste de contrôle d’accès afin d’énumérer les AES.
Syntaxe
HRESULT get__NewEnum(
[out] IUnknown **retval
);
Paramètres
[out] retval
Pointeur vers le pointeur vers l’interface IUnknown utilisée pour récupérer l’interface IEnumVARIANT sur un objet énumérateur pour l’ACL.
Valeur retournée
Cette méthode retourne les valeurs de retour standard, y compris S_OK et E_FAIL. Pour plus d’informations sur les autres valeurs de retour, consultez Codes d’erreur ADSI.
Notes
N’oubliez pas qu’il existe deux traits de soulignement dans get__NewEnum.
Exemples
L’exemple de code suivant effectue un appel implicite à la méthode get__NewEnum dans l’exécution de la boucle For Each .
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
L’exemple de code suivant montre comment énumérer les ACÉ à l’aide de IADsAccessControlList::get__NewEnum.
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;
}
Configuration requise
Client minimal pris en charge | Windows Vista |
Serveur minimal pris en charge | Windows Server 2008 |
Plateforme cible | Windows |
En-tête | iads.h |
DLL | Activeds.dll |
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour