请问如何在WebBrowser控件初始化的时候指定我定义的IDocHostShowUI回调接口?
我在MFC的对话框程序中插入了一个WebBrowser控件,
为了向控件传递自己实现的IDocHostShowUI接口,
我自己实现了m_OleClientSite::QueryInterface方法,
并且让它能够得到我自己实现的IDocHostShowUI接口。
我在OnDocumentComplete()中调用
{
CComQIPtr<IWebBrowser2> piWebBrowser( pDisp ) ;
CComQIPtr<IOleObject> piOleObj(piWebBrowser) ;
piOleObj->SetClientSite( &m_OleClientSite) ;
RECT rcClient ;
this->GetClientRect(&rcClient);
piOleObj->DoVerb( OLEIVERB_INPLACEACTIVATE,
NULL ,
&m_OleClientSite ,
0 ,
this->GetSafeHwnd() ,
&rcClient );
// Register container to intercept WebBrowser events
DWORD dwCookie = 0 ;
AtlAdvise(piWebBrowser, &m_OleClientSite, DIID_DWebBrowserEvents2, &dwCookie);
}
跟踪发现,m_OleClientSite::QueryInterface()已经被调用,
可是控件根本没有查询我提供的IDocHostShowUI接口。
我怀疑应该在控件初始化以前做上面的操作,可是在OnInitDialog
中根本无法得到IWebBrowser2接口,
请问我应该如何向控件指定我的回调接口?
谢谢。