A typical move or copy request resembles the following:
Move SourceURL
Destination DestinationURL
The following sample demonstrates how to move or copy an item, Test1, from Folder1 to Folder2.
NOTE: You can only copy or move objects within the same store.
- In Exchange 2000 Server, under All Public Folders, create two public folders and name them Folder1 and Folder2. In Folder1, create an item and name it Test1.
- In VB, create a Standard EXE project. Form1 is created by default.
- Add a command button to Form1 and name it Command1.
- Add a reference to the MSXML object library.
- Paste the following code in the code section of Form1.
NOTE: Change e2kServer in the code to the name of your Exchange server.
Private Sub Command1_Click()
sSourceURL = "http://e2kServer/Public/Folder1/Test1.eml" 'TO DO
sDestinationURL = "http://e2kServer/Public/Folder2/Test1.eml" 'TO DO
'CopyMoveUsingWebDav sSourceURL, sDestinationURL, True 'To Copy
CopyMoveUsingWebDav sSourceURL, sDestinationURL, False 'To MoveEnd Sub
Sub CopyMoveUsingWebDav(ByVal sSourceURL As String, ByVal sDestinationURL As String, ByVal bCopy As Boolean)
' dim for xml 2.0
'Dim XMLreq As MSXML.XMLHTTPRequest
' dim for xml 4.0
Dim XMLreg As MSXML2.XMLHTTP
Dim sReq As String
'Use XML to create the new folder.
Set XMLreq = CreateObject("Microsoft.xmlhttp")
If bCopy Then
XMLreq.open "COPY", sSourceURL, False
Else
XMLreq.open "MOVE", sSourceURL, False
End If
XMLreq.setRequestHeader "Destination", sDestinationURL
'Send the request to set the search criteria.
XMLreq.send
'Display the results.
If (XMLreq.Status >= 200 And XMLreq.Status < 300) Then
Debug.Print "Success! " & "Results = " & XMLreq.Status & ": " & XMLreq.statusText
ElseIf XMLreq.Status = 401 then
Debug.Print "You don't have permission to do the job! Please check your permissions on this item."
Else
Debug.Print "Request Failed. Results = " & XMLreq.Status & ": " & XMLreq.statusText
End If
End Sub
- Run the project.NOTE: If you run the code to move Test1 (bCopy = false), make sure that you have at least Editor permissions in Exchange on Test1.