SafeApplication object


SafeApplication object is designed to be used alongside the Outlook.Application object..


Unlike the Safe*Item objects, SafeApplication object is not MAPI based and hence can be used even if the bitness of the calling process (and Redemption) does not match the bitness of Outlook.


The example below intercepts the BeforePrint event (not exposed in the Outlook Object Model) and displays a warning if it finds a string that looks like a Social Security Number in the body of the message to be printed.

private Redemption.SafeApplication _safeApplication;

private Outlook.Application _application;


public TestForm()


    _application = new Outlook.Application();

    _safeApplication = new SafeApplication();

    _safeApplication.Item = _application;

    _safeApplication.BeforePrint += _safeApplication_BeforePrint;



private void _safeApplication_BeforePrint(object Item)


    Outlook.MailItem mailItem = Item as Outlook.MailItem;

    if (mailItem != null)


        string body = mailItem.Body;

        body = body.Replace("\r", "").Replace("\n", "");

        Match ssnMatch = new Regex(@"(?<!\d)\d{3}([- ])\d{2}\1\d{4}(?!\d)").Match(body);

        if (ssnMatch.Success)


            //unfortunately, the event is not cancelable

            MessageBox.Show("The message you are about to print appears to contain a "+

                            "Social Security Number.\n" +

                            "Please destroy the printout when you are done.",

                            "Printing from Outlook",










Derived from: IDispatch


string, read-only.
Returns the fully qualified path of the outlook.exe executable, e.g.
"C:\Program Files (x86)\Microsoft Office\root\Office16\OUTLOOK.EXE"
integer, read-only.
Returns the Outlook bitness, 32 for the 32 bit version and 64 for the 64 bit version.


BeforePrint(Item) The event fires before Outlook prints an item. The event is not cancelable.

Item - object. The item being printed, e.g. MailItem or AppoinntmentItem.
see the example above