How to compare two inspector objects?
I try to use settimer(),but it can't work either. I find that the __vfptr
member stay same all the time. Can i use it(i can't get it)? Would you like
to give me other advice? How to check it in a one thread? 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?
|