![]() |
Write RTF-Body on ItemSend event
I want to create a small Outlook addin that writes some additional
lines of RTF text to the body when the mail item is sent. Writing RTF text into the body I'm using a small extended MAPI based procedure written in VC++. Everytime the code leaves the event handler I got the error: "The messaging interface returned an unknown error. If the problem persits, restart Outlook." When opening the message again I can see the newly created RTF text. My code looks like that: Private WithEvents host As Outlook.application Private Sub host_ItemSend(ByVal Item As Object, Cancel As Boolean) Dim id As String id = Item.entryID Call AddMessageByEntryId(id, host, "Confidential message") .... .... .... I found within the newsgroups answers that I have to dereference all Outlook MailItem instances and create a new one by calling GetItemFromID. But how can I do this when I'm in the event handler that holds an instance itself? Does anybody have an idea what could I do? Any help greatly appreciated! With best regards, Thomas |
Write RTF-Body on ItemSend event
You get a conflict - looking at the AddMessageByEntryId() method, you pass
the entry id of the message (which will be "" if the message hasn't been saved yet), most likely you MAPI code than reopens the message using IMAPISession::OpenEntry. Instead of reopening the message, modify the MAPI function to take an IUnknown and QI it for IMessage. On the VB side, pass Item.MAPIOBJECT . Dmitry Streblechenko (MVP) http://www.dimastr.com/ OutlookSpy - Outlook, CDO and MAPI Developer Tool "Thomas" wrote in message ups.com... I want to create a small Outlook addin that writes some additional lines of RTF text to the body when the mail item is sent. Writing RTF text into the body I'm using a small extended MAPI based procedure written in VC++. Everytime the code leaves the event handler I got the error: "The messaging interface returned an unknown error. If the problem persits, restart Outlook." When opening the message again I can see the newly created RTF text. My code looks like that: Private WithEvents host As Outlook.application Private Sub host_ItemSend(ByVal Item As Object, Cancel As Boolean) Dim id As String id = Item.entryID Call AddMessageByEntryId(id, host, "Confidential message") .... .... .... I found within the newsgroups answers that I have to dereference all Outlook MailItem instances and create a new one by calling GetItemFromID. But how can I do this when I'm in the event handler that holds an instance itself? Does anybody have an idea what could I do? Any help greatly appreciated! With best regards, Thomas |
Write RTF-Body on ItemSend event
Thank you Dmitry once again!
I tried your solution and it is working grreat! With best regards, Thomas On 2 Feb., 21:35, "Dmitry Streblechenko" wrote: You get a conflict - looking at the AddMessageByEntryId() method, you pass the entry id of the message (which will be "" if the message hasn't been saved yet), most likely you MAPI code than reopens the message using IMAPISession::OpenEntry. Instead of reopening the message, modify the MAPI function to take an IUnknown and QI it for IMessage. On the VB side, pass Item.MAPIOBJECT . Dmitry Streblechenko (MVP)http://www.dimastr.com/ OutlookSpy - Outlook, CDO and MAPI Developer Tool "Thomas" wrote in message ups.com... I want to create a small Outlook addin that writes some additional lines ofRTFtext to the body when the mail item is sent. WritingRTFtext into the body I'm using a small extended MAPI based procedure written in VC++. Everytime the code leaves the event handler I got the error: "The messaging interface returned an unknown error. If the problem persits, restart Outlook." When opening the message again I can see the newly createdRTFtext. My code looks like that: Private WithEvents host As Outlook.application Private Sub host_ItemSend(ByVal Item As Object, Cancel As Boolean) Dim id As String id = Item.entryID Call AddMessageByEntryId(id, host, "Confidential message") .... .... .... I found within the newsgroups answers that I have to dereference all Outlook MailItem instances and create a new one by calling GetItemFromID. But how can I do this when I'm in the event handler that holds an instance itself? Does anybody have an idea what could I do? Any help greatly appreciated! With best regards, Thomas- Zitierten Text ausblenden - - Zitierten Text anzeigen - |
All times are GMT +1. The time now is 12:32 PM. |
Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 2.4.0
Copyright ©2004-2006 OutlookBanter.com