我用CHtmlView里的ExecWB函数,
void ExecWB(OLECMDID cmdID, OLECMDEXECOPT cmdexecopt, VARIANT* pvaIn, VARIANT* pvaOut )
   我不知道三、四两个参数传什么,我就传的0;
   第一个参数我传的是打印的命令;打印是正确的,但是却碰到打印不完整,也就是说在页面右边的被截取了,为什么呢?我想是不是可以通过参数来进行设置,可是我不知道该怎么去设定,求教大家了!

解决方案 »

  1.   

    试试这样做
    IHTMLDocument2 * pIHtml;
    LPDISPATCH  lpDisp = GetHtmlDocument();
    if (lpDisp == NULL || FAILED(lpDisp->QueryInterface(IID_IHTMLDocument2, (void **)&pIHtml)))
    return;
    try
    {
    VARIANT_BOOL vbRet;
    VARIANT v;
    v.vt = VT_NULL;
    pIHtml->execCommand(SysAllocString(L"Print"), VARIANT_TRUE, v, &vbRet);
    }
    catch(COleException * e)
    {
    e->ReportError();
    e->Delete();
    }
      

  2.   

    TO Semigod():
        按您这样的做法也不行,现在是没办法了,我再问另外一个问题:
        QueryStatusWB函数怎么判断一个命令是否可以运行呢?比如打印命令,我想
    QueryStatusWB(OLECMDID_PRINT)返回一个值之后就判断打印是否可以执行,但是返回值总是为3(而我在帮助里看到返回的值为1、2、4、8)我打印照样成功,怎么办呢?