A Visual Basic-Based Active Messaging Inbox Agent

ID: Q173915


The information in this article applies to:
  • Collaboration Data Objects (CDO), version 1.1


SUMMARY

This Inbox Agent executes only when the Microsoft Exchange or Microsoft Outlook client is running and a message that meets its criteria causes it to fire (versus some variations of Visual Basic-based Inbox Agents that are required to run all of the time in order to continuously monitor the Inbox).

The following sample file assumes you are running either the Microsoft Exchange or Microsoft Outlook messaging client, and that the Active Messaging Library version 1.1 or higher is installed and registered on the system and referenced by the Project. For information on where to acquire the Active Messaging Libraries, please see the following article in the Microsoft Knowledge Base:

Q171440 INFO: Where to Acquire the Collaboration Data Objects Libraries
The following file is available for download from the Microsoft Download Center. Click the file name below to download the file:
InbxAgnt.exe
Release Date: Sep-16-1997

For more information about how to download files from the Microsoft Download Center, please visit the Download Center at the following Web address
http://www.microsoft.com/downloads/search.asp
and then click How to use the Microsoft Download Center.


MORE INFORMATION


-------------------------------------
 Launcher Custom Action and Forward
-------------------------------------

Description
-----------

This sample has two parts.

Launcher.dll is a custom action .dll for your Inbox Assistant. When a
message arrives that meets the conditions for your Inbox rule, Launcher
launches your VB executable. The executable will be handed the incoming
message's ID on the command line. This is makes it possible to develop
programs in Visual Basic or another language to perform actions on incoming
messages.

Forward.exe, is an example of one of these programs. Forward.exe will
forward a message that meets the conditions of an Inbox rule. Forward.exe
is a Visual Basic project.

Setup
-----

1. Copy the Launcher.dll and Forward.exe files to a directory on your
   hard disk. A suggested good place to locate it is in a subdirectory
   of your Exchange directory called "Custom Actions." You will
   probably need to create this directory.

2. Your registry must be updated to so the Inbox Assistant can find
   Launcher.dll. Here's how to do this:

      a. Run Regedit (Windows 95) or Regedt32 (Windows NT).
      b. Goto hkey_local_machine\Software\Microsoft\Exchange\Client.
      c. Create a "Custom Actions" key under Client if one doesn't exist.
      d. Create a string value.
      e. Enter value name "Launch."
      f. Enter value data "4.0;PathToTheDLL;1" where path to the .dll
         is the file path to the Launcher.dll; that is,
         C:\Program Files\Microsoft Exchange\Custom Actions\Launcher.dll

3. Launch Exchange or Outlook. Select your Inbox. From the Tools
   menu, select Inbox Assistant, click Add Rule.

4. Create the desired rule condition (for example, the Message is from a
   certain Sender, and so forth).

5. Select the Custom check box. Select the "Launch" action from the
   Custom drop-down list box. If it does not show in the list box, then
   it was not installed properly into your registry. Recheck step 2,
   and double check the physical location of the Launcher.dll file.

6. A dialog box will appear asking you to locate the program to launch.
   Point it to Forward.exe. A suggested location would be another
   custom directory called "Forward" below the "Custom Actions"
   directory you previously created.

7. Test it out. Send a message to yourself that fits the criteria of
   the rule (being careful not to setup a rule that initiates a loop).
   You should see both the original and forwarded message in your Inbox.

More Information on Launcher for Visual C++ Developers
------------------------------------------------------

The Launcher is a modified version of the Crarun project that is included
in the Exchange Development Kit (EDK). The kit's Crarun.dll launches a
program without specifying which message just arrived. This sample takes
the .dll one step by further by launching a program and then passing the
message ID of the arriving message on the command line. This way, the
launching program can access the message object and act on it.

Launcher's Visual C++ source is found in the Launcher directory.

Forward
-------

In this sample, Launcher launches Forward and hands it the MessageId of the
incoming message.

Using Active Messaging, Forward logs onto the existing session, then calls
the Session.GetMessage method to retrieve the message object. A new message
is then created, which it subsequently populates with properties and
attributes of the original message (including prepending a comment at the
beginning of the body). It then sends the new message onto the recipient
specified in the Subject line of the original message.

Forward's Visual Basic source is found in the Forward directory.

Miscellaneous
-------------

The Launcher.dll is borrowed from the ExPrint sample found at the following
Web site:

   http://www.microsoft.com/technet/resource/downloads/exchange/misc
    /default.htm#c 


REFERENCES

For additional information about Collaboration Data Objects versus Active Messaging, please see the following article in the Microsoft Knowledge Base:

Q176916 INFO: Active Messaging and Collaboration Data Objects (CDO)

Additional query words:

Keywords : kbfile kbsample kbActMsg kbCDO
Version : WINDOWS:1.1
Platform : WINDOWS
Issue type :


Last Reviewed: December 10, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.