View Single Post
  #3  
Old September 5th 07, 12:32 PM posted to microsoft.public.outlook.program_addins
gernot
external usenet poster
 
Posts: 4
Default How to uniquely identify explorer / inspector objects in Outlook 2007

How does C# implement the == operator? It must be more than just
comparing COM objects.
The workaround with FindWindow() is alright ;-)

Thanks, Gernot


On Sep 4, 5:36 pm, "Ken Slovak - [MVP - Outlook]"
wrote:
Outlook 2007 allows you to test for equality of two Inspector or Explorer
objects using the C# == operator or the VB Is operator. Earlier versions of
Outlook don't allow that.

What I usually do is to test for the window.Caption and also for the window
rectangle dimensions and coordinates. I use the Explorer (or Inspector) Top,
Left, Height and Width properties compared to the window I get using
FindWindow (a Win32 API call). If it's the foreground window you're working
with you can use GetForegroundWindow instead of using FindWindow.

--
Ken Slovak
[MVP - Outlook]http://www.slovaktech.com
Author: Professional Programming Outlook 2007
Reminder Manager, Extended Reminders, Attachment Optionshttp://www.slovaktech.com/products.htm

"gernot" wrote in message

ups.com...



I am always getting different interface pointers for same explorer
objects. The same happens for inspector objects. What can a do to
unquely identify these objects?


Scenario:


1. In the NewInspector handler I save the _Inspector pointer.
2. In an event handler from a control in this inspector I use
IRibbonControl::get_Context() to obtain the corresponding _Inspector
pointer.


These pointers are never the same (comparing IUnknown pointers). These
COM objects are not the same!


In the case of inspectors I get away identifying them by its creation
date.
What can I do to identify explorers? Is there any Outlook method to
compare these objects?


Thanks, Gernot- Hide quoted text -


- Show quoted text -



Ads