Dab*_*ler 5 c++ windows com winapi webbrowser-control
我有一个纯粹的Win32应用程序(没有MFC等),我想在窗口中添加一个Web浏览器控件.我知道COM的基础知识,可以使用浏览器创建COM对象
hr = CoCreateInstance(
CLSID_WebBrowser,
NULL,
CLSCTX_INPROC,
IID_IWebBrowser2,
(void**) &pWebBrowser);
Run Code Online (Sandbox Code Playgroud)
但是,显然需要调用SetClientSite,传递IOleClientSite*.我如何获得这样的界面?这个例子实现了自己的浏览器类,它通过派生和实现它来提供接口(这里).我尝试沿着那条路走,但为了实例化浏览器类,我必须注册它(不是吗?).这看起来非常复杂 - 我只想使用现有的COM对象,而不是实现和注册我自己的COM对象.我错过了什么?
假设我将我自己的ClientSite类作为我的应用程序的一部分实现,是否可以不注册它,只是通过调用实例化它new ClientSite(然后将接口提取为使用QueryInterface)?这会起作用,还是必须打电话CoCreateInstance?
CodeGuru上有一个示例, CodeProject上有另一个示例,其中包含托管纯 C 语言实现的 Web 浏览器控件的最简单实现。您必须实现自己的IOleClientSite,但它是更容易实现的类之一。是的,必须调用CoCreateInstance或OleCreate创建 Web 浏览器控件的实例。
http://www.codeproject.com/Articles/3365/Embed-an-HTML-control-in-your-own-window-using-pla
| 归档时间: |
|
| 查看次数: |
5151 次 |
| 最近记录: |