Embedded Graphics AND Signatures Please...

K

Kristy

Hello

I have written a vb6 com add-in for Outlook XP using the guidelines
set by Microeye. The main part of the program embeds a graphic
(thanks Neo!) into a new mail message. I then wrote another small
procedure that uses the commandbar object to insert the default
signature into the email. I assigned both of these to
commandbarbuttons on my custom toolbar. Individually (ie, click on
icon on the explorer toolbar to create a new mail message and embed
the graphics and once displayed click on icon on inspector toolbar to
insert signature) they both work every time, the trouble started when
I decided it would be better to make the two steps into one!

I tried calling the InsertSignature sub routine directly from the
EmbedGraphic routine after the message was displayed but before
releasing the objects as this seemed to be the best place to put it.
Stepping through it the code appears to work as expected and there are
no errors generated, however there is also no signature inserted on
the email!

After I couldn't get that to work I stooped so far as to call the
click event of the Insert Signature routine as the very last thing
before End Sub when everything else was completed as I thought this
would produce the same effect as doing it manually, but still no
signature. I am not getting any errors of any kind to go by and like I
said previously if I run the InsertSignature routine manually after
the other is completely finished there is no problem. Does anyone know
if there is another way I can try calling it? Is it somehow staying
in memory? I've checked that I have cleaned up all of my objects
properly.

I then tried a different approach, I displayed the new email before
attaching & embedding the graphics so that I could grab the default
signature from the HTMLBody property and then use it later on to
rebuild the email - see below:

Set golApp = CreateObject("Outlook.Application")
Set oNameSpace = golApp.GetNamespace("MAPI")

Set MyMsg = golApp.CreateItem(olMailItem)

'additional line of code to get HTMLBody with default signature in
memory
MyMsg.Display

Set colAttach = MyMsg.Attachments
Set Attach1 = colAttach.Add(File1.jpg)
Set Attach2 = colAttach.Add(File2.jpg)

MyMsg.Close olSave
strEntryID = My.EntryID

Set MyMsg = Nothing
Set colAttach = Nothing
Set Attach1 = Nothing
Set Attach2 = Nothing

Then Later...

MyMsg.HTMLBody = "<IMG align=right border=0 hspace=0
src=cid:Graphic1>" & "<br>" _' & "<HTML><HEAD><TITLE>Test </TITLE>" &
"</HEAD><BODY></B>" & MyMsg.HTMLBody & "</BODY></HTML>" _'& "<IMG
align=left border=0 hspace=0 src=cid:Graphic2>"

..... this succeeded in getting the signature in the email but the
graphics ended up as square boxes with red crosses? For some reason
displaying the email changed something about it and then I couldn't
embed the graphics properly? Any ideas how to get it back to the
state it was in before it was displayed, or even better how to write
the signature into the Body without having to display it first?

Can anyone help, I know that programmatically embedding graphics is
unsupported but I would really appreciate any suggestions that you may
have.
 
M

Milly Staples [MVP - Outlook]

Try posting this in one of the outlook programming forums. They are more
experienced with programming and you will probably get a faster answer as
well.

--
Milly Staples [MVP - Outlook]

Post all replies to the group to keep the discussion intact. Due to the
Swen virus, all e-mails sent to my actual account will be deleted w/out
reading.

After searching google.groups.com and finding no answer
Kristy <[email protected]> asked:

| Hello
|
| I have written a vb6 com add-in for Outlook XP using the guidelines
| set by Microeye. The main part of the program embeds a graphic
| (thanks Neo!) into a new mail message. I then wrote another small
| procedure that uses the commandbar object to insert the default
| signature into the email. I assigned both of these to
| commandbarbuttons on my custom toolbar. Individually (ie, click on
| icon on the explorer toolbar to create a new mail message and embed
| the graphics and once displayed click on icon on inspector toolbar to
| insert signature) they both work every time, the trouble started when
| I decided it would be better to make the two steps into one!
|
| I tried calling the InsertSignature sub routine directly from the
| EmbedGraphic routine after the message was displayed but before
| releasing the objects as this seemed to be the best place to put it.
| Stepping through it the code appears to work as expected and there are
| no errors generated, however there is also no signature inserted on
| the email!
|
| After I couldn't get that to work I stooped so far as to call the
| click event of the Insert Signature routine as the very last thing
| before End Sub when everything else was completed as I thought this
| would produce the same effect as doing it manually, but still no
| signature. I am not getting any errors of any kind to go by and like I
| said previously if I run the InsertSignature routine manually after
| the other is completely finished there is no problem. Does anyone know
| if there is another way I can try calling it? Is it somehow staying
| in memory? I've checked that I have cleaned up all of my objects
| properly.
|
| I then tried a different approach, I displayed the new email before
| attaching & embedding the graphics so that I could grab the default
| signature from the HTMLBody property and then use it later on to
| rebuild the email - see below:
|
| Set golApp = CreateObject("Outlook.Application")
| Set oNameSpace = golApp.GetNamespace("MAPI")
|
| Set MyMsg = golApp.CreateItem(olMailItem)
|
| 'additional line of code to get HTMLBody with default signature in
| memory
| MyMsg.Display
|
| Set colAttach = MyMsg.Attachments
| Set Attach1 = colAttach.Add(File1.jpg)
| Set Attach2 = colAttach.Add(File2.jpg)
|
| MyMsg.Close olSave
| strEntryID = My.EntryID
|
| Set MyMsg = Nothing
| Set colAttach = Nothing
| Set Attach1 = Nothing
| Set Attach2 = Nothing
|
| Then Later...
|
| MyMsg.HTMLBody = "<IMG align=right border=0 hspace=0
| src=cid:Graphic1>" & "<br>" _' & "<HTML><HEAD><TITLE>Test </TITLE>" &
| "</HEAD><BODY></B>" & MyMsg.HTMLBody & "</BODY></HTML>" _'& "<IMG
| align=left border=0 hspace=0 src=cid:Graphic2>"
|
| .... this succeeded in getting the signature in the email but the
| graphics ended up as square boxes with red crosses? For some reason
| displaying the email changed something about it and then I couldn't
| embed the graphics properly? Any ideas how to get it back to the
| state it was in before it was displayed, or even better how to write
| the signature into the Body without having to display it first?
|
| Can anyone help, I know that programmatically embedding graphics is
| unsupported but I would really appreciate any suggestions that you may
| have.
 

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