I am rewriting C++ Outlook Addin application to it full .NET representation using VSTO (Outlook 2007/2010).
One of the features to rewrite is html forms rendering. User can select checkbox, provide input, select option etc. in compose mail mode (before sending). But when I put any input markup to HTMLBody property it isn't rendered as expected. Instead only something like http://postimage.org/image/jk9swfr2t/ is rendered. I spent a very long time to search for a solution but it always ultimately turned out to be impossible due to Word based Outlook HTML render engine.
Our C++ addin code repository is extremely large and is legacy - I am not a c++ developer and don't know to much about COM and c++ outlook corresponding APIs, the target is to rewrite according to existing functionalities, there is simply no time and no resources to analize legacy code.
But the most interesting to me is that c++ version of software render everything: inputs, checkbox, select option, just everything! So I guessed it is possible and started looking for a workaround or any kind of hack.
I analyzed the old c++ addin using OutlookSpy tool and it turned out that it doesn't fill HTMLBody. I had to wade through a partial legacy code and found that it set PR_HTML MAPI property. Unfortunately I found also that this property is not available in vsto so I can't check if it helps.
So my questions are:
- do you know any hacks to render HTML forms in Outlook using VSTO?
- are there any differences using item.HTMLBody or PR_HTML MAPI property which can have impact on my problem?
- if yes then can I set PR_HTML using C#? (I've checked free http://www.add-in-express.com/creating-addins-blog/2008/11/21/outlook-object-model-propertyaccessor-storageitem/ but it doesn't work for me - code doesn't execute when I add AddExpress.MAPI.dll)
Everything must be done programmatically so inserting using Outlook UI or exporting to Outlook from IE doesn't count. Also we can't use commercial third party tools like Redemption or Add-in Express.