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 |
另請參閱
IADs::get_Name