关于IDispatch的Invoke问题
有如下程序,
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关闭
有哪位大虾对这个有研究吗?能否指教一下