Código de exemplo para mover um objeto
Este tópico inclui exemplos de código usados para mover um objeto no domínio.
O exemplo de código C++ a seguir mostra como usar ADSI para mover um objeto no domínio.
#include <stdio.h>
#include <atlbase.h>
#include <activeds.h>
#include <ntldap.h>
/***************************************************************************
MoveObject()
Moves an object in the directory.
Parameters:
padsToMove - Contains an IADs interface pointer that represents the
object to move.
padsDestination - Contains an IADs interface pointer that represents the
container to move the object to.
***************************************************************************/
HRESULT MoveObject(IADs *padsToMove, IADs *padsDestination)
{
_ASSERT(padsToMove);
_ASSERT(padsDestination);
HRESULT hr;
// Get the ADsPath of the object to move.
CComBSTR sbstrPathToMove;
hr = padsToMove->get_ADsPath(&sbstrPathToMove);
if(FAILED(hr))
{
return hr;
}
// Get an IADsContainer instance from the destination.
CComPtr<IADsContainer> spContainerDestination;
hr = padsDestination->QueryInterface(IID_IADsContainer, (void**)&spContainerDestination);
if(FAILED(hr))
{
return hr;
}
// Move the object.
CComPtr<IDispatch> spDispNewObject;
hr = spContainerDestination->MoveHere(sbstrPathToMove, NULL, &spDispNewObject);
return hr;
}
O exemplo de código do Visual Basic a seguir mostra como usar ADSI para mover um objeto no domínio.
''''''''''''''''''''''''''''''''''''''''
'
' MoveObject
'
' Moves an object in the directory.
'
' Parameters:
'
' DNToMove - Contains the distinguished name of the object to move.
'
' DNDestination - Contains the distinguished name of the destination
' container.
'
''''''''''''''''''''''''''''''''''''''''
Public Sub MoveObject(DNToMove As String, DNDestination As String)
Dim oContainer As IADsContainer
' Bind to the destination container.
Set oContainer = GetObject("LDAP://" & DNDestination)
oContainer.MoveHere "LDAP://" & DNToMove, vbNullString
End Sub