Не заходит туда.
Так же не заходит в учетке Ученик в Самоподготовку, наверно по одной и той же причине, т.к. разделы там схожие.
На самом деле заходит, но только первый раз и если не были открыты другие разделы, т.е. в моём 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.
Вкладки открываются, так что багу закрываю.