Preview pane in 2003

B

Bob Haney

With Office XP I was able to click on an email in my
inbox and it would preview any pictures in the read pane
without opening the attachment. I can not find how to do
that in outlook 2003. Can someone help
 
J

Jocelyn Fiorello [MVP - Outlook]

Outlook has never had the ability to do what you're asking. Outlook can
only display images "inline" if the sender used HTML or Rich Text format for
the message and embedded the image into the body. If the image was sent as
an attachment, you will always receive it as an attachment...it's true for
Outlook 2003 and was true for all previous versions. Perhaps the messages
you received in Outlook 2002 had embedded images.

--
Jocelyn Fiorello
MVP - Outlook

*** Messages sent to my e-mail address will NOT be answered -- please
reply only to the newsgroup to preserve the message thread. ***


In
 
P

P_Lee

Try this macro I put together. It's even better than the preview pane because you can
select multiple emails & view all the pictures at once.

It only displays images & will not run executables or other types of attachments.

It initially scales large images to the width of the browser popup, but you can click on
the image to expand to full size. Hover over the image to see the original size/scaled
size. See comments in the macro for more details.

Put a shortcut on your toolbar for easy access.

I'm constantly tweaking it, so please try it out & give me some feedback.



Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Sub view_attachments()
'***************************************************************
' ver. 1/24/04
' - Select one or multiple emails.
' - Files are copied to Temporary Internet folders.
' - Only image files are displayed (no others are executed).
' - Right-click images to 'Save As', 'Email', etc.
' - Hover over image to see original size & scaled size.
' - Clicking each image will toggle between original size
' & browser width (unless original size is smaller).
' - To scale all images to browser width, resize the browser,
' right-click on background & choose 'Refresh'.
'***************************************************************
On Error Resume Next

Dim oOL As Outlook.Application
Dim oSelection As Outlook.Selection

Set oOL = New Outlook.Application
Set oSelection = oOL.ActiveExplorer.Selection
Set objShell = CreateObject("WScript.Shell")

vTempInt = objShell.RegRead("HKCU\software\microsoft\" _
& "Windows\CurrentVersion\Explorer\Shell Folders\Cache")
vPath = vTempInt & "\"

vHTMLBody = "<HTML><title>View Email Attachments</title>" _
& "<body bgcolor=#000000><font face=Arial size=3 color=#FFFFFF>"
vEmailNum = 0
For Each obj In oSelection
vEmailNum = vEmailNum + 10
vSubject = "Attachments from: <b>" _
& obj.Subject & "</b><br>"
vHTMLBody = vHTMLBody & vSubject
vAttachNum = vEmailNum
For Each Attachment In obj.Attachments
vAttachNum = vAttachNum + 1
vImg = "document.img" & vAttachNum
vWidth = "document.body.clientWidth - 20"
Attachment.SaveAsFile (vPath & Attachment.FileName)
vHTMLBody = vHTMLBody _
& "<b>" & Attachment.FileName & "</b><br>" _
& "<a href=""javascript:fWidth(" & vImg & ");"">" _
& "<center><IMG name=""img" & vAttachNum & """ alt="""" hspace=0 " _
& "src=""" & vPath & Attachment.FileName & """ align=baseline " _
& "border=0 " & "onload=""vOrig=String(" & vImg & ".width)" _
& "+ ' x ' + String(" & vImg & ".height);vRatio=(" & vWidth _
& ")/" & vImg & ".width;" & vImg & ".alt='Original Size: ' + " _
& "vOrig + '\n Scaled Size: ';if(" & vImg & ".width <=" _
& vWidth & "){" & vImg & ".alt=" & vImg & ".alt + vOrig;}" _
& "else{" & vImg & ".alt=" & vImg & ".alt + String(" & vWidth _
& ")+ ' x ' + String(Math.round(vRatio *" & vImg & ".height));}" _
& "if (" & vImg & ".width >" & vWidth & "){" & vImg & ".width = " _
& vWidth & ";}""></center></a><br><br><br>"
Next
vHTMLBody = vHTMLBody & "</a><br><br>"
Next

If Not vImg = "" Then
vHTMLBody = vHTMLBody & "<script>function fWidth (vImg){" _
& "vCRLF=vImg.alt.indexOf('\n');vOrgWidth=vImg.alt.substring" _
& "(vImg.alt.indexOf(':')+2, vImg.alt.indexOf('x')-1);" _
& "vRatio=vOrgWidth/vImg.width;if(vImg.width == " & vWidth _
& "|| vOrgWidth <= " & vWidth & "){vImg.width=vOrgWidth;" _
& "vImg.alt=vImg.alt.substring(0,vCRLF) + '\n Scaled Size: '" _
& "+ vImg.alt.substring(vImg.alt.indexOf(':')+2,vCRLF);}else" _
& "{vImg.width=" & vWidth & ";vImg.alt=vImg.alt.substring(0,vCRLF)" _
& "+ '\n Scaled Size: ' + String(" & vWidth & ")+ ' x ' + " _
& "String(Math.round(vRatio * vImg.height));}}</script>"
End If

vHTMLBody = vHTMLBody & "</font></body></html>"

Set ie = CreateObject("internetexplorer.application")
With ie
.toolbar = 0
.menubar = 0
.statusbar = 0
.Left = 100
.Top = 50
.Height = 600
.Width = 800
.navigate "about:blank"
.document.Open
.document.Write vHTMLBody
.document.Close
.Visible = True
End With

vTimer = 0
Do Until ie.readyState = 4 Or vTimer = 10000
Sleep 10
vTimer = vTimer + 10
Loop

Set ie = Nothing

Set objShell = Nothing
Set oSelection = Nothing
Set oOL = Nothing
End Sub
 
G

Guest

I read your post about Macros and tried it. I figured out how to paste = it into Visual Basic, got a shortcut created, then ran it. The problem I encountered was when I did a right click to save the picture. I would = get an error message, stating the item could not be found. So, I deleted the = macro and started over. I have not been able to delete the shortcut, and now = when I attempt to run the macro I get a message stating that the macro is disabled. Any suggestions? Had I know Outlook was going to be this aggravating I would have stayed with Outlook Express

Thanks
Charle


----- P_Lee wrote: ----

Try this macro I put together. It's even better than the preview pane because you ca
select multiple emails & view all the pictures at once

It only displays images & will not run executables or other types of attachments.

It initially scales large images to the width of the browser popup, but you can click o
the image to expand to full size. Hover over the image to see the original size/scale
size. See comments in the macro for more details

Put a shortcut on your toolbar for easy access

I'm constantly tweaking it, so please try it out & give me some feedback



Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long

Sub view_attachments(
'**************************************************************
' ver. 1/24/0
' - Select one or multiple emails
' - Files are copied to Temporary Internet folders
' - Only image files are displayed (no others are executed)
' - Right-click images to 'Save As', 'Email', etc
' - Hover over image to see original size & scaled size
' - Clicking each image will toggle between original siz
' & browser width (unless original size is smaller)
' - To scale all images to browser width, resize the browser
' right-click on background & choose 'Refresh'
'**************************************************************
On Error Resume Nex

Dim oOL As Outlook.Applicatio
Dim oSelection As Outlook.Selectio

Set oOL = New Outlook.Applicatio
Set oSelection = oOL.ActiveExplorer.Selectio
Set objShell = CreateObject("WScript.Shell"

vTempInt = objShell.RegRead("HKCU\software\microsoft\"
& "Windows\CurrentVersion\Explorer\Shell Folders\Cache"
vPath = vTempInt & "\

vHTMLBody = "<HTML><title>View Email Attachments</title>"
& "<body bgcolor=#000000><font face=Arial size=3 color=#FFFFFF>
vEmailNum =
For Each obj In oSelectio
vEmailNum = vEmailNum + 1
vSubject = "Attachments from: <b>"
& obj.Subject & "</b><br>
vHTMLBody = vHTMLBody & vSubjec
vAttachNum = vEmailNu
For Each Attachment In obj.Attachment
vAttachNum = vAttachNum +
vImg = "document.img" & vAttachNu
vWidth = "document.body.clientWidth - 20
Attachment.SaveAsFile (vPath & Attachment.FileName
vHTMLBody = vHTMLBody
& "<b>" & Attachment.FileName & "</b><br>"
& "<a href=""javascript:fWidth(" & vImg & ");"">"
& "<center><IMG name=""img" & vAttachNum & """ alt="""" hspace=0 "
& "src=""" & vPath & Attachment.FileName & """ align=baseline "
& "border=0 " & "onload=""vOrig=String(" & vImg & ".width)"
& "+ ' x ' + String(" & vImg & ".height);vRatio=(" & vWidth
& ")/" & vImg & ".width;" & vImg & ".alt='Original Size: ' + "
& "vOrig + '\n Scaled Size: ';if(" & vImg & ".width <="
& vWidth & "){" & vImg & ".alt=" & vImg & ".alt + vOrig;}"
& "else{" & vImg & ".alt=" & vImg & ".alt + String(" & vWidth
& ")+ ' x ' + String(Math.round(vRatio *" & vImg & ".height));}"
& "if (" & vImg & ".width >" & vWidth & "){" & vImg & ".width = " _
& vWidth & ";}""></center></a><br><br><br>"
Next
vHTMLBody = vHTMLBody & "</a><br><br>"
Next

If Not vImg = "" Then
vHTMLBody = vHTMLBody & "<script>function fWidth (vImg){" _
& "vCRLF=vImg.alt.indexOf('\n');vOrgWidth=vImg.alt.substring" _
& "(vImg.alt.indexOf(':')+2, vImg.alt.indexOf('x')-1);" _
& "vRatio=vOrgWidth/vImg.width;if(vImg.width == " & vWidth _
& "|| vOrgWidth <= " & vWidth & "){vImg.width=vOrgWidth;" _
& "vImg.alt=vImg.alt.substring(0,vCRLF) + '\n Scaled Size: '" _
& "+ vImg.alt.substring(vImg.alt.indexOf(':')+2,vCRLF);}else" _
& "{vImg.width=" & vWidth & ";vImg.alt=vImg.alt.substring(0,vCRLF)" _
& "+ '\n Scaled Size: ' + String(" & vWidth & ")+ ' x ' + " _
& "String(Math.round(vRatio * vImg.height));}}</script>"
End If

vHTMLBody = vHTMLBody & "</font></body></html>"

Set ie = CreateObject("internetexplorer.application")
With ie
.toolbar = 0
.menubar = 0
.statusbar = 0
.Left = 100
.Top = 50
.Height = 600
.Width = 800
.navigate "about:blank"
.document.Open
.document.Write vHTMLBody
.document.Close
.Visible = True
End With

vTimer = 0
Do Until ie.readyState = 4 Or vTimer = 10000
Sleep 10
vTimer = vTimer + 10
Loop

Set ie = Nothing

Set objShell = Nothing
Set oSelection = Nothing
Set oOL = Nothing
End Sub
 

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