PC Review


Reply
Thread Tools Rate Thread

Chaning MessageClass with Preview Pane

 
 
dmjames
Guest
Posts: n/a
 
      22nd May 2009
I'm trying to change MessageClass when an item is opened so as to open a
custom form. My code works fine when the Preview Pane is closed; it doesn't
work when the pane is open. I've tried changing the form, clearing forms
cache, etc.; I'm sure it's not a form problem. I've tested and tried it many
times -- the behavior is that it works when Preview Pane is closed, and opens
the default IPM.Note when the Preview Pane is open. (If anyone is curious,
my ultimate goal is to provide a preview tab where all text in the message is
changed to an easy-to-read font, but not change the message permanently.)

Here's my code:

'CONNECTION CODE

Option Explicit

Dim WithEvents objInsps As Outlook.Inspectors

Private Sub AddinInstance_OnConnection(ByVal Application As Object, ByVal
ConnectMode As AddInDesignerObjects.ext_ConnectMode, ByVal AddInInst As
Object, custom() As Variant)
Set objInsps = Application.Inspectors
AddInInst.object = Me
End Sub

Private Sub AddinInstance_OnDisconnection(ByVal RemoveMode As
AddInDesignerObjects.ext_DisconnectMode, custom() As Variant)
Set objInsps = Nothing
End Sub


Private Sub objInsps_NewInspector(ByVal currInsp As Inspector)
Dim ci As New clsInspectors
If currInsp.CurrentItem.Class = olMail Then
If currInsp.CurrentItem.MessageClass = "IPM.Note" Or
currInsp.CurrentItem.MessageClass = "IPM.Note.Preview" Then
If currInsp.CurrentItem.EntryID <> vbNullString Then 'Sent
Set ci = InspColl.Add(currInsp,
currInsp.CurrentItem.entryid) 'collection of clsInspectors
ci.IID = currInsp.CurrentItem.EntryID
ci.FirstActivation = True
End If
End If
End If
End Sub

'CLSINSPECTORS

Option Explicit

Public WithEvents currInsp As Inspector
Public IID As String
Public FirstActivation As Boolean

Private Sub currInsp_Activate()
If FirstActivation Then
currInsp.CurrentItem.MessageClass = "IPM.Note.Preview"
currInsp.CurrentItem.Save
'The custom form contains a preview control on a tab called Preview,
which I populate here
'If the preview pane of the explorer from which I opened the item is
visible, currInsp.ModifiedFormPages("Preview") returns Nothing
FirstActivation = False
End If
End Sub

Private Sub currInsp_Close()
currInsp.CurrentItem.MessageClass = "IPM.Note"
currInsp.CurrentItem.Save
InspColl.Remove IID
End Sub

Thanks,

Dave James
 
Reply With Quote
 
 
 
 
dmjames
Guest
Posts: n/a
 
      22nd May 2009
Forgot to mention, OL2003 SP3.

"dmjames" wrote:

> I'm trying to change MessageClass when an item is opened so as to open a
> custom form. My code works fine when the Preview Pane is closed; it doesn't
> work when the pane is open. I've tried changing the form, clearing forms
> cache, etc.; I'm sure it's not a form problem. I've tested and tried it many
> times -- the behavior is that it works when Preview Pane is closed, and opens
> the default IPM.Note when the Preview Pane is open. (If anyone is curious,
> my ultimate goal is to provide a preview tab where all text in the message is
> changed to an easy-to-read font, but not change the message permanently.)
>
> Here's my code:
>
> 'CONNECTION CODE
>
> Option Explicit
>
> Dim WithEvents objInsps As Outlook.Inspectors
>
> Private Sub AddinInstance_OnConnection(ByVal Application As Object, ByVal
> ConnectMode As AddInDesignerObjects.ext_ConnectMode, ByVal AddInInst As
> Object, custom() As Variant)
> Set objInsps = Application.Inspectors
> AddInInst.object = Me
> End Sub
>
> Private Sub AddinInstance_OnDisconnection(ByVal RemoveMode As
> AddInDesignerObjects.ext_DisconnectMode, custom() As Variant)
> Set objInsps = Nothing
> End Sub
>
>
> Private Sub objInsps_NewInspector(ByVal currInsp As Inspector)
> Dim ci As New clsInspectors
> If currInsp.CurrentItem.Class = olMail Then
> If currInsp.CurrentItem.MessageClass = "IPM.Note" Or
> currInsp.CurrentItem.MessageClass = "IPM.Note.Preview" Then
> If currInsp.CurrentItem.EntryID <> vbNullString Then 'Sent
> Set ci = InspColl.Add(currInsp,
> currInsp.CurrentItem.entryid) 'collection of clsInspectors
> ci.IID = currInsp.CurrentItem.EntryID
> ci.FirstActivation = True
> End If
> End If
> End If
> End Sub
>
> 'CLSINSPECTORS
>
> Option Explicit
>
> Public WithEvents currInsp As Inspector
> Public IID As String
> Public FirstActivation As Boolean
>
> Private Sub currInsp_Activate()
> If FirstActivation Then
> currInsp.CurrentItem.MessageClass = "IPM.Note.Preview"
> currInsp.CurrentItem.Save
> 'The custom form contains a preview control on a tab called Preview,
> which I populate here
> 'If the preview pane of the explorer from which I opened the item is
> visible, currInsp.ModifiedFormPages("Preview") returns Nothing
> FirstActivation = False
> End If
> End Sub
>
> Private Sub currInsp_Close()
> currInsp.CurrentItem.MessageClass = "IPM.Note"
> currInsp.CurrentItem.Save
> InspColl.Remove IID
> End Sub
>
> Thanks,
>
> Dave James

 
Reply With Quote
 
Ken Slovak - [MVP - Outlook]
Guest
Posts: n/a
 
      26th May 2009
NewInspector() won't help you at all for the preview pane, that's for items
that are being opened, not previewed. You need to handle
Explorer.SelectionChange() for the ActiveExplorer to know what is now
selected and in the preview pane. You would work with the Selection
collection.

Previewing custom forms in the preview pane won't work though, they are
blocked from previewing. You could change the MessageClass and save the item
to preserve the change, but for a custom form you'd just end up with the
preview pane showing the "can't show this message" warning.

--
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


"dmjames" <(E-Mail Removed)> wrote in message
news:37FEE281-4404-42C5-8CC1-(E-Mail Removed)...
> Forgot to mention, OL2003 SP3.
>
> "dmjames" wrote:
>
>> I'm trying to change MessageClass when an item is opened so as to open a
>> custom form. My code works fine when the Preview Pane is closed; it
>> doesn't
>> work when the pane is open. I've tried changing the form, clearing forms
>> cache, etc.; I'm sure it's not a form problem. I've tested and tried it
>> many
>> times -- the behavior is that it works when Preview Pane is closed, and
>> opens
>> the default IPM.Note when the Preview Pane is open. (If anyone is
>> curious,
>> my ultimate goal is to provide a preview tab where all text in the
>> message is
>> changed to an easy-to-read font, but not change the message permanently.)
>>
>> Here's my code:
>>
>> 'CONNECTION CODE
>>
>> Option Explicit
>>
>> Dim WithEvents objInsps As Outlook.Inspectors
>>
>> Private Sub AddinInstance_OnConnection(ByVal Application As Object, ByVal
>> ConnectMode As AddInDesignerObjects.ext_ConnectMode, ByVal AddInInst As
>> Object, custom() As Variant)
>> Set objInsps = Application.Inspectors
>> AddInInst.object = Me
>> End Sub
>>
>> Private Sub AddinInstance_OnDisconnection(ByVal RemoveMode As
>> AddInDesignerObjects.ext_DisconnectMode, custom() As Variant)
>> Set objInsps = Nothing
>> End Sub
>>
>>
>> Private Sub objInsps_NewInspector(ByVal currInsp As Inspector)
>> Dim ci As New clsInspectors
>> If currInsp.CurrentItem.Class = olMail Then
>> If currInsp.CurrentItem.MessageClass = "IPM.Note" Or
>> currInsp.CurrentItem.MessageClass = "IPM.Note.Preview" Then
>> If currInsp.CurrentItem.EntryID <> vbNullString Then 'Sent
>> Set ci = InspColl.Add(currInsp,
>> currInsp.CurrentItem.entryid) 'collection of clsInspectors
>> ci.IID = currInsp.CurrentItem.EntryID
>> ci.FirstActivation = True
>> End If
>> End If
>> End If
>> End Sub
>>
>> 'CLSINSPECTORS
>>
>> Option Explicit
>>
>> Public WithEvents currInsp As Inspector
>> Public IID As String
>> Public FirstActivation As Boolean
>>
>> Private Sub currInsp_Activate()
>> If FirstActivation Then
>> currInsp.CurrentItem.MessageClass = "IPM.Note.Preview"
>> currInsp.CurrentItem.Save
>> 'The custom form contains a preview control on a tab called
>> Preview,
>> which I populate here
>> 'If the preview pane of the explorer from which I opened the item
>> is
>> visible, currInsp.ModifiedFormPages("Preview") returns Nothing
>> FirstActivation = False
>> End If
>> End Sub
>>
>> Private Sub currInsp_Close()
>> currInsp.CurrentItem.MessageClass = "IPM.Note"
>> currInsp.CurrentItem.Save
>> InspColl.Remove IID
>> End Sub
>>
>> Thanks,
>>
>> Dave James


 
Reply With Quote
 
dmjames
Guest
Posts: n/a
 
      27th May 2009
Thanks for the info, but maybe I wasn't completely clear. What I want to do
is change MessageClass when an item is opened and change it back when it's
closed. I don't care about the Preview Pane, except that when it's open it
appears to "lock" the item in some way and prevent the custom form from being
used. If I close the Preview Pane my code works as expected, but it should
work whether or not the Preview Pane is open.

Given this, is trapping SelectionChange() still the answer or is there
another way to "unlock" the item being opened?

Thanks again,

Dave James

"Ken Slovak - [MVP - Outlook]" wrote:

> NewInspector() won't help you at all for the preview pane, that's for items
> that are being opened, not previewed. You need to handle
> Explorer.SelectionChange() for the ActiveExplorer to know what is now
> selected and in the preview pane. You would work with the Selection
> collection.
>
> Previewing custom forms in the preview pane won't work though, they are
> blocked from previewing. You could change the MessageClass and save the item
> to preserve the change, but for a custom form you'd just end up with the
> preview pane showing the "can't show this message" warning.
>
> --
> 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
>
>
> "dmjames" <(E-Mail Removed)> wrote in message
> news:37FEE281-4404-42C5-8CC1-(E-Mail Removed)...
> > Forgot to mention, OL2003 SP3.
> >
> > "dmjames" wrote:
> >
> >> I'm trying to change MessageClass when an item is opened so as to open a
> >> custom form. My code works fine when the Preview Pane is closed; it
> >> doesn't
> >> work when the pane is open. I've tried changing the form, clearing forms
> >> cache, etc.; I'm sure it's not a form problem. I've tested and tried it
> >> many
> >> times -- the behavior is that it works when Preview Pane is closed, and
> >> opens
> >> the default IPM.Note when the Preview Pane is open. (If anyone is
> >> curious,
> >> my ultimate goal is to provide a preview tab where all text in the
> >> message is
> >> changed to an easy-to-read font, but not change the message permanently.)
> >>
> >> Here's my code:
> >>
> >> 'CONNECTION CODE
> >>
> >> Option Explicit
> >>
> >> Dim WithEvents objInsps As Outlook.Inspectors
> >>
> >> Private Sub AddinInstance_OnConnection(ByVal Application As Object, ByVal
> >> ConnectMode As AddInDesignerObjects.ext_ConnectMode, ByVal AddInInst As
> >> Object, custom() As Variant)
> >> Set objInsps = Application.Inspectors
> >> AddInInst.object = Me
> >> End Sub
> >>
> >> Private Sub AddinInstance_OnDisconnection(ByVal RemoveMode As
> >> AddInDesignerObjects.ext_DisconnectMode, custom() As Variant)
> >> Set objInsps = Nothing
> >> End Sub
> >>
> >>
> >> Private Sub objInsps_NewInspector(ByVal currInsp As Inspector)
> >> Dim ci As New clsInspectors
> >> If currInsp.CurrentItem.Class = olMail Then
> >> If currInsp.CurrentItem.MessageClass = "IPM.Note" Or
> >> currInsp.CurrentItem.MessageClass = "IPM.Note.Preview" Then
> >> If currInsp.CurrentItem.EntryID <> vbNullString Then 'Sent
> >> Set ci = InspColl.Add(currInsp,
> >> currInsp.CurrentItem.entryid) 'collection of clsInspectors
> >> ci.IID = currInsp.CurrentItem.EntryID
> >> ci.FirstActivation = True
> >> End If
> >> End If
> >> End If
> >> End Sub
> >>
> >> 'CLSINSPECTORS
> >>
> >> Option Explicit
> >>
> >> Public WithEvents currInsp As Inspector
> >> Public IID As String
> >> Public FirstActivation As Boolean
> >>
> >> Private Sub currInsp_Activate()
> >> If FirstActivation Then
> >> currInsp.CurrentItem.MessageClass = "IPM.Note.Preview"
> >> currInsp.CurrentItem.Save
> >> 'The custom form contains a preview control on a tab called
> >> Preview,
> >> which I populate here
> >> 'If the preview pane of the explorer from which I opened the item
> >> is
> >> visible, currInsp.ModifiedFormPages("Preview") returns Nothing
> >> FirstActivation = False
> >> End If
> >> End Sub
> >>
> >> Private Sub currInsp_Close()
> >> currInsp.CurrentItem.MessageClass = "IPM.Note"
> >> currInsp.CurrentItem.Save
> >> InspColl.Remove IID
> >> End Sub
> >>
> >> Thanks,
> >>
> >> Dave James

>
>

 
Reply With Quote
 
Ken Slovak - [MVP - Outlook]
Guest
Posts: n/a
 
      27th May 2009
I don't know about the item being locked, I've never run into that. But
SelectionChange() is still the only way to know when a selection is changed
and to what.

--
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


"dmjames" <(E-Mail Removed)> wrote in message
news:B4575B01-3BC8-4AAE-AC2D-(E-Mail Removed)...
> Thanks for the info, but maybe I wasn't completely clear. What I want to
> do
> is change MessageClass when an item is opened and change it back when it's
> closed. I don't care about the Preview Pane, except that when it's open
> it
> appears to "lock" the item in some way and prevent the custom form from
> being
> used. If I close the Preview Pane my code works as expected, but it
> should
> work whether or not the Preview Pane is open.
>
> Given this, is trapping SelectionChange() still the answer or is there
> another way to "unlock" the item being opened?
>
> Thanks again,
>
> Dave James


 
Reply With Quote
 
 
 
Reply

Thread Tools
Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Files not showing in preview pane but show in details pane =?Utf-8?B?bWFya3VzYWxsZW4=?= Windows Vista File Management 0 28th Mar 2007 02:41 AM
Email shows in preview pane but not in reading pane =?Utf-8?B?QWRtIEhhc2xleQ==?= Microsoft Outlook Discussion 3 18th Jul 2006 07:37 PM
Preview Pane (Reading pane in Outlook 2003) Ryan Langton Microsoft Outlook Discussion 2 30th Dec 2005 07:15 PM
Re: Outlook 2003 Reading Pane (preview pane) Roady [MVP] Microsoft Outlook Discussion 1 3rd Jun 2004 11:26 PM
Newbie: How to stop message pane scrolling with preview pane Ricky Microsoft Outlook Discussion 3 12th Aug 2003 02:17 AM


Features
 

Advertising
 

Newsgroups
 


All times are GMT +1. The time now is 05:50 PM.