Libmapi: размер поля

Вот чем я занимался сегодня большую часть рабочего дня: вручную декодировал события, на которых свалились тесты, побайтово. В отличие от машины, я способен распознавать данные по их внешнему виду, например, вижу границы nttimestamp или вижу где начались буквы. Машина без посторонней помощи это не умеет, а потратить времени на помощь ей можно очень много.
Вывод, кажется, такой: в документации от Microsoft поле ReminderSet имеет тип boolean и размер 8 бит, вот по данным кажется, что оно
P.S. Пока тесты не падают. Значит размер поля ReminderSet в структуре ExceptionInfo действительно 32 бита (это структура внутри PidLidAppointmentRecur).

Комментарии 10
Есть также милые такие поля (кажется для указания размеров/отступов) — знаковые, но
P.S. Писал по «уплывшим» докам до официального открытия формата. Новые чуть лучше в плане общей причёсанности, но не в плане полноты — как нет было описания, что такое LVC, так и нет.
P.P.S. Распечатки это правильно!
Оттуда же — видел ошибки в исходном коде — он формально был написан по документации (ещё до открытия), но не работал — то ли catdoc то ли antiword то ли openoffice. Проблема в том что это поле (не то, которое 12bit signed int, а то, которое занимало не столько байт, сколько сказано) могло то появиться, то не появиться — в зависимости от способа сохранения.
На самом деле проблемы были с некоторыми упаковщиками.
Ты
Вот спецификация формата PE на сайте Microsoft: http://www.microsoft.com/whdc/system/platf … ECOFF.mspx
Это оно?
Спецификация, это хорошо.
Но разобраться в ней было довольно сложно.
Особенно в рекурсивной структуре VS_VERSIONINFO.
Для чего и потребовались распечатки.
Да, распечатки действительно очень помогают в таких случаях