DLL(C++)如何操作VB中WebBrowser对象?

zesters1 2010-02-20 09:39:43
在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对象?
...全文
176 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zesters1 2010-02-21
  • 打赏
  • 举报
回复
二楼真厉害 结贴了
zesters1 2010-02-20
  • 打赏
  • 举报
回复
thx 马上试试 : )
现在还是人类 2010-02-20
  • 打赏
  • 举报
回复
LPDISPATCH的定义是这样的。
IDispatch* LPDISPATCH; //指针类型
而IDispatch是个类,就是说LPDISPATCH是个类的指针类型.
在VB中可以这样取得类的指针地址:

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

1,502

社区成员

发帖
与我相关
我的任务
社区描述
VB 网络编程
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧