С Free Pascal поставляется полностью автономный (*) исполняемый файл CHMLS для командной строки, который позволяет просматривать содержимое файла CHM. Он существует для нескольких платформ.
Вы можете выполнить это, используя каналы, а затем обработать вывод.
Я случайно застегнул exe для sb еще несколько дней назад, вы можете получить их здесь
http://www.stack.nl/~marcov/chmls.zip
(или, если вы мне не доверяете, загрузите версию Windows XP для fpc 2.4.0)
(*) Я не знаю состояние на win9x.
Вывод выглядит так:
<Section> <Offset> <UnCompSize> <Name>
0 0 0 /#ITBITS
1 27737212 192334 /#STRINGS
0 70 133 /#SYSTEM
1 22414493 169080 /#TOCIDX
1 26847375 339904 /#TOPICS
1 27187279 294757 /#URLSTR
1 27482036 255176 /#URLTBL
1 27929546 1174749 /$FIftiMain
1 22411742 2751 /$OBJINST
0 0 0 /$WWKeywordLinks/
1 24122411 628812 /$WWKeywordLinks/BTree
1 24751223 111371 /$WWKeywordLinks/Data
1 24862594 2378 /$WWKeywordLinks/Map
1 24864972 1 /$WWKeywordLinks/Property
0 0 70 /_#_README_#_
0 0 0 /baseunix/
1 10656150 1395 /baseunix/_stat_ver.html
1 10651853 1438 /baseunix/_stat_ver_kernel.html
1 10654717 1433 /baseunix/_stat_ver_linux.html
1 10650407 1446 /baseunix/_stat_ver_linux_old.html
1 10653291 1426 /baseunix/_stat_ver_svr4.html
1 10452426 1438 /baseunix/arg_max.html
1 10644473 1510 /baseunix/bitsinword.html
Файлы, начинающиеся с # и $, являются внутренними файлами.
(инструменты - это утилиты, которые поставляются с библиотекой CHM Free Pascal, которая поддерживает поддержку чтения / записи CHM независимо от других инструментов для документации и справочных систем Free Pascals. Она независима от ОС, и, насколько мне известно, она отлично работает в OS X / PowerPC64