The Matrix vs Carl Sagan

Posted by admin | Uncategorized | Tuesday 27 July 2010 11:55 am

I liked this video

http://www.youtube.com/watch?v=BlpyGhABXRA&feature=related

More Outlook documentation leaks out into the wild

Posted by admin | Uncategorized | Monday 15 March 2010 1:28 pm

Its been years since I’ve done any serious Outlook development but I still keep a lookout for interesting stuff about Outlook and MAPI.For example the link below describes the nickname-cache.

http://blogs.msdn.com/stephen_griffin/archive/2010/03/15/the-nickname-cache.aspx

Customizing Outlook can be a nightmare. For example there are two basic ways to create an Outlook custom form. The first is to customize the standard email form which is OK for some kinds  of  in house  IT applications but are otherwise not very robust. The other is to use MAPI’s Form Server technology which involves creating a seperate application which Outlook communicates with.

I was once deeply involved with a MAPI Form Server which was quite a frustrating experiance because so much of Outlook’s behaviour is not accessable. The Outlook form I was developing needed to look for the most part like Outlook’s standard email form but with a custom Active X control managing the message body instead of a text box (eg Trident based HTML text editor, Word,  or a richedit control) that Outlook used.

While MAPI Forms give much more control and stability over the resultant custom form it is necessary to write all of the UI yourself. I have never understood why Microsoft did not write a bunch of ActiveX controls that allowed MAPI forms to reuse  Outlook UI such as the message header or toolbars. They could have arranged things so that ActiveX controls could only be used when used in a MAPI form server.

An excellent example of a part of the Outlook UI that should allowed reuse are the text boxes used to edit recipients within the Outlook email form. At first these controls seem to be simple rich edit controls except that they do useful things like the nickname list processing mentioned in the link above. They also treat resolved recipients as single entities which are protected from being edited and can be dragged and dropped between the ‘To’, ‘Cc’ and ‘Bcc’ edit boxes.

All this needs to be emulated by a third party form and updated everytime a new version of Outlook is released. The nearest that Outlook gets to reuse is the Address book which can be launched to select recipients. Another problem is that because Outlook uses it own version of MAPI so if Outlook stops using a MAPI function then the function can degrade overtime.

For example there is a MAPI function that provides a property page from message store providers. This is used on older versons of Outlook to provide additonal pages in the message properties property sheet in the standard email form. This same UI was available via MAPI to third party form servers. When Outlook changed and moved more message properties into the newer message options UI however then this part of MAPI became unreliable.

I don’t think anything is going to change because I suspect that most of the extensions to Outlook have already been written or will be Microsoft extensions which don’t suffer from these problems.