Partager via


IADsDeleteOps Interface

L’interface IADsDeleteOps est utilisée dans les routines de supervision et de maintenance pour le magasin d’annuaires sous-jacent. Il peut supprimer des objets feuilles et des sous-arborescences entières en une seule opération.

Si cette interface n’était pas prise en charge, la suppression d’un objet d’Active Directory exigerait que chaque objet contenu soit énuméré et supprimé de manière récursive. Avec cette interface, tout objet conteneur, avec tous ses objets et sous-objets contenus, peut être supprimé avec une seule opération.

L’exemple de code suivant supprime le conteneur « Eng » et tous les objets enfants.

HRESULT hr;
IADsDeleteOps *pDeleteOps;
LPWSTR pwszUsername = NULL;
LPWSTR pwszPassword = NULL;

// Insert code to securely retrieve the pwszUsername and pwszPassword
// or leave as NULL to use the default security context of the 
// calling application.
 
// Bind to the LDAP provider.
hr = ADsOpenObject(L"LDAP://CN=Eng,CN=Users,DC=Fabrikam,DC=Com", 
    pwszUsername,
    pwszPassword,
    0,
    ADS_SECURE_AUTHENTICATION,
    IID_IADsDeleteOps, 
    (void**)&pDeleteOps);
if(S_OK == hr)
{
    // Delete the container and all child objects.
    pDeleteOps->DeleteObject(0);

    // Release the interface.
    pDeleteOps->Release();
}

if(pwszUsername)
{
    SecureZeroMemory(pwszUsername, lstrlen(pwszUsername) * sizeof(TCHAR));
}
if(pwszPassword)
{
    SecureZeroMemory(pwszPassword, lstrlen(pwszPassword) * sizeof(TCHAR));
}

L’exemple de code suivant supprime le conteneur « Eng » et tous les objets enfants.

Dim DeleteOps As IADsDeleteOps

' Bind to the LDAP provider.
Set DeleteOps = GetObject("LDAP://CN=Eng,CN=Users,DC=Fabrikam,DC=Com")

' Delete the container and all child objects.
DeleteOps.DeleteObject (0)