Condividi tramite


Metodo IADsContainer::D elete (iads.h)

Il metodo IADsContainer::D elete elimina un oggetto directory specificato da questo contenitore.

Sintassi

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

Parametri

[in] bstrClassName

Oggetto classe dello schema da eliminare. Il nome è che viene restituito dal metodo IADs::get_Class . Inoltre, NULL è un'opzione valida per questo parametro. Fornire NULL per questo parametro è l'unico modo per gestire le classi di schemi inattivi. Se un'istanza è stata creata prima che la classe diventasse inattiva, l'unico modo per eliminare l'istanza della classe inattiva consiste nel chiamare IADsContainer::D elete e fornire NULL per questo parametro.

[in] bstrRelativeName

Nome dell'oggetto noto nella directory sottostante e identico al nome recuperato con il metodo IADs::get_Name .

Valore restituito

Questo metodo supporta i valori restituiti standard, inclusi i S_OK per un'operazione riuscita. Per altre informazioni sui codici di errore, vedere Codici di errore ADSI.

Commenti

L'oggetto da eliminare deve essere un oggetto foglia o un subcontainer senza figli. Per eliminare un contenitore e i relativi elementi figlio, ovvero un sottoalbero, usare IADsDeleteOps::D eleteObject.

L'oggetto specificato viene immediatamente rimosso dopo aver chiamato IADsContainer::D elete e chiamare IADs::SetInfo nell'oggetto contenitore non è necessario.

Quando si usa il metodo IADsContainer::D elete per eliminare un oggetto nelle applicazioni C/C++, rilasciare anche i puntatori di interfaccia a tale oggetto. Questo perché il metodo rimuove immediatamente l'oggetto dalla directory sottostante, ma lascia invariati eventuali puntatori di interfaccia mantenuti, in memoria, dall'applicazione, per l'oggetto eliminato. Se non viene rilasciato, può verificarsi confusione in quanto è possibile chiamare IADs::Get e IADs::P ut sull'oggetto eliminato senza errori, ma riceverà un errore quando si chiama IADs::SetInfo o IADs::GetInfo sull'oggetto eliminato.

Esempio

Nell'esempio di codice seguente viene eliminato un oggetto utente dal contenitore in 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

Nell'esempio di codice seguente viene eliminato un oggetto utente dal contenitore nel provider 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

Nell'esempio di codice seguente viene eliminato un utente usando 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();

Requisiti

   
Client minimo supportato Windows Vista
Server minimo supportato Windows Server 2008
Piattaforma di destinazione Windows
Intestazione iads.h
DLL Activeds.dll

Vedi anche

Codici di errore ADSI

IADs::Get

IADs::GetInfo

ID::P ut

ID::SetInfo

ID::get_Class

ID::get_Name

IADsContainer

IADsContainer::Create

IADsDeleteOps::D eleteObject