View Single Post
  #5  
Old June 9th 06, 08:46 AM posted to microsoft.public.developer.outlook.addins,microsoft.public.outlook.program_addins,microsoft.public.platformsdk.mapi,microsoft.public.platformsdk.messaging
Scott Quinn
external usenet poster
 
Posts: 3
Default Outlook 2007: Problem with SinkEvents on first explorer

Good point Dmitry and yeah they were exception fodder too.

Anyway I have a solution.....

While the pointer from ActiveExplorer() appears to be a valid pointer and
some methods seem work (AddRef) for the most part it's stuffed.

If I get a pointer from the explorers collection all works fine.

So there may be a bug in OL2007 with the object model and ActiveExplorer()

Thanks,

Scott Quinn

"Dmitry Streblechenko" wrote in message
...
Hmmm... Does QI fail for other interfaces, such as IDispatch or

IOleWindow?

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

"Scott Quinn" wrote in message
...
Hi Dmitry,

No .... the pointer is not NULL.

I get the pointer from the app by calling ActiveExplorer (and I get the
same
pointer getting the first item from the explorers collection).

The call itself is initially made in raw_OnStartupComplete (while at the
same time I successfully sink events on the explorers and inspectors
collections).

The application continues to try sink events on the main explorer itself
later (called by a timer).... but still without any luck..

Scott

"Dmitry Streblechenko" wrote in message
...
An obvious question: are you sure m_pExplorer is not NULL?
When do you make that call?

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

"news.microsoft.com" wrote in message
...
Hi,

I'm having trouble sinking events on the initial Outlook explorer with
the
OL 2007 Beta.

I get an exception (access violation) on this queryinterface all in my
explorer event handler when I try to sink events.

hr = m_pExplorer-QueryInterface(IID_IConnectionPointContainer,

(void
**)&pCPC);

m_pExplorer is an Outlook::_ExplorerPtr

Here's the code in context .....
void CExplorerHandler::SinkEvents()
{
HRESULT hr;

IConnectionPointContainer* pCPC;
hr = m_pExplorer-QueryInterface(IID_IConnectionPointContainer,

(void
**)&pCPC);
if (SUCCEEDED(hr))
{
hr =

pCPC-FindConnectionPoint(__uuidof(Outlook::ExplorerEve nts),
&m_pConnection);
if (SUCCEEDED(hr))
{
AddRef();

hr = m_pConnection-Advise(static_castIDispatch*(this),
&m_dwCookie);
}

----- SNIP ----
Now this used to work just fine on OL2003 (and OLXP and OL2000) and

also
works on any additional explorers opened in Outlook 2007.

It just seems to be the 1st one that causes the problem.

Any ideas ? ....... A security issue ? A Microsoft bug ? Something

about
the
timing of the Outlook startup has changed ?

Regards,

Scott Quinn








Ads