IADsDeleteOps-Schnittstelle
Die IADsDeleteOps-Schnittstelle wird in Überwachungs- und Wartungsroutinen für den zugrunde liegenden Verzeichnisspeicher verwendet. Es können Blattobjekte und ganze Unterstrukturen in einem einzigen Vorgang gelöscht werden.
Wenn diese Schnittstelle nicht unterstützt wird, erfordert das Löschen eines Objekts aus Active Directory, dass jedes enthaltene Objekt rekursiv aufgelistet und gelöscht wird. Mit dieser Schnittstelle kann jedes Containerobjekt mit allen enthaltenen Objekten und Unterobjekten mit einem einzigen Vorgang gelöscht werden.
Im folgenden Codebeispiel werden der Container "Eng" und alle untergeordneten Objekte gelöscht.
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));
}
Im folgenden Codebeispiel werden der Container "Eng" und alle untergeordneten Objekte gelöscht.
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)