Как получить простой текст файла MS Office с помощью COM API (автоматизация делопроизводства) в Stack Overflow

У меня есть буфер, который содержит часть документа Office Word. Я хочу использовать COM API для извлечения обычного текста из буфера. Я знаю, как открыть текстовый документ и сохранить его в текстовом документе с помощью 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);

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]