none
关于documents.open 函数的16个参数的问题 RRS feed

  • 问题

  • Hi All,

    我的目标是将xml和xsl保存成一份word文档。使用的语言是c++

    需要使用documents.open(...)这个函数

    目前采用的方法是:

    HRESULT hr = pDisp->GetIDsOfNames(IID_NULL, "open", 1, LOCALE_USER_DEFAULT, &dwDispID);

    hr = pDisp->Invoke(dwDispID, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &dispparams, pvResult, NULL, NULL);

    问题是提供给Invoke函数的参数序列dispparams是错误的,执行完Inoke()后一直报:type mistatch的错误。

    我给的参数序列如下:

     CComVariant varXMLPath(L"D:\\VIDiff\\DiffSample\\fff.xml");
     CComVariant varXSLPath(L"D:\\VIDiff\\DiffSample\\fff_resource\\DefaultStyle.xsl");
     CComVariant varEmpty(L"");
     CComVariant varFalse(false);
     CComVariant varTrue(true);
     CComVariant varZero(0);

     vtParams[0] = varXMLPath;
     vtParams[1] = varFalse;
     vtParams[2] = varFalse;
     vtParams[3] = varFalse;
     vtParams[4] = varEmpty;
     vtParams[5] = varEmpty;
     vtParams[6] = varFalse;
     vtParams[7] = varEmpty;
     vtParams[8] = varEmpty;
     vtParams[9] = varZero;
     vtParams[10] = varZero;
     vtParams[11] = varTrue;
     vtParams[12] = varFalse;
     vtParams[13] = varZero;
     vtParams[14] = varFalse;
     vtParams[15] = varXSLPath;

    大家帮我看看,这16个参数要怎么改才有效。谢了



    • 已编辑 Mengliangli 2012年6月21日 13:37
    • 已移动 Helen Zhao 2012年6月22日 5:57 (发件人:Visual C++)
    2012年6月21日 12:01

全部回复

  • Mengliangli你好!

    我将要把这个帖子移到“一般性问题讨论区”。在Visual C++论坛,我们只讨论有关C++语言和编译器的问题。

    谢谢你的谅解!

    祝你好运!


    Helen Zhao [MSFT]
    MSDN Community Support | Feedback to us

    2012年6月22日 5:56
  • 我找到解决方法:把参数列表完全倒置过来,在传进去,就行了.

    可能的原因是:ccall 和stdcall 在参数压栈顺序的区别。

    2012年6月25日 7:23