次の方法で共有


IADsContainer::D elete メソッド (iads.h)

IADsContainer::D elete メソッドは、指定したディレクトリ オブジェクトをこのコンテナーから削除します。

構文

HRESULT Delete(
  [in] BSTR bstrClassName,
  [in] BSTR bstrRelativeName
);

パラメーター

[in] bstrClassName

削除するスキーマ クラス オブジェクト。 名前は、 IADs::get_Class メソッドから返されます。 また、 NULL は、このパラメーターの有効なオプションです。 このパラメーターに NULL を 指定することは、機能していないスキーマ クラスを処理する唯一の方法です。 クラスが機能しなくなった前にインスタンスが作成された場合、機能しないクラスのインスタンスを削除する唯一の方法は、 IADsContainer::D elete を呼び出し、このパラメーターに NULL を 指定することです。

[in] bstrRelativeName

オブジェクトの名前は、基になるディレクトリで認識されており、 IADs::get_Name メソッドで取得された名前と同じです。

戻り値

このメソッドは、正常な操作のS_OKなど、標準の戻り値をサポートしています。 エラー コードの詳細については、「 ADSI エラー コード」を参照してください。

解説

削除するオブジェクトは、リーフ オブジェクトまたは子なしのサブコンテナーである必要があります。 コンテナーとその子 (サブツリー) を削除するには、 IADsDeleteOps::D eleteObject を使用します

指定されたオブジェクトは、 IADsContainer::D elete を呼び出した直後に削除され、コンテナー オブジェクトで IADs::SetInfo を呼び出す必要はなくなります。

IADsContainer::D elete メソッドを使用して C/C++ アプリケーション内のオブジェクトを削除する場合は、そのオブジェクトへのインターフェイス ポインターも解放します。 これは、 メソッドが基になるディレクトリからオブジェクトを直ちに削除しますが、削除されたオブジェクトに対してアプリケーションによってメモリに保持されているインターフェイス ポインターはそのままにしておくためです。 解放されていない場合は、削除されたオブジェクトで IADs::Get と IADs::P ut をエラーなしで呼び出すことができますが、削除されたオブジェクトに対して IADs::SetInfo または IADs::GetInfo を呼び出すとエラーが発生する可能性があります。

次のコード例では、Active Directory のコンテナーからユーザー オブジェクトを削除します。

Dim cont as IADsContainer
On Error GoTo Cleanup

Set cont = GetObject("LDAP://OU=Sales,DC=Fabrikam,DC=com")
cont.Delete "user", "CN=JeffSmith"

Cleanup:
    If (Err.Number<>0) Then
        MsgBox("An error has occurred. " & Err.Number)
    End If
    Set cont = Nothing

次のコード例では、WinNT プロバイダーの下のコンテナーからユーザー オブジェクトを削除します。

Dim cont as IADsContainer
On Error GoTo Cleanup

Set cont = GetObject("WinNT://Fabrikam")
cont.Delete "user", "jeffsmith"

Cleanup:
    If (Err.Number<>0) Then
        MsgBox("An error has occurred. " & Err.Number)
    End If
    Set cont = Nothing

次のコード例では、 IADsContainer::D elete を使用してユーザーを削除します。

HRESULT hr = S_OK;
IADsContainer *pCont=NULL;
 
CoInitialize(NULL);
 
hr = ADsGetObject(L"WinNT://myMachine", 
                  IID_IADsContainer, 
                  (void**) &pCont);
if ( !SUCCEEDED(hr) )
{
     return hr;
}
 
hr = pCont->Delete(CComBSTR("user"), CComBSTR("JeffSmith"));
pCont->Release();

要件

   
サポートされている最小のクライアント Windows Vista
サポートされている最小のサーバー Windows Server 2008
対象プラットフォーム Windows
ヘッダー iads.h
[DLL] Activeds.dll

関連項目

ADSI エラー コード

IADs::Get

IADs::GetInfo

IADs::P ut

IADs::SetInfo

IADs::get_Class

IADs::get_Name

IADsContainer

IADsContainer::Create

IADsDeleteOps::D eleteObject