关于IDispatch的Invoke问题

chrong 2003-05-14 05:56:27
有如下程序,
STDMETHODIMP TMonitorImpl::SaveDoc(LPUNKNOWN doc)
{
//
HRESULT hresult;
IDispatch FAR* pdisp = (IDispatch FAR*)NULL;

DISPID dispid;
wchar_t *szMember = L"location";

VARIANT FAR* pVarResult;
DISPPARAMS dispparamsNoArgs = {NULL, NULL, 0, 0};

hresult = doc->QueryInterface(IID_IDispatch, (void FAR* FAR*)&pdisp);
if(hresult == S_OK){
sm("ok!!!");
}
hresult = pdisp->GetIDsOfNames(
IID_NULL,
&szMember,
1,
LOCALE_SYSTEM_DEFAULT,
&dispid);
if(hresult == S_OK){
sm("ok!!!");
}
//try{
hresult = pdisp->Invoke(
dispid,
IID_NULL,
LOCALE_SYSTEM_DEFAULT,
DISPATCH_PROPERTYGET,
&dispparamsNoArgs,
pVarResult,
NULL,
NULL);
}
doc为vbscript传入的ie的页面文档
前两个函数都能正确执行并得到ok结果(sm即showmessage)
但是执行到Invoke的时候就会出现致命错误导致IE关闭
有哪位大虾对这个有研究吗?能否指教一下
...全文
132 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

1,222

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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