Метод 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 |
См. также раздел
IADs::get_Name