home *** CD-ROM | disk | FTP | other *** search
/ Chip 1998 March / CHIPCD_3_98.iso / software / testsoft / exchange / webdata / usa / movcpy / commands.asp next >
Text File  |  1997-08-25  |  6KB  |  205 lines

  1. <!--#include file="../constant.inc"-->
  2. <!--#include file="../lib/session.inc"-->
  3. <!--#include file="../lib/pageutil.inc"-->
  4. <!--#include file="../lib/store.inc"-->
  5. <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.2//EN">
  6. <HTML>
  7. <HEAD>
  8. <TITLE>Results</TITLE>
  9.  
  10. <%
  11. '<!--Microsoft Outlook Web Access-->
  12. '<!--commands.asp : MoveCopy Dialog-->
  13. '<!--Copyright (c) Microsoft Corporation 1993-1997. All rights reserved.-->
  14. '--------------------------------------------------------------------
  15. 'Checks if they can delete or create messages in a folder
  16. Public Function CanCreateMessages(objFldr)
  17.     CanCreateMessages=True
  18.  
  19.     bSrcCanMove=0
  20.     bSrcCanCopy=0
  21.     nAccess=0
  22.  
  23.     nAccess = objFldr.Fields.Item(ActMsgPR_ACCESS) 
  24.     bSrcCanMove = nAccess And MAPI_ACCESS_DELETE
  25.     bSrcCanCopy = nAccess And MAPI_ACCESS_CREATE_CONTENTS
  26.  
  27.     If bSrcCanMove=0 And bSrcCanCopy=0 Then
  28.         CanCreateMessages=False
  29.     End If
  30. End Function
  31. '--------------------------------------------------------------------
  32. Public Function CanCreateFolders(objFldr)
  33.     CanCreateFolders=False
  34.     'check for permissions and set flags
  35.     nFolderAccess = objFldr.Fields.Item(ActMsgPR_ACCESS) 
  36.     bCanMakeFolders = nFolderAccess And MAPI_ACCESS_CREATE_HIERARCHY
  37.     If bCanMakeFolders<>0 Then CanCreateFolders=True
  38. End Function
  39. '-------------------------------------------------------------------
  40. Public Function GetStore(id) 
  41.     GetStore=0
  42.     Set objFolderTemp = objOMSession.GetFolder(id,bstrPublicStoreID)
  43.     If Not objFolderTemp Is Nothing Or Not IsEmpty(objFolderTemp.ID) Then
  44.         GetStore =1 
  45.     End If
  46. End Function
  47. '--------------------------------------------------------------------
  48. Public Function isValidFolder(objFldr) 
  49.     isValidFolder=True
  50.     If objFldr Is Nothing Or IsEmpty(objFldr.ID) Then
  51.         isValidFolder=False
  52.     End If
  53. End Function
  54. '---------------------------------------------------------------------
  55. Public Sub HandleErrors(ErrorNum)
  56.     hasError = 1
  57.     bstrError =  L_errUnknown_ErrorMessage  
  58.     L_errMoveItemPermision_ErrorMessage = "You do not have the necessary permissions to move messages from that folder."
  59.  
  60.     Select Case ErrorNum
  61.         Case MAPI_E_COLLISION 
  62.             bstrError =  L_errCopyFolderExists_ErrorMessage
  63.         Case MAPI_E_NOT_FOUND  
  64.             bstrError =  L_errCopyFolderPermission_ErrorMessage
  65.         Case mapiW_PARTIAL_COMPLETION
  66.             If objSrcFolder.Name = objDestFolder.Name Then
  67.                 bstrError = L_errCopyFolderToSubfolder_ErrorMessage
  68.             Else
  69.                 bstrError =  L_errCopyFolderPermission_ErrorMessage
  70.             End If
  71.         Case 424 'trying to move a message you can't delete
  72.                 bstrError =  L_errCopyMessagePermission_ErrorMessage
  73.         Case 0
  74.                 bstrError = L_errOpenFolder_ErrorMessage
  75.         Case 1    
  76.                 bstrError = L_errFailOpenMessage_ErrorMessage 
  77.         Case 2    
  78.             bstrError = L_errCreateItemPermision_ErrorMessage 
  79.         Case 3
  80.             bstrError = L_errMoveItemPermision_ErrorMessage 
  81.  
  82.     End Select
  83.     err.clear
  84.     bstrBodyTag = bstrError
  85.  
  86. End Sub
  87. '------------------------------------------------------------------------
  88. On Error Resume Next
  89.  
  90. Dim bstrProcess                'Move or Copy
  91. Dim bstrItem                'Folder or Message
  92. Dim bstrSrcFolderID            'Source folder id
  93. Dim bstrDestFolderID        'Destination folder id
  94. Dim bstrSrcMsgID            'Source message ID
  95. Dim objDestFolder            'Destination folder object
  96. Dim objSrcFolder            'Source folder object
  97.  
  98. CheckSession                                        'getrend.inc
  99.  
  100. bstrProcess=Request.Form("process")
  101. bstrItem=Request.Form("item")
  102. bstrSrcFolderID = Request.Form("srcfolder")
  103. bstrDestFolderID= Request.Form("destfolder")
  104. bstrSrcMsgID=Request.Form("srcmsg")
  105. Set objDestFolder=OpenFolder(bstrDestFolderID)        'function in store.inc        
  106. Set objSrcFolder=OpenFolder(bstrSrcFolderID)        'store.inc
  107.  
  108. hasError = 0
  109.  
  110. If isValidFolder(objDestFolder) And isValidFolder(objSrcFolder) Then
  111.  
  112.     iSrcStore=GetStore(bstrSrcFolderID)                    'local function
  113.     iDestStore=GetStore(bstrDestFolderID)                'local function
  114.  
  115.     bstrBodyTag=""
  116.  
  117.     err.clear
  118.  
  119.     If bstrItem="folder" Then
  120.         
  121.         If CanCreateFolders(objDestFolder) Then
  122.             If iDestStore=0 Then  'to private store
  123.                 If bstrProcess="move" Then
  124.                     Set objNewFolder = objSrcFolder.MoveTo(bstrDestFolderID) 
  125.                 Else               
  126.                     Set objNewFolder = objSrcFolder.CopyTo(bstrDestFolderID) 
  127.                 End If
  128.             Else   'to public store          
  129.                 If bstrProcess="move" Then 
  130.                     Set objNewFolder = objSrcFolder.MoveTo(destFolderID, PubStoreID) 
  131.                 Else                           
  132.                     Set objNewFolder = objSrcFolder.CopyTo(destFolderID, PubStoreID) 
  133.                 End If
  134.             End If
  135.  
  136.             fail=Err.Number
  137.         
  138.             If fail<>0 Then
  139.                 HandleErrors fail
  140.             Else
  141.                 objNewFolder.update
  142.             
  143.                 If Err.Number<>0 Then
  144.                     HandleErrors 0
  145.                 End If
  146.             End If
  147.         Else
  148.             HandleErrors 0
  149.         End If
  150.  
  151.     Else 'message
  152.  
  153.         If CanCreateMessages(objDestFolder) Then
  154.  
  155.             Set objSrcMessage = OpenMessage(bstrSrcMsgID)
  156.             
  157.             If objSrcMessage Is Nothing Or objSrcMessage.ID="" Then
  158.                     HandleErrors 1
  159.             End If
  160.             
  161.             If bstrProcess="move" and CanCreateMessages(objSrcFolder) Then
  162.                 Set objDestMsg = objSrcMessage.MoveTo(objDestFolder.ID, objDestFolder.storeID)
  163.             ElseIf bstrProcess="copy" Then
  164.                 Set objDestMsg = objSrcMessage.CopyTo(objDestFolder.ID, objDestFolder.storeID)
  165.             Else
  166.                 Err.Number = 3
  167.             End If
  168.             
  169.             If Err.Number<>0 Then
  170.                 HandleErrors Err.Number
  171.             Else
  172.                 objDestMsg.Update
  173.                 
  174.                 If Err.Number<>0 Then
  175.                     HandleErrors 0
  176.                 End If
  177.             End If
  178.         Else
  179.             HandleErrors 2
  180.         End If
  181.     End If
  182.  
  183. Else 'isValidFolder
  184.     
  185.     HandleErrors 0
  186.  
  187. End If
  188. %>
  189.  
  190. <% If hasError = 1 Then %>
  191.     <BODY bgcolor=#c0c0c0 text=000000 link=000000 vlink=000000 alink=000000 leftmargin=1 topmargin=0 <% If fDeleted = True Then %>onLoad="RedirectToRoot()"<% End If %>>
  192.     <center>
  193.     <%=bstrBodyTag%>
  194.     <br><br>
  195.     <form>
  196.     <input type="button" value="OK" onClick="self.close();">
  197.     </form>
  198.     </center>
  199. <% Else %>
  200.     <BODY bgcolor=#c0c0c0 onLoad="self.close()">
  201. <% End If %>
  202.  
  203. </body>
  204. </html>
  205.