____________________________________

     RESOURCE EXTRACTOR PLUGIN
           Version 1.1.1
____________________________________

              FEATURES
____________________________________

- Decompilation of 32-bit PE executables (EXE SCR) and libraries (DLL OCX CPL BPL), resource files (RES DCR).
- Automatic detection of 32-bit executables and libraries by format. Resource files are detected only by extension.
- Resources with primary language are placed in both resource directory and resource type directory. "Primary" means the following: plugin searches for resource that better fits keyboard layouts.
- Resources can be deleted either internally (fast, but not safe; file may be damaged) or using Resource Hacker (you can get it from http://www.users.on.net/johnson/resourcehacker/). Backup copy with name "filename.ext.!!!" is created.
- Supports almost all standard resources. Styles for common controls can be decompiled as named constants.
- Decompilation process is fully customizable. Options can be stored either in the regsitry or in the ini-file (see below).
- Sometimes plugin behaves not trivially (even I sometimes didn't expect the result), so even advanced users should read ReadMe file.

____________________________________

            INSTALLATION
____________________________________

You should not register it for any particular extension. Instead, register it for extension like "pe_res_dummy". It will allow entering self-executable archives.

- Unpack "ResExtract.wcx" and "ResConfig.exe" into "Total Commander \ Plugins" directory.
- Configuration -> Options... -> Packer -> Additional packers -> Configure packer extension WCX's
- Enter "pe_res_dummy" into the edit box
- Press "New type", browse for plugin, then press "Open"
- Press all "OK" buttons

If plugin finds ini file, it uses it to store configuration, otherwise registry is used. If you want plugin to store options in the ini-file, copy "ResExtract.ini" to the directory where plugin located.

After installing new version of plugin it is recomended that you run configuration application and click on the "Restore Defaults" button. Otherwise, some new functions may not work correctly. For example, detection of the resource format will not work if there is superfluous "type=extension" string.

____________________________________

               USAGE
____________________________________

When your cursor is over one of the files with supported format (see above), press "Ctrl + Page Down" to enter file. You can copy resources from file and delete resources. To delete resource completely delete directory, not file. Otherwise, only resource with primary language will be deleted.

____________________________________

  RESOURCES THAT CAN BE DECOMPILED
____________________________________

- Icons (ICO) and cursors (CUR). They can be extracted as a whole or as particular format. Formats have names like "16x16 256 Colors" or "48x48 True Color (XP)". "(XP)" mark in the format name means that it is 32-bit icon with alpha channel.
- Dialogs - both standard and extended (RC). Types and styles are decompiled as named constants for controls: Button, Static, Edit, ScrollBar, ListBox, ComboBox, ToolbarWindow32, RichEdit, SysAnimate32, SysDateTimePick32, SysHeader32, SysListView32, SysMonthCal32, SysPager, SysTabControl32, SysTreeView32, msctls_hotkey32, msctls_progress32, msctls_statusbar32, msctls_trackbar32, msctls_updown32, ComboBoxEx32, ReBarWindow32, ToolbarWindow32, RichEdit20A, BorBtn, BorRadio, BorRadio, BorCheck, BorStatic, BorShade. Styles for unknown controls are decompiled as hex values. All window styles are decompiled as named constants.
- Menus - both standard and extended (RC)
- Borland forms (DFM) are decompiled into the text format.
- Version information (RC)
- String and message tables (RC)
- Accelerator tables (RC). Keys are decompiled into the "VK_" constants.
- XP Manifests (XML)
- Toolbars (RC)
- Registry scripts (RGS)
- Registry installation (INI)

____________________________________

   AUTOMATICALLY DETECTED FORMATS
____________________________________

- Bitmaps (BMP DIB)
- Text (TXT). If the first KB of resource does not contain non-printable symbols, it is detected as text
- Web resources (HTM HTML GIF JPG JPEG XSL)
- AVI video files (AVI)
- Wave sound files (WAV)
- Metafiles (WMF)
- Executables (EXE)
- Virtual devices (VXD)
- Resources with unknown format have "BIN" extension
- Corrupted with exe-compressors resources have "!!!" extension
- Resources with incorrect format have "!" extension

____________________________________

           CONFIGURATION
____________________________________

All lists (extensions, languages) are words separated by spaces. All numbers (languages, resource types) are decimal. If you have already used plugin in this session of Total Commander, for changes to take place you must restart it or call "cm_UnloadPlugins" command. Total Commander caches archive contents, so if options change list of the resources, "cm_UnloadPlugins" will not help, you will have to restart program. Options are saved in the registry under the following key: HKEY_CURRENT_USER\SOFTWARE\Athari\res_wcx.wcx. You can use Regedit to import and export options.

OPTIONS tab

Plugin looks for current keyboard layouts and chooses resource to be extracted out of language directory. If you want to extract all resources of a file, you can disable this feature. "Ignore sublanguages" means that when plugin chooses languages to be extracted, it would not care about sublanguages. That is if you have "English (US)" keyboard layout, resource with "English (UK)" language can be choosen. Resource files cannot be detected by content; they are detected only by extension. If you have resource files with another extensions, you can add this extension to the list. Warning: do not try open file registered as RES, that does not have RES format; it may cause errors.

NAMES tab

Options in this tab affect only resource names and extensions. The first way to set extension is after the name of resource type. These strings have format "type=extension", without spaces. Type can be string or decimal number defining resource type. If resource have already got dot in the name, adding of "BIN" extension can be disabled.

FORMAT tab

This tab is for compatibility with other resource compilers. Some of them do not understand some statements. For example, Resource Hacker does not understand "SEPARSTOR" and a few styles; Borland C++ does not understand most styles of non-standard controls etc. If your resource compiler has any problems using decompiled resources, you can press "Compatibility mode" button. All values will be extracted as hex values, which are understood by every normal compiler. However, resources will lose readability.

EDITING tab

Instead of using internal method of deleting resources you should use Resource Hacker, because it is much more reliable. You can download it free from http://www.users.on.net/johnson/resourcehacker/. However, it cannot delete icon formats and it is slower. If you want to delete icon formats, you can temporarily disable option "Use Resource Hacker". Warning: if you use internal method do not delete the last resource, file will be damaged.

PACKED tab

Some executable files can be packed with exe-compressors. Some or all of their resources cannot be extracted. You can change extensions or set "hidden" attribute of corrupted resources. In addition, although some resources can be unpacked, they cannot be decompiled. To test format of the resources while opening archive check "Test format" box.

____________________________________

           KNOWN PROBLEMS
____________________________________

- If you delete the last resource of particular type, Total Commander does not update the view. It updates only after entering ".." dir. I cannot fix it. Author of Total Commander should fix it.

- If you enter language subdirectory of the only resource of particular type and delete that language, you would not be able to exit from file. You will have to use history (Alt + Down arrow) or enter dir manually (click on the panel title). I cannot fix it too. Therefore, if you want to delete Version Info, you should not enter language subdirectory to do it.

____________________________________

             WRITTEN BY
____________________________________

Prohorov Alexander aka Athari

Send suggestions, bug reports to athari@land.ru or to the Total Commander's forum http://ghisler.ch/board/viewtopic.php?t=3098 If there are files with extension "!" in the not packed file, send me that file. If you want some resource to be decompiled and know its format, or if you want some resource format to be detected, or if you have found any grammatical mistakes, contact me.

____________________________________

          VERSION HISTORY
____________________________________

Version 1.1.1 - 20.02.04
- Solved problems with ini-file location. Ini-file from the directory, where plugin is placed, is used; no more senseless messages on every plugin usage
- Solved problems with "DllMain"; configuration application can always be called

Version 1.1.0 - 8.02.04
- Packed files can be opened (that does not mean that all of their resources can be extracted)
- Plugin is much more stable; errors like "Abnormal program termination" should be in the past
- Resources whose data beyond the end of the file have "!!!" extension
- Resources whose data seems to be incorrect, for example bitmaps without normal header, have "!" extension. They can't decompiled; they are extracted as binary data
- Ini-file support
- Support for Borland controls: BorBtn, BorRadio, BorRadio, BorCheck, BorStatic, BorShade
- "LANGUAGE" statement is decompiled
- Configuration application can be called from the "Pack Files" dialog (that does not mean plugin can pack resources)
- Some small improvements: time of the resources is set to the file time, registry scripts have "RGS" extension, added "DS_3DLOOK" style, some additional options etc.

Version 1.0.0 - 29.01.04
- Decompilation of almost all standard resources and some resources specific for particular compilers
- Detecting of almost all standard file formats in resources
- Deleting using Resource Hacker
- Application for configuration
- Search for text inside archive is enabled

Version 0.9.0 - 23.01.04
- First release