我有一个纯Win32应用程序(无MFC等),我想在窗口中添加一个Web浏览器控件。我知道COM的基础知识,并可以使用重新使用Web浏览器控件
hr = CoCreateInstance(
CLSID_WebBrowser,
NULL,
CLSCTX_INPROC,
IID_IWebBrowser2,
(void**) &pWebBrowser);
然而,显然一个需要调用SetClientSite浏览器创建一个COM对象,传递一个的IOleClientSite *。我如何获得这样的界面? This example实现了自己的浏览器类,它通过派生它并实现它来提供接口(here)。我试图沿着这条路走,但为了实例化浏览器类,我必须注册它(不是?)。这看起来非常复杂 - 我只想使用现有的COM对象,而不是实现并注册我自己的。我错过了什么?
假设我将自己的ClientSite类实现为应用程序的一部分,是否可以不注册它,并通过调用new ClientSite
(然后使用QueryInterface
获取接口)来实例化它?这项工作是否可行,还是必须致电CoCreateInstance
?
你没有获得接口,实现它,或者找到实现,如MFC或ATL接口其他一些ActiveX容器。 –