View Single Post
  #4  
Old January 6th 08, 03:45 AM posted to microsoft.public.outlook.program_addins
xwjbs
external usenet poster
 
Posts: 7
Default How to compare two inspector objects?

yes,the code here is put in a single thread,not in the main thread. And the
application object is a varaible which comes from the main thread. I use the
function sleep() so it works just like a timer. As you know ,there is no
newinspector event can be fired in ol2000! I want to use this to find the
newinspector,and then put it into a collection. If i can't comare two
objects, it will replicate inspector. A function that processes message
will not be seemed another thread? And it will work? I try it ! Thank you!


"Jeff" wrote:

Hi

As a quick thought, are your Inspector objects marshalled to different
threads / appartments? If so, you'll not be able to check the addresses of
the functions / objects.



"xwjbs" wrote in message
...
I want to compare two objects. The objects type is MS Outlook inspectors.
Here is the code.

struct Outlook::_Inspector* activeIn;
m_spApp-ActiveInspector(&activeIn);
if(NULL == activeIn)
continue;
CComPtrIUnknown activeUnk;
activeIn-QueryInterface(IID_IUnknown, (void**)&activeUnk);


struct Outlook::_Inspector* inspector;
CComPtrIUnknown spInspectUnk;
//IUnknown* spInspectUnk;

///*
for(long i=1;i=nNowNum;i++)
{
inspectors-Item(CComVariant(i),&inspector);

if(NULL == inspector || 0xcccccccc == (long)inspector)
continue;

inspector-IsWordMail(&bWordMail);
if(!bWordMail)
continue;

inspector-QueryInterface(IID_IUnknown, (void**)&spInspectUnk);

if(spInspectUnk.IsEqualObject(activeUnk))
{
//dosomething
//how to come in this block
}
}

I set a timer to check inspectors collection! But every time the value of
spInspectUnk changes. Would you like to tell me how to compare them?




Ads