home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1998 June B / Pcwk6b98.iso / Outlk98 / En / OL98 / MPI95_2S.CAB / mpi95_2.CAB / exchange.dsm < prev    next >
Text File  |  1998-03-10  |  4KB  |  180 lines

  1. '------------------------------------------------------------------------------
  2. ' FILE DESCRIPTION: Macros for development of Exchange Server Applications 
  3. ' Copyright (c) Microsoft Corporation 1993-1997. All rights reserved.
  4. '------------------------------------------------------------------------------
  5. Option Explicit 
  6.  
  7. '------------------------------------------------------------------------------
  8. ' Globals
  9. '------------------------------------------------------------------------------
  10.  
  11. ' current file
  12. Dim fShuttingDown
  13. ' current file
  14. Dim strFileName
  15. ' AM Session
  16. Dim amSession
  17. ' Script Locator
  18. Dim aeChooser
  19.  
  20. ' Debugging Aid
  21. Dim fDebug 
  22. '    fDebug = true
  23.     fDebug = false
  24.  
  25. ' DESCRIPTION: Select and open an Exchange Event Service script in the IDE
  26. Sub BrowseExchangeAgents()
  27.     On Error Resume Next
  28.  
  29.     If Len(strFileName) = 0 Then
  30.         InitGlobals
  31.         If Err.Number = 0 Then
  32.             strFileName = aeChooser.ChooseScript("Exchange Folder Browser")
  33.             If Err.Number = 0 Then 
  34.                 LoadFile
  35.             Else
  36.                 ReportError "ChooseScript"
  37.             End If 
  38.         ElseIf Err.Number <> &H80040113 Then
  39.             ReportError "InitGlobals"
  40.         End If
  41.     Else
  42.         MsgBox "You still have an editing session open, please close it before continuing."
  43.     End If
  44. End Sub
  45.  
  46. '------------------------------------------------------------------------------
  47. ' Events
  48. '------------------------------------------------------------------------------
  49.  
  50. ' DESCRIPTION: Document is saved and closing. Remove temporary file
  51. Sub Application_BeforeDocumentClose(theDocument)
  52.     On Error Resume Next
  53.  
  54.     Dim strTempFileName
  55.     Dim nResult
  56.     
  57.     If Len(strFileName) > 0 Then
  58.         strTempFileName = LCase(theDocument.FullName)
  59.             
  60.         If strTempFileName = strFileName Then
  61.             If fShuttingDown Then
  62.                 ' 4 means vbYesNo
  63.                 nResult = MsgBox("You are shutting down, do you want to save this agent?", 4)
  64.             Else
  65.                 ' 6 means vbYes
  66.                 nResult = 6
  67.             End If
  68.  
  69.             ' 6 means vbYes
  70.             If nResult = 6 Then
  71.                 strFileName = aeChooser.PutScript(fShuttingDown)
  72.                 If Err.Number = 0 Then
  73.                     If Not fShuttingDown Then
  74.                         LoadFile
  75.                     End If
  76.                 Else
  77.                     ReportError "PutScript"
  78.                 End If
  79.             End If
  80.  
  81.             If fShuttingDown Then
  82.                 DeinitGlobals
  83.             End If
  84.         End If
  85.     End If
  86. End Sub 
  87.  
  88. ' DESCRIPTION: VS is exiting. Final cleanup
  89. Sub Application_BeforeApplicationShutDown()
  90.     On Error Resume Next
  91.  
  92.     fShuttingDown = true
  93.  
  94.     If Len(strFileName) = 0 Then
  95.         DeinitGlobals
  96.     End If
  97. End Sub
  98.  
  99. '------------------------------------------------------------------------------
  100. ' Helpers
  101. '------------------------------------------------------------------------------
  102.  
  103. ' DESCRIPTION: loads the current file if there is one
  104. Private Sub LoadFile
  105.     If Len(strFileName) > 0 Then
  106.         Application.Documents.Open(strFileName)
  107.         If Err.Number = 0 Then
  108.             strFileName = LCase(strFileName)
  109.         Else
  110.             strFileName = Empty
  111.             ReportError "Application.Documents.Open"
  112.         End If
  113.     End If
  114. End Sub
  115.  
  116. Private Sub ReportError(strWhatFailed)
  117.     Dim strErrMsg
  118.  
  119.     strErrMsg = strWhatFailed & " failed: " & Err.Description & " (" & Hex(Err.Number) & ")"
  120.  
  121.     MsgBox strErrMsg
  122. End Sub
  123.  
  124. ' DESCRIPTION:  Initialize session and chooser
  125. Private Sub InitGlobals
  126.     On Error Resume Next
  127.  
  128.     Dim amTempSession
  129.     Dim aeTempChooser
  130.     
  131.     fShuttingDown = false
  132.     
  133.     If amSession Is Nothing Then
  134.         Err.Clear
  135.  
  136.         Set amTempSession = CreateObject("MAPI.Session")
  137.         If Err.Number = 0 Then
  138.             ' Logon with showDialog:=true, newSession:=false, NoMail:=true
  139.             amTempSession.Logon "", "", true, true, 0, true
  140.             If Err.Number = 0 Then
  141.                 Application.Active = true
  142.                 Set aeTempChooser = CreateObject("ActiveEx.ScriptChooser")
  143.                 If Err.Number = 0 Then
  144.                     aeTempChooser.Session = amTempSession
  145.                     If Err.Number = 0 Then
  146.                         Set amSession = amTempSession
  147.                         Set aeChooser = aeTempChooser
  148.                     Else
  149.                         ReportError "ScriptChooser.Session"
  150.                     End If
  151.  
  152.                     Set aeTempChooser = Nothing
  153.                 Else
  154.                     ReportError "CreateObject(ScriptChooser)"
  155.                 End If
  156.             ElseIf Err.Number <> &H80040113 Then
  157.                 Application.Active = true
  158.                 ReportError "Session.Logon"
  159.             End If
  160.  
  161.             Set amTempSession = Nothing
  162.         Else
  163.             ReportError "CreateObject(Session)"
  164.         End If
  165.     End If
  166. End Sub
  167.  
  168. Private Sub DeinitGlobals
  169.     If Not aeChooser Is Nothing Then
  170.         Set aeChooser = Nothing
  171.     End If
  172.  
  173.     If Not amSession Is Nothing Then
  174.         amSession.Logoff
  175.         Set amSession = Nothing
  176.     End If
  177.  
  178.     Err.Clear
  179. End Sub