Summary: | КМ-Школа: невозможно зайти в некоторые разделы | ||
---|---|---|---|
Product: | Wine School | Reporter: | Денис Баранов <baraka> |
Component: | КМ Школа | Assignee: | Константин Кондратюк <kondratyuk> |
Status: | CLOSED FIXED | QA Contact: | |
Severity: | normal | ||
Priority: | P5 | CC: | kondratyuk, lav, vostok |
Version: | 0.7 | ||
Target Milestone: | --- | ||
Hardware: | PC | ||
OS: | Linux | ||
Whiteboard: | |||
Заявки RT: | Связано с: | ||
Дата напоминания: | |||
Bug Depends on: | 1844 | ||
Bug Blocks: | 2120, 1528, 1632, 2087 |
Description
Денис Баранов
2008-04-08 21:31:10 MSD
Так же не заходит в учетке Ученик в Самоподготовку, наверно по одной и той же причине, т.к. разделы там схожие. На самом деле заходит, но только первый раз и если не были открыты другие разделы, т.е. в моём ww при логировании как учитель появляется белый экран с вкладками (ни одна из них не выбрана) и если сразу нажать на "индивидуальны портфель", то эта вкладка откроется, а если сначала открыть любую другую вкладку, то после этого нажатие на первую не будет иметь эффекта. И ещё не открывается учитель->методический кабинет Всё-таки для этого окна mshtml не используется. Но по трассировке похоже, что ошибка в нарушении порядка сообщений (тут используется WM_TIMER, может он обрабатывается некорректно). Сейчас поставил программу под windows и посмотрел, как она работает. Всё-таки ни в индивидуальный портфель, ни в методический кабинет программа не заходит, при этом, судя по интерфейсу, мет.кабинет должен использовать mshtml. При этом туда можно зайти через большую кнопку "рабочее место учителя", но в "рвбочее место" всё равно не заходит. Проблема осталась в новой сборке WINE@Etersoft School, установленной на euclid *** Bug 1632 has been marked as a duplicate of this bug. *** *** Bug 1634 has been marked as a duplicate of this bug. *** Судя по всему, одна и та же ошибка во многих местах КМ-Школы. В том числе, характеризуется таким выводом в консоль при клике на ссылку: err:ole:CoGetClassObject class {22d6f312-b0f6-11d0-94ab-0080c74c7e95} not registered err:ole:create_server class {22d6f312-b0f6-11d0-94ab-0080c74c7e95} not registered err:ole:CoGetClassObject no class object {22d6f312-b0f6-11d0-94ab-0080c74c7e95} could be created for context 0x5 Список неработающих ссылок: Завуч -> Методическая работа -> Методический кабинет Учитель -> Классный журнал -> Работы учашихся Учитель -> Индивидуальный портфель Ученик -> Самоподготовка 22d6f312-b0f6-11d0-94ab-0080c74c7e95 - это CLSID Windows Media Player 6.4 Добавил в сборку MDAC 2.8 wine-school-0.2-alt1 После установки WMP9 нужный класс регистрируется. Теперь ошибка: err:ole:apartment_getclassobject DllGetClassObject returned error 0x8007007e err:ole:CoGetClassObject no class object {22d6f312-b0f6-11d0-94ab-0080c74c7e95} could be created for context 0x5 Где-то в интернете нашлась заметка про то, что это недоустановленный wmp или проблемы со звуком. Звук в бутылках недоступен, так что вполне может быть нашим случаем. В моём home (со звуком) wmp выдаёт ошибку при старте и закрывается, а "школа" вообще падает при попытке зайти под учёткой завуча. Пока не понял, связано ли. (In reply to comment #11) > Список неработающих ссылок: > > Учитель -> Индивидуальный портфель > Работает, там не работает только ссылка "Рабочие материалы" и "Методический кабинет" не до конца свой интрефейс генерит. Тем более почему эти ссылки не работают я сейчас это с разработчиком КМ-Школы разбираю... Это исключение, из-за незарегистрированного медиаплеера. Связь с разработчиком по этому вопросу - очень кстати. В связи с тем, что от wmp мы вынуждены отказаться - работа через мою реализацию wmp.dll. (In reply to comment #18) > Это исключение, из-за > незарегистрированного медиаплеера. Пока я не вижу того, что там используется именно в этих местах WMP > Связь > с разработчиком по этому вопросу - очень > кстати. Я уже спросил про то, что ты тут накопал. $ ./KMSchool.exe wmp.dll:DllMain:(10000000, 1, 00000000) wmp.dll: factory.c: WMP_IClassFactory_QueryInterface wmp.dll: factory.c: WMP_IClassFactory_AddRef wmp.dll: factory.c: CreateInstance wmp.dll: iwmpplayer.c: Constructor (00000000,0033FDF0) wmp.dll: iwmplayer.c:QueryInterface wmp.dll: tool.c:inner_QueryInterface - create IWMPPlayer wmp.dll: iwmpplayer.c: AddRef REF = 0 wmp.dll: factory.c: WMP_IClassFactory_Release wmp.dll: iwmplayer.c:QueryInterface wmp.dll: tool.c:inner_QueryInterface - create IWMPCore ... + см. комментарий #12 Сейчас меня больше всего интересует работа с IOleObject и IOleClientSite, вернее взаимодействие их в dll и в программе. (In reply to comment #20) > $ ./KMSchool.exe > wmp.dll:DllMain:(10000000, 1, 00000000) > wmp.dll: factory.c: WMP_IClassFactory_QueryInterface > wmp.dll: factory.c: WMP_IClassFactory_AddRef > wmp.dll: factory.c: CreateInstance > wmp.dll: iwmpplayer.c: Constructor (00000000,0033FDF0) > wmp.dll: iwmplayer.c:QueryInterface > wmp.dll: tool.c:inner_QueryInterface - create IWMPPlayer > wmp.dll: iwmpplayer.c: AddRef REF = 0 > wmp.dll: factory.c: WMP_IClassFactory_Release > wmp.dll: iwmplayer.c:QueryInterface > wmp.dll: tool.c:inner_QueryInterface - create IWMPCore > ... > > + см. комментарий #12 > Это не говорит о том, что в данных разделах используется медиа плеер. Создаётся - да, но не через него неработающие контролы отображаются в метадическом кабинете - это точно. Тем более всегда можно зайти клиентом с винды и убедиться, что во многих вкладках, что не работают, с помощью WMP ничего не отображается. (In reply to comment #21) > Сейчас меня больше всего интересует работа > с IOleObject и IOleClientSite, вернее взаимодействие их > в dll и в программе. Как я понимаю, с помощью вызова IOleClientSite можно вставить окно проигрывателя в стандартный контрол, но я такого в КМ-Школе не видел... С учётом того, что я не знаю OLE, этот комментарий больше информационный. Связь с плеером очевидна. Для чего он нужен - другой вопрос, это тоже хочется узнать. Может быть, имеет смысл просто мне пообщаться напрямую по этой баге? (In reply to comment #24) > Связь с плеером очевидна. Мне она пока совсем не очевидна. С таким же успехом можно JVM вызывать, просто так, чтобы было. > Может быть, имеет смысл просто мне > пообщаться напрямую по этой баге? Сомневаюсь, что есть смысл вдвоём грузить человека, тем более я про это замечание спросил его уже. Ответ я обязательно приложу к баге. Убедительная просьба ко всем - переписку с разработчиками перекладывать в соответствующие папки в почте. По возможности, мне нужен кусок кода, отвечающий за инициализацию движка WMP при загрузке модуля, например, "Учитель" или "Завуч". Или хотя бы информация, каким образом эта инициализация устроена, и через какие методы интерфейсов. Хотя если это delphi - скорее всего стандартно вставлен объект проигрывателя, что впрочем тоже не работает... Но хочется решать всё-таки конкретную проблему, а не абстрактный плеер. (In reply to comment #27) > По возможности, мне нужен кусок кода, > отвечающий за инициализацию движка WMP при > загрузке модуля, например, "Учитель" или > "Завуч". Или хотя бы информация, каким > образом эта инициализация устроена, и > через какие методы интерфейсов. > Хотя если это delphi - скорее всего стандартно > вставлен объект проигрывателя, что впрочем > тоже не работает... Но хочется решать > всё-таки конкретную проблему, а не > абстрактный плеер. > Гениально, как ты мог видеть из переписки мне нужны такие же куски, но пока мне их предоставлять не хотят. (In reply to comment #24) > Связь с плеером очевидна. Для чего он нужен > - другой вопрос, это тоже хочется узнать. > Может быть, имеет смысл просто мне > пообщаться напрямую по этой баге? > В общем моя лажа. Специалист подтвердил, что весь косяк в WMP. В нём причина. Специалиста зовут Сергей, эл. почта doroshin@km-school.ru Удачи! :) Постараюсь больше так не лажаться. Зависит от реализации WMP-плейера. С текущим состоянием реализации - вкладки открываются. Осталось добавить в сборку, ну и доделать функциональность в соответствии с багой #1844. Вкладки открываются, так что багу закрываю. |