Freigeben über


IADsContainer::D elete-Methode (iads.h)

Die IADsContainer::D elete-Methode löscht ein angegebenes Verzeichnisobjekt aus diesem Container.

Syntax

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

Parameter

[in] bstrClassName

Das zu löschende Schemaklassenobjekt. Der Name wird von der IADs::get_Class-Methode zurückgegeben. Außerdem ist NULL eine gültige Option für diesen Parameter. Die Angabe von NULL für diesen Parameter ist die einzige Möglichkeit, nicht mehr ausgeführte Schemaklassen zu behandeln. Wenn ein instance erstellt wurde, bevor die Klasse außer Kraft gesetzt wurde, besteht die einzige Möglichkeit zum Löschen der instance der veralteten Klasse darin, IADsContainer::D elete aufzurufen und NULL für diesen Parameter anzugeben.

[in] bstrRelativeName

Name des Objekts, wie es im zugrunde liegenden Verzeichnis bekannt ist, und identisch mit dem Namen, der mit der IADs::get_Name-Methode abgerufen wurde.

Rückgabewert

Diese Methode unterstützt die Standardrückgabewerte, einschließlich S_OK für einen erfolgreichen Vorgang. Weitere Informationen zu Fehlercodes finden Sie unter ADSI-Fehlercodes.

Hinweise

Das zu löschende Objekt muss ein Blattobjekt oder ein untergeordneter Untercontainer sein. Verwenden Sie IADsDeleteOps::D eleteObject, um einen Container und seine untergeordneten Elemente, d. h. eine Unterstruktur, zu löschen.

Das angegebene Objekt wird sofort entfernt, nachdem IADsContainer::D elete aufgerufen und IADs::SetInfo für das Containerobjekt aufgerufen wurde.

Wenn Sie die IADsContainer::D elete-Methode verwenden, um ein Objekt in C/C++-Anwendungen zu löschen, geben Sie auch die Schnittstellenzeiger auf dieses Objekt frei. Dies liegt daran, dass die -Methode das -Objekt sofort aus dem zugrunde liegenden Verzeichnis entfernt, aber alle Schnittstellenzeiger, die von der Anwendung im Speicher für das gelöschte Objekt gespeichert werden, intakt belassen. Wenn sie nicht freigegeben wird, kann es zu Verwirrung kommen, da Sie IADs::Get und IADs::P ut für das gelöschte Objekt ohne Fehler aufrufen, aber eine Fehlermeldung erhalten, wenn Sie IADs::SetInfo oder IADs::GetInfo für das gelöschte Objekt aufrufen.

Beispiele

Im folgenden Codebeispiel wird ein Benutzerobjekt aus dem Container in Active Directory gelöscht.

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

Im folgenden Codebeispiel wird ein Benutzerobjekt aus dem Container unter dem WinNT-Anbieter gelöscht.

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

Im folgenden Codebeispiel wird ein Benutzer mithilfe von IADsContainer::D elete gelöscht.

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

Anforderungen

   
Unterstützte Mindestversion (Client) Windows Vista
Unterstützte Mindestversion (Server) Windows Server 2008
Zielplattform Windows
Kopfzeile iads.h
DLL Activeds.dll

Weitere Informationen

ADSI-Fehlercodes

IADs::Get

IADs::GetInfo

IADs::P ut

IADs::SetInfo

IADs::get_Class

IADs::get_Name

IADsContainer

IADsContainer::Create

IADsDeleteOps::D eleteObject