描述:
我想做一个监视网页提交的东西。
STDMETHODIMP CWinSink::Invoke(DISPID dispIdMember,
REFIID riid,
LCID lcid,
WORD wFlags,
DISPPARAMS __RPC_FAR *pDispParams,
VARIANT __RPC_FAR *pVarResult,
EXCEPINFO __RPC_FAR *pExcepInfo,
UINT __RPC_FAR *puArgErr)
{
if (!pVarResult)
{
return E_POINTER;
}
switch(dispIdMember)
{
case DISPID_HTMLFORMELEMENTEVENTS2_ONSUBMIT:
{
cout << "提交表单!" << endl;
}
break;
我已经能够监视提交事件,但是我想列举当前表单的元素,只知道在pVarResult这个参数上下工夫,哪位大哥举个例子啊?分不够可以开马甲再加
解决方案1:
mark
解决方案2: VARIANTARG v[2]; //假设有两个参数的函数
v[0].vt = VT_I4; v[0].lVal = 2; // 第二个参数,整数2
v[1].vt = VT_I4; v[1].lVal = 1; // 第一个参数,整数1
DISPPARAMS dispParams = { v, NULL, 2, 0 }; // 把参数包装到这个结构中
VARIANT vResult; // 函数返回的计算结果
hr = pDisp->Invoke( // 调用函数
dispID,
IID_NULL,
LOCALE_SYSTEM_DEFAULT,
DISPATCH_METHOD,
&dispParams,
&vResult,
NULL,
NULL);
你可以查询msdn中的函数,有多少个参数,在这个参数中就会体现出来,只是顺序倒过来了。