Summary: | 1С7.7: сообщения об ошибках при использовании встроенной oleaut32 | ||
---|---|---|---|
Product: | WINE@Etersoft | Reporter: | Александр Морозов <amorozov> |
Component: | OLE / DDE / RPC | Assignee: | Александр Морозов <amorozov> |
Status: | CLOSED FIXED | QA Contact: | Денис Баранов <baraka> |
Severity: | minor | ||
Priority: | P4 | CC: | vitperov |
Version: | 2.0 | ||
Target Milestone: | --- | ||
Hardware: | PC | ||
OS: | All | ||
Whiteboard: | |||
Заявки RT: | Связано с: | 41 | |
Дата напоминания: | |||
Bug Depends on: | |||
Bug Blocks: | 42, 760, 6433 |
Description
Александр Морозов
2010-10-28 18:02:51 MSD
При входе в базу два раза выводится сообщение "Ошибка открытия документа", а после этого также довольно часто выводится "Неправильный формат файла". Фрагмент лога, предшествующий первому сообщению: trace:ole:OLEPictureImpl_Load (0x1b0c3d8,0x32ce50) trace:ole:OLEPictureImpl_Load stat failed with hres 80004001, proceeding to read all data. trace:ole:OLEPictureImpl_Load Reading all data from stream. trace:ole:OLEPictureImpl_Load loaded 39779 bytes. trace:ole:OLEPictureImpl_Load line 1473 hr 00000000 magic 0xcdd7 trace:ole:OLEPictureImpl_LoadAPM trace:metafile:SetMetaFileBitsEx line 1095 trace:ole:OLEPictureImpl_Load return 80004005 второму сообщению: trace:ole:OLEPictureImpl_Load (0x1a640b8,0x32ae80) trace:ole:OLEPictureImpl_Load stat failed with hres 80004001, proceeding to read all data. trace:ole:OLEPictureImpl_Load Reading all data from stream. trace:ole:OLEPictureImpl_Load loaded 410911 bytes. trace:ole:OLEPictureImpl_Load line 1473 hr 00000000 magic 0x4d42 trace:ole:OLEPictureImpl_SetBitmap bitmap handle 0x6998 trace:ole:ConnectionPointImpl_EnumConnections (0x1a64128)->(0x32acf8) trace:ole:OLEPictureImpl_Load return 00000000 trace:ole:OLEPictureImpl_Release (0x1a640b8)->(ref before=2) trace:ole:OLEPictureImpl_PictureChanged (0x1a640b8)->() trace:ole:ConnectionPointImpl_EnumConnections (0x1a64128)->(0x32ae0c) trace:ole:OLEPictureImpl_Release (0x1a640b8)->(ref before=1) trace:ole:OLEPictureImpl_Destroy (0x1a640b8) trace:ole:ConnectionPointImpl_Release (0x1a64128)->(ref before=1) Выяснил, что соответсвующий первой ошибке вызов OLEPictureImpl_Load читает картинку из стрима CalcVar\CalcVar_Number401\WorkBook\Page.4 в файле 1cv7.md. Переделал функцию OLEPictureImpl_Load так, чтобы она не использовала метод Stat интерфейса IStream. Эта функция реализует метод Load интерфейса IPersistStream объекта картинки. В MSDN говорится, что этот метод может использовать только Seek и Read: http://msdn.microsoft.com/en-us/library/ms680568(v=VS.85).aspx В результате при входе в базу перестали появляться окна с сообщениями об ошибках. Осталась проблема с появлением вот такого сообщения внизу: ВерсияВнешнейОбработкиИБлока = Парам.Получить("Версия"); {C:\PROGRAM FILES\1CV77\1SBDB\EXTFORMS\RP08Q1.GRP\REKLAMA.ERT(41)}: Поле агрегатного объекта не обнаружено (Получить) > ВерсияВнешнейОбработкиИБлока = Парам.Получить("Версия");
> {C:\PROGRAM FILES\1CV77\1SBDB\EXTFORMS\RP08Q1.GRP\REKLAMA.ERT(41)}: Поле
> агрегатного объекта не обнаружено (Получить)
Проблема не проявляется, если использовать для 1С стороннюю msvcrt.
Принято. |