移動物件的範例程序代碼
本主題包含用來在網域中移動物件的程式代碼範例。
下列 C++ 程式代碼範例示範如何使用 ADSI 來移動網域中的物件。
#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;
}
下列 Visual Basic 程式代碼範例示範如何使用 ADSI 來移動定義域中的物件。
''''''''''''''''''''''''''''''''''''''''
'
' 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