IADsDeleteOpsインターフェイス

IADsDeleteOpsインターフェイスは、基になるディレクトリストアの監視およびメンテナンスルーチンで使用されます。 リーフオブジェクトとサブツリー全体を1回の操作で削除できます。

このインターフェイスがサポートされていない場合、Active Directoryからオブジェクトを削除するには、含まれている各オブジェクトを再帰的に列挙して削除する必要があります。 このインターフェイスを使用すると、コンテナーオブジェクトと、それに含まれているすべてのオブジェクトとサブオブジェクトを1回の操作で削除できます。

次のコード例では、"Eng"コンテナーとすべての子オブジェクトを削除します。

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));
}

次のコード例では、"Eng"コンテナーとすべての子オブジェクトを削除します。

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)