Método IADsContainer::D elete (iads.h)

O método IADsContainer::D elete exclui um objeto de diretório especificado desse contêiner.

Sintaxe

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

Parâmetros

[in] bstrClassName

O objeto de classe de esquema a ser excluído. O nome é retornado do método IADs::get_Class . Além disso, NULL é uma opção válida para esse parâmetro. Fornecer NULL para esse parâmetro é a única maneira de lidar com classes de esquema extintas. Se uma instância foi criada antes da classe ser extinta, a única maneira de excluir a instância da classe extinta é chamar IADsContainer::D elete e fornecer NULL para esse parâmetro.

[in] bstrRelativeName

Nome do objeto como ele é conhecido no diretório subjacente e idêntico ao nome recuperado com o método IADs::get_Name .

Valor retornado

Esse método dá suporte aos valores retornados padrão, incluindo S_OK para uma operação bem-sucedida. Para obter mais informações sobre códigos de erro, consulte Códigos de erro ADSI.

Comentários

O objeto a ser excluído deve ser um objeto folha ou um subcontêiner sem filhos. Para excluir um contêiner e seus filhos, ou seja, uma subárvore, use IADsDeleteOps::D eleteObject.

O objeto especificado é removido imediatamente depois de chamar IADsContainer::D elete e chamar IADs::SetInfo no objeto de contêiner é desnecessário.

Ao usar o método IADsContainer::D elete para excluir um objeto em aplicativos C/C++, libere os ponteiros de interface para esse objeto também. Isso ocorre porque o método remove o objeto do diretório subjacente imediatamente, mas deixa intactos quaisquer ponteiros de interface mantidos, na memória, pelo aplicativo, para o objeto excluído. Se não for liberado, poderá ocorrer confusão porque você pode chamar IADs::Get e IADs::P ut no objeto excluído sem erro, mas receberá um erro ao chamar IADs::SetInfo ou IADs::GetInfo no objeto excluído.

Exemplos

O exemplo de código a seguir exclui um objeto de usuário do contêiner no 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

O exemplo de código a seguir exclui um objeto de usuário do contêiner no provedor 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

O exemplo de código a seguir exclui um usuário 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();

Requisitos

   
Cliente mínimo com suporte Windows Vista
Servidor mínimo com suporte Windows Server 2008
Plataforma de Destino Windows
Cabeçalho iads.h
DLL Activeds.dll

Confira também

Códigos de erro ADSI

IADs::Get

IADs::GetInfo

IADs::P ut

IADs::SetInfo

IADs::get_Class

IADs::get_Name

IADsContainer

IADsContainer::Create

IADsDeleteOps::D eleteObject