有如下html文件内容:
<html><body><form>
    <input type=button value='button' onclick='this.value="button_edit" />
</form></body></html>现有以下代码片断:
    CComPtr<IHTMLElement> spInputElement;
    CComVariant vOnclick;
    spInputElement->get_onclick(&vOnclick);
    IDispatch* spdisp=vOnclick.pdispVal;
问题:
    如何利用spdisp->Invoke执行此onclick函数
    在下先表示感谢啦!!!

解决方案 »

  1.   

    我利用spdisp->Invoke(0,IID_NULL,0,DISPATCH_METHOD,0,0,0,0)不能执行此onclick函数,
    请各位大哥帮帮忙,在下深表感谢!!!
      

  2.   

    <input type=button value='button' onclick='this.value="button_edit" />
    这样子写DHTML有问题吧?这个问题不会解决,帮你顶~~~
      

  3.   

    说明:
    CComQIPtr<IHTMLDocument2> m_spDocument;
    //IHTMLDocument2 你应该得到了吧HRESULT callJScript(BSTR funcName, vector<_variant_t>& params, CComVariant& varResult) {
    if ( !m_spDocument ) {
    return E_FAIL;
    } CComPtr<IDispatch> spScript;
    HRESULT hr = m_spDocument->get_Script(&spScript);
    ATLASSERT(SUCCEEDED(hr));
    if ( FAILED(hr) ) {
    return hr;
    } DISPID dispid = NULL;
    hr = spScript->GetIDsOfNames(IID_NULL,&funcName,1, LOCALE_SYSTEM_DEFAULT,&dispid);
    if(FAILED(hr)) {
    return hr;
    } DISPPARAMS dispparams;
    memset(&dispparams, 0, sizeof dispparams);
    dispparams.cArgs = params.size();
    dispparams.rgvarg = new VARIANT[dispparams.cArgs];

    int i = 0;
    for( vector<_variant_t>::iterator itr = params.begin(); itr != params.end(); itr ++, i ++ ) {
    dispparams.rgvarg[i] = itr->Detach();
    }
    dispparams.cNamedArgs = 0; EXCEPINFO excepInfo;
    memset(&excepInfo, 0, sizeof excepInfo); UINT nArgErr = (UINT)-1;  // initialize to invalid arg
             
    hr = spScript->Invoke(dispid,IID_NULL,0, DISPATCH_METHOD,&dispparams,&varResult,&excepInfo,&nArgErr);
    delete [] dispparams.rgvarg; return hr;
    }CComVariant callJScript(BSTR funcName, const _variant_t& param1) {
    vector<_variant_t> params;
    params.push_back(param1); CComVariant varResult;
    callJScript(funcName, params, varResult);
    return varResult;
    }你给button一个id(比如button1),
    CComVariant varResult = callJScript(L"eval", "button1.onclick()");
      

  4.   

    PTPVP:
    谢谢你抽出宝贵时间来回答我的问题!!!