Attachment not display in mail

A

Ashish

In outlook addin when i open a mail ActiveInspector_Activate event is
called. Here i add an attachment to this mail using MAPI. To add attachment
using MAPI
MapiSession->logon()
MapiMessage = MapiSession->GetMessage(entryid)
count = MapiMessage ->Attachment->Count
MapiMessage ->Attachment->Add(path)
MapiMessage ->Update();

count = MapiMessage ->Attachment->Count, new count returns one extra value.
it means attachment is added to mail but not display in mail. What should i
do to display attachment in open mail.
 
K

Ken Slovak - [MVP - Outlook]

Outlook has no idea that you added something using another API, CDO 1.21 in
this case. Just use the Outlook object model to add the attachment, Outlook
will show that automatically.

You're already using the object model to handle the Inspector.Activate()
event, why drop into CDO? Especially since CDO is security restricted and
may not even be installed.
 
A

Ashish

Actually i was trying to use CDO functions in active inspector.
Is it possible to avoid active inspector and open mail using MAPI. I mean
when we open a mail NewInspector is call which open a mail. Can we avoid
this and use MAPI to open mail.
 
K

Ken Slovak - [MVP - Outlook]

When you say MAPI do you mean CDO or Extended MAPI? Both Extended MAPI and
CDO aren't concerned with UI such as showing Inspectors.

I still have no idea why you are trying to complicate things that should be
very simple. Use the Outlook object model to add the attachment and Outlook
will immediately show it. No dropping into other API's required at all. Why
complicate things when they don't need to be? The KISS principle rules.
 
A

ashish

When you say MAPI do you mean CDO or Extended MAPI? Both Extended MAPI and
CDO aren't concerned with UI such as showing Inspectors.

As per my knowledge Exchange CDO is on top of MAPI. Please correct me if i
am wrong.
I still have no idea why you are trying to complicate things that should
be very simple. Use the Outlook object model to add the attachment and
Outlook will immediately show it. No dropping into other API's required at
all. Why complicate things when they don't need to be? The KISS principle
rules.

CDO has Message interface which provides Update function. Update allows to
save data on exchange permanently or dont save permanently.It means we can
modify a mail but do not update on exchange. but using outlook programming
if we modify a mail then data will update permanently on exchange. thats why
i asked about this.
I want to modify mail when open it and should not update on exchange. I read
on net it's possible using MAPI. thats why i tried this.
Ken Slovak
[MVP - Outlook]
http://www.slovaktech.com
Author: Professional Programming Outlook 2007.
Reminder Manager, Extended Reminders, Attachment Options.
http://www.slovaktech.com/products.htm


Ashish said:
Actually i was trying to use CDO functions in active inspector.
Is it possible to avoid active inspector and open mail using MAPI. I mean
when we open a mail NewInspector is call which open a mail. Can we avoid
this and use MAPI to open mail.
 
K

Ken Slovak - [MVP - Outlook]

As I said before, neither CDO nor Extended MAPI deal with UI such as
displaying items. If you want the display updated then use the Outlook
object model. If you don't want the attachment to persist then delete it
when you are done with it.
 
A

Ashish

Correct when i delete attachment i need to save mail also. otherwise
attachments will written on exchange. and saving mail will modify mail date
on exchange. I think you have already explained mail date will modify in
this case. I was just trying if MAPI helps in this or not.
Thnaks
 
K

Ken Slovak - [MVP - Outlook]

Given the behavior of the various API's you have to decide if your spec can
live with those behaviors or if you have to re-think your specs.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top