Index.htm 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <head>
  4. <title>CHMDir Plugin (WCX/WDX) for Total Commander</title>
  5. <link rel="stylesheet" type="text/css" href="chmdir.css">
  6. </head>
  7. <body bgcolor="White">
  8. <a name="readme_head"></a>
  9. <h1>CHMDir Plugin (WCX/WDX) for Total Commander</h1>
  10. <p align="right" style="font-size: smaller;"><a href="index_ru.htm">Switch to Russian</a></p>
  11. Version <a href="#history">0.41-alpha</a> (x86 and x64).
  12. Use it at your own responsibility. If you upgrade plugin,
  13. see section <a href="#history">History</a>.
  14. <p><strong>WARNING: IN x64 VERSION DON'T WORK PACKING, DELETING ETC. &mdash; IT CRACHES TC!</strong><br />
  15. Author uses 32-bit system and have not enough time for testing 64-bit version.
  16. <p>Tested with Total Commander
  17. 7.x (32-bit) under WinXP (rus),
  18. 8.0 (64-bit) under Win7 (x64).
  19. Need WinNT 3.5 or Win95 or newer.
  20. <p>This program is distributed in the hope that it will be useful,
  21. but WITHOUT ANY WARRANTY and NO SUPPORT.
  22. <p>Comments may be send to <a href="#author">author</a>.
  23. <p>CHMlib, CHMtools and LZX Compression library are Copyright 2001 Matthew T. Russotto &mdash;
  24. <a href="http://www.speakeasy.org/~russotto/">http://www.speakeasy.org/~russotto/</a>.
  25. <p>CHMDir uses info from Paul Wise aka pabs &mdash;
  26. <a href="http://pabs.zip.to">http://pabs.zip.to</a>
  27. and small piece of code from
  28. <a href="http://www.info-zip.org/pub/infozip/">Info-ZIP</a> (file <code>match.c</code>).
  29. <P>
  30. <hr>
  31. <ul>
  32. <li><a href="#about">About plugin</a>
  33. <li><a href="#files">Files in archive</a>
  34. <li><a href="#install_wcx">How to install plugin</a>
  35. <ul>
  36. <li><a href="#install_wcx">As packer plugin (WCX)</a>
  37. <li><a href="#install_wdx">As content plugin (WDX)</a>
  38. </ul>
  39. <li><a href="#ini_file">CHMDir.ini &mdash; settings</a>
  40. <li><a href="#CHMView">CHMView.exe</a>
  41. <LI><A HREF="#wtedit">wtedit.exe and wtdump.exe</A>
  42. <li><a href="#UnCHMw">UnCHMw.exe</a>
  43. <li><a href="#new">New versions</a>
  44. <li><a href="#make">How to make</a>
  45. <li><a href="#author">Author</a>
  46. <li><a href="#history">History</a>
  47. </ul>
  48. <hr>
  49. <a name="about"></a>
  50. <H2>About plugin</H2>
  51. <p>CHMDir adds support of
  52. <a href="http://www.speakeasy.org/~russotto/">ITSS/CHM</a>
  53. file format (compiled HTML) to Total Commander,
  54. allows you to extract, search, pack, delete files in CHM.
  55. <p>Also it add unpacking of HtmlHelp 2 files (<code>.Hx?</code>).
  56. <p>Also it can used as content plugin, showing info about title of help window,
  57. maker of CHM and time of compilation.
  58. <p>Presence of Internet Explorer in system is not necessary.
  59. <blockquote>
  60. <strong>NB</strong>: Plugin can not make full-fledged HtmlHelp files (contents, index, etc.)
  61. but it can make CHM-file even if there is one '.htm' or '.html' file in files
  62. to be packed. For example, repack this archive to CHM-file. To make
  63. full-fledged HtmlHelp use
  64. <A HREF="http://msdn.microsoft.com/workshop/author/htmlhelp/">HTML Help Workshop</A>
  65. or <a href="http://yarix.by.ru/">htm2chm</a>.
  66. </blockquote>
  67. <p>If there is not file '#SYSTEM' in root of packed files list it will be created
  68. and if there is not some '.hhc' file in packed list, 'stub.hhc' will be
  69. created with all files and directories from packing list using &lt;title&gt; of topic. Its
  70. order depends on sort type of TC. Default topic will be (what comes first, case
  71. insensitive): see '<CODE>default_topics</CODE>' in <a href="#ini_file">CHMDir.ini</a>.
  72. If there is not such file, first found
  73. '.htm' or '.html' in packed list will be used.
  74. <p>For keeping structure of file before repacking it must be unpacked with turned
  75. on option 'Show special CHM files' in <a href="#ini_file">CHMDir.ini</a>
  76. to keep files such as '#SYSTEM' (there is
  77. information about title of help window and contents file in this file).
  78. <a name="files"></a>
  79. <H2>Files in archive</H2>
  80. <table cellpadding="0" cellspacing="0" align="center">
  81. <tr><td><A HREF="File_Id.diz">File_Id.diz</A></td> <td width="20"></td>
  82. <td>short description of package</td></tr>
  83. <tr><td><strong>index_en.htm</strong></td> <td></td>
  84. <td>description of package on English (you are now reading)</td></tr>
  85. <tr><td><A HREF="index_ru.htm">index_ru.htm</A></td><td></td>
  86. <td>same as above on Russian</td></tr>
  87. <tr><td><A HREF="chmdir.css">chmdir.css</A></td><td></td>
  88. <td>Style sheet for <SAMP>index_*.htm</SAMP></td></tr>
  89. <tr><td><A HREF="pluginst.inf">pluginst.inf</A></td><td></td>
  90. <td>INF-file for automatically install the plugin</td></tr>
  91. <tr><td><A HREF="CHMDir.wcx">CHMDir.wcx</A></td> <td></td>
  92. <td>plugin module</td></tr>
  93. <tr><td><A HREF="sample.ini">sample.ini</A></td> <td></td>
  94. <td>sample INI-file for plugin</td></tr>
  95. <tr><td><A HREF="chmdir.lng">chmdir.lng</A></td> <td></td>
  96. <td>language file for WDX</td></tr>
  97. <tr><td><A HREF="CHMView.exe">CHMView.exe</A></td> <td></td>
  98. <td>program for viewing CHM files without <samp>hh.exe</samp></td></tr>
  99. <tr><td><A HREF="UnCHMw.exe">UnCHMw.exe</A></td> <td></td>
  100. <td>command line utility for unpacking CHM files</td></tr>
  101. <tr><td><a href="wtdump.exe">wtdump.exe</a></td> <td></td>
  102. <td>program for dumping properties of HtmlHelp window</td></tr>
  103. <tr><td><a href="wtedit.exe">wtedit.exe</a></td> <td></td>
  104. <td>program for editing HtmlHelp window properties</td></tr>
  105. <tr><td><a href="descript.ion">descript.ion</a></td> <td></td>
  106. <td>file descriptions</td></tr>
  107. </table>
  108. <a name="install_wcx"></a>
  109. <h2>How to install plugin as WCX</h2>
  110. <ol>
  111. <li>Unzip the <code>chmdir.wcx</code> to the Total Commander directory (usually
  112. <code>c:\wincmd</code> or <code>c:\totalcmd</code>) or directory as you like
  113. <li>In Total Commander, choose <em>Configuration/Options</em> and open <em>Plugins</em> page
  114. <li>Click <em>Configure</em> in 'Packer plugins (.WCX)'
  115. <li>Type '<code>chm</code>' as the extension
  116. <li>Click <em>New type</em>, and select the unpacked <code>chmdir.wcx</code>
  117. <li>Click <em>OK</em>
  118. <li>Repeat steps 4-6 for .hxs extension
  119. <li>If its necessary make file <a href="#ini_file">CHMDir.ini</a> (or copy
  120. from <code>sample.ini</code>) in dir same as plugin
  121. </ol>
  122. <blockquote>
  123. <strong>NB</strong>: File icons and default action (on &lt;Enter&gt;) will not change. To enter into
  124. archive use &lt;Ctrl-PgDn&gt;. If you want to change this to opening archive with
  125. &lt;Enter&gt; and showing archive icon:
  126. <ol>
  127. <li>Choose <EM>Configuration/Options...</EM> then open page <EM>Packer</EM> and press
  128. button <em>Configure</em> in 'Packer plugins (.WCX)'
  129. <li>In drop-down list 'All file with...' choose '<SAMP>chm</SAMP>'
  130. <li>In field 'Associate with:' change number <em>NNN</em> before comma
  131. to <em>MMM</em>, where <em>MMM</em>=<em>NNN</em>-256
  132. </ol>
  133. <p>or
  134. <ol>
  135. <li>Close Total Commander
  136. <li>Open Total Commander's INI-file (usually <SAMP>&lt;windows_dir&gt;\WINCMD.INI</SAMP>) with
  137. text editor
  138. <li>In section <SAMP>[PackerPlugins]</SAMP> change <EM>NNN</EM> in line looks like
  139. '<SAMP>chm=NNN,C:\wincmd\chmdir.wcx</SAMP>' to <EM>MMM</EM>, where <EM>MMM</EM>=<EM>NNN</EM>-256.
  140. </ol>
  141. <p>To view CHM-file use one of:
  142. <ul>
  143. <li>command <SAMP>hh &lt;chm-file&gt;</SAMP>,
  144. <li>keystroke &lt;Ctrl-Enter&gt; to insert file name into command line and &lt;Enter&gt;
  145. to open file,
  146. <li>right click on file name and choose default action (bolded).
  147. </ul>
  148. </blockquote>
  149. <a name="install_wdx"></a>
  150. <h2>How to install plugin as WDX</h2>
  151. <ol>
  152. <li>Choose <EM>Configuration/Options...</EM>
  153. <li>Choose page <EM>Plugins</EM> and in group 'Content plugins (.WDX)' press button <EM>Configure</EM>.
  154. <li>In the 'Content plugins' dialog box press <EM>Add</EM> and type '<SAMP>*.wcx</SAMP>' in 'File name' field.
  155. <li>Locate unpacked CHMDir.wcx and press <EM>Open</EM>.
  156. </ol>
  157. <a name="ini_file"></a>
  158. <h2>CHMDir.ini</h2>
  159. <p>At startup plugin looks up in its directory (or directory specified by Total Commander) the file <CODE>CHMDir.ini</CODE>
  160. &mdash; standard
  161. Windows <em>ini</em>-file.
  162. <P>See descriptions in <A HREF="sample.ini">sample.ini</A>.
  163. <p>In order to changes start to work you must restart TC or unload all plugins
  164. and change to another archive (TC remember file list of last archive).
  165. <P><B>NB:</B> To use <code>CHMDir.ini</code> from plugin dir,
  166. add into INI file into section <CODE>[CHMDir]</CODE> line <CODE>ini_in_plugdir=1</CODE>.
  167. <h2>Known bugs and limitations</h2>
  168. <ul>
  169. <li>Plugin uses CHMTools that deals with version 3 only.
  170. <li>Plugin uses RAM to hold file names in CHM and for unpacking buffer. So if
  171. you have 1000 files in file with 100 bytes average file name length then you
  172. need more ~0.5 Mb RAM available.
  173. <li>Plugin will not work with files &gt;= 2 Gb.
  174. </ul>
  175. <a name="CHMView"></a>
  176. <h2>CHMView.exe</h2>
  177. <p>This program is intended for viewing CHM files without hh.exe. It needs one
  178. parameter &mdash; CHM file name. It will unpack all files in CHM into temp dir and
  179. will try to start default HTML viewer.
  180. <a name="wtedit"></a>
  181. <a name="wtdump"></a>
  182. <h2>wtedit.exe and wtdump.exe</h2>
  183. <P><STRONG>wtdump.exe</STRONG> dumps properties of HtmlHelp window (or default properties
  184. in current dir) and sample <em>HHP</em> (HtmlHelp project file) that can be used to create such HtmlHelp.
  185. <P><STRONG>wtedit.exe</STRONG> allows you to edit HtmlHelp window properties of
  186. file that used as program parameter.
  187. <P>Both programs need <code>CHMDir.wcx</code> in its directory or in directory
  188. pointed by environment variable '<code>PATH</code>'.
  189. <P>For more information see
  190. <A HREF="http://msdn.microsoft.com/workshop/author/htmlhelp/">HTML Help Web page</A>
  191. or <EM>Help for HTML Help</EM> from <EM>HTML Help Workshop</EM>.
  192. <a name="UnCHMw"></a>
  193. <h2>UnCHMw.exe</h2>
  194. <p>This program is stand alone command line version of CHM unpacker.
  195. <p><STRONG>UnCHMw.exe</STRONG> uses settings from <a href="#ini_file">CHMDir.ini</a>.
  196. <a name="new"></a>
  197. <h2>New versions</h2>
  198. <p>See: <a href="http://www.totalcmd.net/plugring/chmdir.html">http://www.totalcmd.net/plugring/chmdir.html</a>
  199. <a name="make"></a>
  200. <h2>How to make</h2>
  201. <p>Edit <code>Makefile</code>, make dir with name "obj" and run 'Nmake.exe'.
  202. <a name="author"></a>
  203. <h2>Author</h2>
  204. <p>Oleg Bondar aka Hobo (<code>hobo-mts at mail pnt ru</code>).
  205. Change 'at' to '@' and 'pt' to '.'.
  206. <p>Subject of message must contain word '<samp>CHMDir</samp>'.
  207. <a name="history"></a>
  208. <h2>History</h2>
  209. <h3>0.41-alpha (2012/04/06)</h3>
  210. <ul>
  211. <li>Plugin linked with runtime library statically and don't depend on msvcrt.dll.</li>
  212. <li>Added x64 version.<strong>DO NOT USE IT FOR PACKING, DELETING, ETC. (SEE <a href="#readme_head">HEADER</a>).</strong></li>
  213. </ul>
  214. <h3>0.40g (2007/12/10)</h3>
  215. <ul>
  216. <LI>Fixed error caused crash CHMView.exe when converting .hhc file (table of contents). Thanks Atlan Gnozal for assistance.
  217. </ul>
  218. <h3>0.40f (2007/11/29)</h3>
  219. <ul>
  220. <LI>Fixed error caused crash when opening CHM under Win98SE. Thanks Atlan Gnozal for assistance.
  221. </ul>
  222. <h3>0.40e (2007/10/16)</h3>
  223. <ul>
  224. <LI>INI file can be stored in plugin dir.
  225. </ul>
  226. <h3>0.40d (2007/10/15)</h3>
  227. <ul>
  228. <LI>Fixed bug causing TC crash when getting <SAMP>&lt;TITLE&gt;</SAMP> tag data.
  229. <LI>Settings now saved in default ini-file as recommended in "Writing WCX packer plugins",
  230. not in the plugin dir. Translation of WCX plugin moved to chmdir.lng.
  231. </ul>
  232. <h3>0.40c (2006/10/07)</h3>
  233. <ul>
  234. <LI>Some corrections made in German translation.
  235. </ul>
  236. <h3>0.40b (2006/01/05)</h3>
  237. <ul>
  238. <LI>Call of function GetLongPathName() changed to call by pointer (run-time dynamic linking).
  239. Old method caused wtedit.exe loading error under Win95 and WinNT4.
  240. </ul>
  241. <h3>0.40a (2006/01/02)</h3>
  242. <ul>
  243. <LI>Call of function GetCPInfoEx() changed to call by pointer (run-time dynamic linking).
  244. Old method caused plugin loading error under Win95 and WinNT4.
  245. </ul>
  246. <h3>0.40 (2005/12/30)</h3>
  247. <ul>
  248. <LI>Added option to set language ID for created CHM file.
  249. <LI>Added storing of date and time of the archive file's last update.
  250. <LI>Backslash to contents etc. files in links in system files changed
  251. to forward slash (backslash caused incorrect browsing).
  252. </ul>
  253. <h3>0.40 beta 7 (2005/11/22)</h3>
  254. <ul>
  255. <LI>Added HtmlHelp window properties.
  256. <LI>CHMView: added progress dialogs.
  257. <li>Added wtdump.exe and wtedit.exe.
  258. <LI>Added UnCHMw.exe.
  259. <LI>Added charset conversion for &lt;TITLE&gt; tag.
  260. <LI>Added charset / language field into content plugin.
  261. </ul>
  262. <h3>0.40 beta 6 (2005/06/23)</h3>
  263. <ul>
  264. <li>Added button to add default topic file name.
  265. <li>Changed 'LZX window size code' to 'LZX window size' in configuration dialog.
  266. <li>Added packing with IStorage COM interface.
  267. <li>Added functionality of content plugin (WDX).
  268. </ul>
  269. <h3>0.40 beta 5:</h3>
  270. <ul>
  271. <li>Added unpacking of HxS files.
  272. <li>Expanded stub.hhc.
  273. <li>Added INI-file parameter title_stub.
  274. </ul>
  275. <h3>0.40 beta 4:</h3>
  276. <ul>
  277. <li>Fixed an unfortunate misprint in file header (structure size) that steeled
  278. through inadvertence.
  279. <li>Added option to set low priority when packing.
  280. </ul>
  281. <h3>0.40 beta 3:</h3>
  282. <ul>
  283. <li>Fixed: CHMView was not unpacking CHMs with empty dirs containing subdirs only.
  284. <li>Clicking on button 'Store files by ext.' enables or disables next edit
  285. control.
  286. <li>Now '=.gif' unpacked as '=.gif', not as '_.gif'.
  287. <li>Changed sorting of directory listing of CHM.
  288. </ul>
  289. <h3>0.40 beta 2:</h3>
  290. <ul>
  291. <li>Code for made listing rewritten.
  292. <li>Added packer parameters in INI-file.
  293. <li>Added file sorting by extension before packing and calculation of listing
  294. chunk size.
  295. <li>Added generation of HtmlHelp files.
  296. <li>Added INI-file parameters: calc_chunk_size, its_use_store,
  297. default_topics, sort_dir_by_ext.
  298. <li>Added dialog to configure plugin.
  299. <li>Added index.htm in distribution.
  300. </ul>
  301. <h3>0.40 beta 1:</h3>
  302. <ul>
  303. <li>Code for listing and unpacking fully rewritten &mdash; improved memory usage
  304. and performance.
  305. <li>Added caching of CHM data.
  306. <li>Added functions PackFiles(), DeleteFiles() and ConfigurePacker().
  307. GetPackerCaps() now returns 479. If you update plugin you need to
  308. reconfigure of plugin (see above).
  309. </ul>
  310. <h3>0.30a:</h3>
  311. <ul>
  312. <li>Added function PackSetDefaultParams() (stub and in source only &mdash; plugin
  313. makes initialization when DllMain() is called&nbsp;&mdash; wrong way but user does
  314. not know what INI file is used, and plugin can not inform him about it &mdash;
  315. all settings made manually by editing INI file)
  316. </ul>
  317. <h3>0.30:</h3>
  318. <ul>
  319. <li>Added function CanYouHandleThisFile() for opening files other then .chm.
  320. GetPackerCaps() now returns 452.
  321. <li>Added CHMView.exe into distribution
  322. </ul>
  323. <h3>0.29 beta:</h3>
  324. <ul>
  325. <li>Added INI-file
  326. <li>Memory requirements significantly decreased
  327. <li>Removed make-files for Watcom and lcc-Win32
  328. </ul>
  329. <h3>0.28 beta:</h3>
  330. <ul>
  331. <li>Files with name started with '#' and '$' removed from listing
  332. <li>Char '_' used as default for unmappable characters in
  333. WideCharToMultiByte(). Not tested because I have not that files.
  334. <li>Yet another kludge for unpacking files made by htm2chm
  335. </ul>
  336. <h3>0.27 beta:</h3>
  337. <ul>
  338. <li>Added processing of returned result of ProcessDataProc() &mdash; 'Cancel' button
  339. works.
  340. <li>Fixed error that provoked crash while opening CHMs that contains lo-o-ong
  341. file names.
  342. </ul>
  343. <h3>0.26 beta:</h3>
  344. <ul>
  345. <li>Added decoding of file names from UTF-8.
  346. </ul>
  347. <h3>0.24 beta:</h3>
  348. <ul>
  349. <li>Added info about CHMView.
  350. <li>Time of archive files == time of CHM file.
  351. <li>Added version info.
  352. </ul>
  353. <h3>0.23 beta:</h3>
  354. <ul>
  355. <li>Return to one .WCX file &mdash; no additional DLL.
  356. <li>Fixed error with memory deallocation in chmdir.
  357. <li>Kludged (I hope) [error] in Matthew T. Russotto's chmlib that makes
  358. access violation in Total Commander. See comment <code>'!!!&nbsp;Hobo'</code>.
  359. <li>Added READMEru.txt &mdash; on Russian.
  360. <li>Archive name changed to wcx_chmdirX.XX.zip.
  361. </ul>
  362. <h3>0.22 beta:</h3>
  363. <ul>
  364. <li>Next try to make stable release. Matthew T. Russotto's chmlib moved to
  365. separate DLL and this DLL loaded and unloaded every processed file for
  366. decrease memory usage.
  367. <p>Failed. Known bug #1 still present. :-(
  368. </ul>
  369. <h3>0.21 beta:</h3>
  370. <ul>
  371. <li>Added function GetPackerCaps().
  372. </ul>
  373. <h3>0.20 beta:</h3>
  374. <ul>
  375. <li>First public release.
  376. </ul>
  377. </body>
  378. </html>