Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/142.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何在c+中使用COM API(办公自动化)获取MS Office文件的纯文本+;_C++_Api_Text_Com_Office Automation - Fatal编程技术网

C++ 如何在c+中使用COM API(办公自动化)获取MS Office文件的纯文本+;

C++ 如何在c+中使用COM API(办公自动化)获取MS Office文件的纯文本+;,c++,api,text,com,office-automation,C++,Api,Text,Com,Office Automation,我有一个缓冲区,其中包含Office word文档的一部分。我想使用COM API获取缓冲区的纯文本。我知道如何打开word文档并使用COM API将其保存为文本文档,但这不是我想要的。 作为一种解决方案,我创建了一个内存映射文件对象,并将数据放入其中,然后尝试使用COM API打开它,但“Invoke”表示“变量类型错误” 是什么让您认为文档对象应该接受文件名或路径以外的任何内容?是什么让您认为文档对象应该接受文件名或路径以外的任何内容? hMapFile = CreateFileMappin

我有一个缓冲区,其中包含Office word文档的一部分。我想使用COM API获取缓冲区的纯文本。我知道如何打开word文档并使用COM API将其保存为文本文档,但这不是我想要的。 作为一种解决方案,我创建了一个内存映射文件对象,并将数据放入其中,然后尝试使用COM API打开它,但“Invoke”表示“变量类型错误”


是什么让您认为
文档
对象应该接受文件名或路径以外的任何内容?是什么让您认为
文档
对象应该接受文件名或路径以外的任何内容?
hMapFile = CreateFileMapping(
    INVALID_HANDLE_VALUE,    // use paging file
    NULL,                    // default security
    PAGE_READWRITE,          // read/write access
    0,                       // maximum object size (high-order DWORD)
    BUF_SIZE,                // maximum object size (low-order DWORD)
    szName);                 // name of mapping object

///....
// copy data to hMapFile
///....

////... 
// create an instance of Word Application
///...


/// now call open function and send hMapFile instead of a real file

VARIANTARG varg;
varg.vt = VT_BYREF;
//varg.vt = BSTR;
//varg.bstrVal = BSTR(L"F:\\sample2.docx"); 
varg.byref = hMapFile; 

DISPPARAMS dpOpen = { &varg, NULL, 1, 0 };

DISPID dispOpenID;
LPOLESTR szOpenDoc = L"Open";
UINT err = 9;

hr = m_pDocuments->GetIDsOfNames(IID_NULL, &szOpenDoc, 1, LOCALE_SYSTEM_DEFAULT, &dispOpenID);

hr = m_pDocuments->Invoke(dispOpenID, IID_NULL, LOCALE_SYSTEM_DEFAULT, DISPATCH_METHOD, &dpOpen, &varRetVal, &excepInfo, &err);