在windows下编译后的webkit dll使用的是com组件技术,所以使用webkit dll中的api传统的方法不行,必须使用com组件技术,如下:
/*使用全球唯一标识符(GUID)*/
typedef _com_ptr_t<_com_IIID<IWebView,&__uuidof(IWebView)>> IWebViewPtr;
IWebViewPtr gWebView;
int main()
{
IWebView *px = NULL;
/*webkit使用WebKitCreateInstance函数对类厂技术及CreateInstance函数进行了封装, 对CoCreateInstance技术进行了升级,CoCreateInstance函数具有不灵活性, 他没有给客户提供一种能够控制组件穿件过程的方法*/
HRESULThr = WebKitCreateInstance(CLSID_WebView, 0, IID_IWebView, (void **)&px); //CLSID_WebView为组件GUID、IID_IWebView为接口的GUID
if (FAILED(hr))
return-1;
IWebView*px2 = NULL;
/*测试:使用客户已经拥有的接口再次获得已经拥有的接口*/
hr= px->QueryInterface(IID_IWebView, (void **)&px2);
if (px != px2)
{
cout<< "!=" << endl;
}
else
{
webkit研究日记3:webkit api使用总结(如何打开webkit组件)
最新推荐文章于 2020-12-15 07:44:48 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)