[Wine-devel] [Office] Советы по взамодействию в разработке Wine

Vitaly Lipatov =?iso-8859-1?q?lav_=CE=C1_etersoft=2Eru?=
Ср Апр 1 17:31:46 MSD 2009


В сообщении от 1 апреля 2009 Вы написали:
...
> >> 3. Не уверен, но disabled  пункт меню делается по-другому, несовсем
> >> понятно зачем автор пошёл по такому пути.
> >
> > Иначе чем указанием MF_DISABLED ? :)
>
> Разве нет возможности изменить флаг у элемента иначе чем удалением и
> созданием меню?
А это не изменение флага, это создание выключенного пункта меню. Никто не 
знает, что в пункте было до нас.

> >> 4. Надо доказать, что
> >>
> >> +        /* It destroys popup menu also */
> >> +        if (num)
> >> +            DeleteMenu(hMenu, uPos, MF_BYPOSITION);
> >>
> >> необходимо.
> >
> > Кому доказать? Функция реализована именно так, как это нужно, по
> > спецификации,
>
> Что значит так как нужно? Кому нужно? Win API, 1C, MSDN?
MSDN / 1C

> > и проверена в реальной работе. Я же исправление к LoadString присылаю.
>
> Для меня это "тёмное" место в алгоритме. Думаю, что и для других тоже.
Могут читать документацию.

> >> 6. Не установлено, что делает WinAPI если lphMenu  будет равно NULL
> >
> > Да, в этом старом варианте было мало проверок на невозможные ситуации.
>
> Остаётся в силе то, что нет проверки на "вставку элемента" и то, что не
> установлено, что функция делает при lphMenu равно NULL.
> Вот только несколько вариантов:
> 1. Безоговорочно упасть, многие функции WInAPI так делают и Тимошков
> много писал о том, что если так делает WinAPI то так должен делать и Wine.
> 2. Сразу завершить выполнение функции с установкой какой-либо ошибки.
> 3. Сделать так как сделал ты.
Выбор вариантов не имеет практического смысла. Это необязательный параметр,
как правило, не нужный программе.

> > А я думаю, что на новую реализованную функцию тесты вообще не нужны.
>
> Только если такие функции реализуют "зубры" Wine, то их действительно
> ничего не спрашивают, хотя бывают исключения.
Ну что ж. Значит, у них не будет этой функции :)

...
> > Остаётся загадкой, где взять OLE-объект, с помощью которого можно
> > тестировать эту функцию. Боюсь что его реализация в Wine займёт раз в 10
> > больше кода, чем эта функция :)
>
> Нормальная практика по XP и Reverse-разработке, когда объём тестом в 10
> раз больше самого кода.
Ну пусть пишут, кто хочет :) Я в OLE пока не разбираюсь.


-- 
С уважением,
Виталий Липатов
Россия, Санкт-Петербург. www.etersoft.ru
GNU! ALT Linux Team! WINE! WIKI! LaTeX! LyX!


Подробная информация о списке рассылки Wine-devel