Ole Automation выдает ошибку неправильный тип данных при вызове функции open класса Documents как узнать, какой аргумент функции неправильный?
Ole Automation выдает ошибку неправильный тип данных при вызове функции open класса Documents как узнать, какой аргумент функции неправильный?
// 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
Комментариев нет:
Отправить комментарий