Partager via


IADsContainer::D elete, méthode (iads.h)

La méthode IADsContainer::D elete supprime un objet de répertoire spécifié de ce conteneur.

Syntaxe

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

Paramètres

[in] bstrClassName

Objet de classe de schéma à supprimer. Le nom est celui retourné par la méthode IADs::get_Class . En outre, NULL est une option valide pour ce paramètre. Fournir la valeur NULL pour ce paramètre est la seule façon de traiter les classes de schéma obsolètes. Si une instance a été créée avant la suppression de la classe, la seule façon de supprimer la instance de la classe obsolète consiste à appeler IADsContainer::D éléte et à fournir null pour ce paramètre.

[in] bstrRelativeName

Nom de l’objet tel qu’il est connu dans le répertoire sous-jacent et identique au nom récupéré avec la méthode IADs::get_Name .

Valeur retournée

Cette méthode prend en charge les valeurs de retour standard, y compris les S_OK pour une opération réussie. Pour plus d’informations sur les codes d’erreur, consultez Codes d’erreur ADSI.

Notes

L’objet à supprimer doit être un objet feuille ou un sous-conteneur sans enfant. Pour supprimer un conteneur et ses enfants, c’est-à-dire une sous-arborescence, utilisez IADsDeleteOps::D eleteObject.

L’objet spécifié est immédiatement supprimé après l’appel de IADsContainer::D elete et l’appel de IADs::SetInfo sur l’objet conteneur n’est pas nécessaire.

Lorsque vous utilisez la méthode IADsContainer::D elete pour supprimer un objet dans les applications C/C++, relâchez également les pointeurs d’interface vers cet objet. Cela est dû au fait que la méthode supprime immédiatement l’objet du répertoire sous-jacent, mais laisse intacts tous les pointeurs d’interface conservés, en mémoire, par l’application, pour l’objet supprimé. S’il n’est pas libéré, une confusion peut se produire en ce que vous pouvez appeler IADs::Get et IADs::P ut sur l’objet supprimé sans erreur, mais reçoit une erreur lorsque vous appelez IADs::SetInfo ou IADs::GetInfo sur l’objet supprimé.

Exemples

L’exemple de code suivant supprime un objet utilisateur du conteneur dans 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

L’exemple de code suivant supprime un objet utilisateur du conteneur sous le fournisseur 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

L’exemple de code suivant supprime un utilisateur à l’aide de 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();

Configuration requise

   
Client minimal pris en charge Windows Vista
Serveur minimal pris en charge Windows Server 2008
Plateforme cible Windows
En-tête iads.h
DLL Activeds.dll

Voir aussi

Codes d’erreur ADSI

IADs::Get

IADs::GetInfo

IADs::P ut

IADs::SetInfo

IADs::get_Class

IADs::get_Name

IADsContainer

IADsContainer::Create

IADsDeleteOps::D eleteObject