MAPILab - Microsoft Outlook Add-ins and Software for Microsoft Exchange Server
EnglishGermanRussian
You are here: Home / Support / FAQs and articles / How to avoid security prompts in Vi...

How to avoid security prompts in Visual Basic programs for Outlook

A few words about developing applications for Microsoft Outlook

Microsoft Outlook offers three interface sets for software developers:

  • Outlook object model (further on referred to as OOM), which has tools designed both to work with data storage, and to automate and controls Outlook, e.g., by adding new control elements into Outlook menus and toolbars
  • CDO (Collaboration Data Objects) — a high-level interface set that allows working with Outlook mail system and, when used for Microsoft Outlook, an extension over MAPI system.
  • MAPI (Messaging Application Programming Interface) — an open e-mail system interface offered by Microsoft in the early 1990-s, also known as Extended MAPI (to avoid confusion with the set of 12 functions called Simple MAPI).

Outlook blocks the OOM and CDO methods, but it doesn't affect MAPI methods, as MAPI interfaces are inaccessible from script programming languages (such as JScript and VBScript) and from Visual Basic.

CDO, OOM and MAPI when working with Outlook data storage operate the same data sets represented by various objects. So, for example, an e-mail message is represented by a Message type object in CDO, by a MailItem type object in OOM, and by an object implementing the IMessage interface in MAPI. Properties of those objects, though differently named, provide access to the same data. So, with CDO, an e-mail message sender's address can be accessed through Message.Sender.Address, with OOM it can be accessed with the SenderEmailAddress property of the _MailItem object, and through the PR_SENDER_EMAIL_ADDRESS property of an object using the IMessage interface with MAPI.

While attempts at accessing Message.Sender.Address or _MailItem.SenderEmailAddress properties results in a security system warning, accessing the PR_SENDER_EMAIL_ADDRESS property of a MAPI object won't result in such a warning.

Visual Basic software developers are lucky that both CDO and OOM objects have the MAPIOBJECT property which refers to the MAPI interface corresponding to that object. The MAPIOBJECT has been available with OOM and CDO starting from Microsoft Outlook '98. However, the Microsoft article 296483 says that the MAPIOBJECT property has been added to OOM objects with the sole purpose of providing compatibility with CDO, and it is a "hidden property of Outlook Object Model objects, and is not meant to be used from the Outlook object". Though, we don't know about any limitations for usage of that property with OOM, except the ones described here.

Well, MAPI interfaces are here ready to come to rescue, so, how can one use them?

Related links
Support area
Post suggestion
FAQs and articles
 
 
Search on MAPILab.com:
Get our Newsletter:
E-mail:
© 2003-2008 MAPILab Ltd. All Rights Reserved.

Microsoft and the Office logo are trademarks or registered trademarks of Microsoft Corporation in the United States and/or other countries.

See also: Office-Outlook.Com :: Office-Excel.Com

Quick links to MAPILab software:

MAPILab Reports

Add-ins for Outlook

Plugins for Outlook

Addons for Office

Software for SharePoint

Add-ons for Exchange

Groupware tools

Developer solutions