首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

DLL(C++)怎么操作VB中WebBrowser对象

2012-02-05 
DLL(C++)如何操作VB中WebBrowser对象?在MFC中由于WebBrowser实现了IWebBrowser2接口,我可以通过get_Docume

DLL(C++)如何操作VB中WebBrowser对象?
在MFC中由于WebBrowser实现了IWebBrowser2接口,我可以通过get_Document方法获得文档中的IDispatch的指针。

LPDISPATCH CWebBrowser2::GetDocument()
{
LPDISPATCH result;
InvokeHelper(0xcb, DISPATCH_PROPERTYGET, VT_DISPATCH, (void*)&result, NULL);
return result;
}

很明显VB是面向对象的 WebBrowser1.Document 并不能获得 IDispatch指针。

有什么办法可以让我在DLL中获取WebBrowser1文档的LPDISPATCH ?或者说如何操作WebBrowser对象?

[解决办法]
LPDISPATCH的定义是这样的。
IDispatch* LPDISPATCH; //指针类型
而IDispatch是个类,就是说LPDISPATCH是个类的指针类型.
在VB中可以这样取得类的指针地址:

VB code
   Dim ClassAddress As Long   '定义类地址   CopyMemory ClassAddress,WebBrowser1,4      '这时,ClassAddress 就是WebBrowser1对象的类指针地址   '如果是在VB中使用,可以直接用CopyMemory把类型复制回来使用,如:   Dim WebDoc As WebBrowser   CopyMemory WebDoc, ClassAddress, 4   WebDoc.Navigate "http://www.baidu.com"   '如果从VB中传递给VC使用,要看你的接口函数是如何做的,通常按值传递即可,   '如果失败,也可以尝试一下按地址传递,如:   YourVCFunction ByVal ClassAddress 

热点排行