2/12/2004

CDHtmlDialog&NewWindow2

CDHtmlDialog&NewWindow2

Class ID Default Interface Default Event Interface
----------------- ----------------- -----------------------
CLSID_WebBrowser IWebBrowser2 DWebBrowserEvents2
CLSID_WebBrowser_V1 IWebBrowser DWebBrowserEvets

CDHtmlDialog捕获了DWebBrowserEvets事件,并将其转发到虚函数,而没有捕获DWebBrowserEvents2;所以在按Ctrl+N触发DWebBrowserEvents2事件的时候,执行默认操作——打开新的IE窗口。这可能不是你预料之中的行为。

解决的方法是自己写一个EventSink,你可以不必将其转发到虚函数。
参见微软知识库文章181845
HOWTO: Create a Sink Interface in MFC-Based COM Client[http://support.microsoft.com/?id=181845]

No comments: