Compartir a través de


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

El método IADsContainer::D elete elimina un objeto de directorio especificado de este contenedor.

Sintaxis

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

Parámetros

[in] bstrClassName

Objeto de clase de esquema que se va a eliminar. El nombre es que se devuelve del método IADs::get_Class . Además, NULL es una opción válida para este parámetro. Proporcionar NULL para este parámetro es la única manera de tratar con clases de esquema inactivas. Si se creó una instancia antes de que la clase se desintegre, la única manera de eliminar la instancia de la clase inactiva es llamar a IADsContainer::D elete y proporcionar NULL para este parámetro.

[in] bstrRelativeName

Nombre del objeto tal y como se conoce en el directorio subyacente y idéntico al nombre recuperado con el método IADs::get_Name .

Valor devuelto

Este método admite los valores devueltos estándar, incluidos S_OK para una operación correcta. Para obtener más información sobre los códigos de error, consulta Códigos de error adsi.

Comentarios

El objeto que se va a eliminar debe ser un objeto hoja o un subcontenidor sin hijos. Para eliminar un contenedor y sus elementos secundarios, es decir, un subárbol, use IADsDeleteOps::D eleteObject.

El objeto especificado se quita inmediatamente después de llamar a IADsContainer::D elete y llamar a IADs::SetInfo en el objeto contenedor no es necesario.

Al usar el método IADsContainer::D elete para eliminar un objeto en aplicaciones de C/C++, libere también los punteros de interfaz a ese objeto. Esto se debe a que el método quita el objeto del directorio subyacente inmediatamente, pero deja intactos los punteros de interfaz mantenidos, en memoria, por la aplicación, para el objeto eliminado. Si no se libera, puede producirse confusión en que puede llamar a IADs::Get e IADs::P ut en el objeto eliminado sin error, pero recibirá un error al llamar a IADs::SetInfo o IADs::GetInfo en el objeto eliminado.

Ejemplos

En el ejemplo de código siguiente se elimina un objeto de usuario del contenedor en 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

En el ejemplo de código siguiente se elimina un objeto de usuario del contenedor en el proveedor 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

En el ejemplo de código siguiente se elimina un usuario mediante 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 compatible Windows Vista
Servidor mínimo compatible Windows Server 2008
Plataforma de destino Windows
Encabezado iads.h
Archivo DLL Activeds.dll

Consulte también

Códigos de error adsi

IADs::Get

IADs::GetInfo

IADs::P ut

IADs::SetInfo

IADs::get_Class

IADs::get_Name

IADsContainer

IADsContainer::Create

IADsDeleteOps::D eleteObject