четверг, 2 июля 2026 г.

OLE ошибка типов

https://learn.microsoft.com/en-us/answers/questions/5917867/after-installation-of-kb5094126-the-word-integrati

Ole Automation выдает ошибку неправильный тип данных при вызове функции open класса Documents как узнать, какой аргумент функции неправильный?


Ole Automation выдает ошибку неправильный тип данных при вызове функции open класса Documents как узнать, какой аргумент функции неправильный?


https://www.google.com/search?q=Ole+Automation+%D0%B2%D1%8B%D0%B4%D0%B0%D0%B5%D1%82+%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D1%83+%D0%BD%D0%B5%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9+%D1%82%D0%B8%D0%BF+%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85+%D0%BF%D1%80%D0%B8+%D0%B2%D1%8B%D0%B7%D0%BE%D0%B2%D0%B5+%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%B8+open+%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%B0+Documents+%D0%BA%D0%B0%D0%BA+%D1%83%D0%B7%D0%BD%D0%B0%D1%82%D1%8C%2C+%D0%BA%D0%B0%D0%BA%D0%BE%D0%B9+%D0%B0%D1%80%D0%B3%D1%83%D0%BC%D0%B5%D0%BD%D1%82+%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%B8+%D0%BD%D0%B5%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9%3F&gs_lcrp=EgZjaHJvbWUyBggAEEUYOdIBCTQwNjkzajBqNKgCALACAA&sourceid=chrome&ie=UTF-8&udm=50&fbs=ABfTbFVsEZr1Q47tH9CRPuLQmjo5Mgx4T2jMUO45wsyb0JxZ2HImyxWttXYEHtNdvv7Y453NoCx8mA6oxuZNDlCf7iG8yBjoOag-3QPQpfqEQyFIQ51ZCuAbQ262gMk9Td1j9lkEViZevmAp69GjNN6m3G0_t9MMEErD3RYcGftvEVF0heqNduj8mKRNa2HRvMBjbSs0cV_0FkCyWxBM8UUcaQ4J1I260ml3ECTWaRIspSb0kWVNAEvFD2PFMIggv42i0ax6nWTBe-gBUa_CnEunlBMebAsHmA&aep=10&ntc=1&mstk=AUtExfCY4crxjdADV3KJUZnvpNFza7QlL2D53ZnBVxpHjPorlzojVamGB-iEzEX_4L0cumRpy-5ZDkefbES9uTM9XqcFG1JCk1V7FAPxs6Vvg0Gm7eFlWKxF8d3lASrTqfyRagEueQcZ6RNCkJ1VByZKjkgAkpt4bLoJZE3wDARIMzRpPwhfDiWR_Zajeo5qIjQfU0TYG5ToC0R87JiJR5WVIcIH4lmQglCmxt7pbIBk61EIaZJSUdmt0d1W4V8s3UktGVGgO37vFhQ4S2rbMT2CnoBI9me-i2LaqLCOFBd_y-4VidDitIlvEM63YD447BOz_jPiGa5ZwiYSmg&aioh=3&csuir=1&cs=0&mtid=KtBGap6iIaW0wPAPg5QS



https://learn.microsoft.com/en-us/previous-versions/office/troubleshoot/office-developer/automate-word-mail-merge-using-visual-c-mfc

  // Open the file to insert data

  oDocs = pApp->GetDocuments();

  oDataDoc = oDocs.Open(COleVariant("C:\\DataDoc.doc"), \ 

       vtOptional,vtOptional,vtOptional,vtOptional,\ 

       vtOptional,vtOptional,vtOptional,vtOptional,\ 

       vtOptional);



https://www.codeguru.com/cplusplus/ole-automation-with-ms-word/



https://github.com/miyako/4d-plugin-office-automation


Код работает для русских слов

https://www.cyberforum.ru/visual-cpp/thread13561.html



https://www.cyberforum.ru/visual-cpp/thread65575.html


-----------


какой правильный COleVariant для параметра vPasswordDocument метод Open класса Documents для OLE Automation


// Передача пустой строки

COleVariant vPasswordDocument("", VT_BSTR);


// ИЛИ использование специального пустого значения

COleVariant vPasswordDocument(DISP_E_PARAMNOTFOUND, VT_ERROR); 




-----------

в классе COleDispatchDriver метод InvokeHelper как проверить код ошибки



TRY

{

    // Вызов вашего метода, например:

    // InvokeHelper(DISPID_MYMETHOD, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);

}

CATCH(COleDispatchException, e)

{

    // Ошибка автоматизации OLE/COM

    // Получаем код ошибки (SCODE / HRESULT)

    HRESULT hr = e->m_wCode; 

    

    // Выводим или обрабатываем описание ошибки

    CString strError = e->m_strDescription;

    TRACE(_T("COleDispatchException: Код ошибки %x, Описание: %s\n"), hr, strError);

    

    e->Delete(); // Обязательно удаляем объект исключения

}

AND_CATCH(COleException, e)

{

    // Общая ошибка OLE

    HRESULT hr = e->m_sc;

    TRACE(_T("COleException: Код состояния %x\n"), hr);

    

    e->Delete(); // Обязательно удаляем объект исключения

}

END_CATCH





Комментариев нет:

Отправить комментарий