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::GetIADs::P ut ,但會在您呼叫已刪除物件的 IADs::SetInfoIADs::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