Метод IADsContainer::D elete (iads.h)

Метод IADsContainer::D elete удаляет указанный объект каталога из этого контейнера.

Синтаксис

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

Параметры

[in] bstrClassName

Удаляемый объект класса схемы. Это имя возвращается из метода IADs::get_Class . Кроме того, значение NULL является допустимым параметром для этого параметра. Предоставление значения NULL для этого параметра является единственным способом борьбы с несуществующими классами схемы. Если экземпляр был создан до того, как класс стал несуществующий, единственный способ удалить экземпляр несуществующего класса — вызвать IADsContainer::D elete и указать значение NULL для этого параметра.

[in] bstrRelativeName

Имя объекта, известное в базовом каталоге и идентичное имени, полученному с помощью метода IADs::get_Name .

Возвращаемое значение

Этот метод поддерживает стандартные возвращаемые значения, включая S_OK для успешной операции. Дополнительные сведения о кодах ошибок см. в разделе Коды ошибок ADSI.

Комментарии

Удаляемый объект должен быть конечным объектом или бездетным подконтейнером. Чтобы удалить контейнер и его дочерние элементы, то есть поддеревье, используйте IADsDeleteOps::D eleteObject.

Указанный объект немедленно удаляется после вызова IADsContainer::D elete и вызова IADs::SetInfo для объекта контейнера не требуется.

При использовании метода IADsContainer::D elete для удаления объекта в приложениях C/C++ также отпустите указатели интерфейса на этот объект. Это связано с тем, что метод немедленно удаляет объект из базового каталога, но оставляет без изменений все указатели интерфейса, хранящиеся в памяти приложением для удаленного объекта. Если не освобожден, может возникнуть путаница в том, что вы можете вызывать IADs::Get и IADs::P ut для удаленного объекта без ошибок, но при вызове IADs::SetInfo или IADs::GetInfo для удаленного объекта будет получено сообщение об ошибке.

Примеры

В следующем примере кода удаляется объект пользователя из контейнера в 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

В следующем примере кода удаляется объект пользователя из контейнера в поставщике 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

В следующем примере кода удаляется пользователь с помощью 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();

Требования

   
Минимальная версия клиента Windows Vista
Минимальная версия сервера Windows Server 2008
Целевая платформа Windows
Header iads.h
DLL Activeds.dll

См. также раздел

Коды ошибок ADSI

IADs::Get

IADs::GetInfo

IADs::P ut

IADs::SetInfo

IADs::get_Class

IADs::get_Name

IADsContainer

IADsContainer::Create

IADsDeleteOps::D eleteObject