-----------------------
History of NXCheck.exe
-----------------------

V1.0.13.0  2013-10-08   MS   added support for new device class entries 0x0029 to 0x0031 and for new chip type entries 0x05 (netX 51) to 0x06 (netX52)
V1.0.12.0  2012-02-16   MS   changed text printout for manufacturer ID
V1.0.11.0  2012-02-02   MS   added device class entry for EU5C Gateway
V1.0.10.0  2012-02-01   MS   added device class entries for netSCADA T51, netX 51, and netRAPID 51
V1.0.9.0   2011-10-31   MS   added device class entries for netRAPID 10 and netRAPID 50
                             limited number of Module Info structures shown in printout (stop printout when encountering a structure with communication class and protocol class set to 0)
V1.0.8.0   2011-03-29   MS   added protocol class entry 0x0028, added support for NXL header V1.0, corrected boolean evaluation in file accessibility checks
V1.0.7.0   2010-11-16   MS   added device class entry for comX 50; added protocol class entries for RFC1006, DF1, and VARAN; suppressed file handling if unknown file header format encountered
V1.0.6.0   2010-11-08   MS   added / updated device classes for netJACK, netLINK, comX, netIC
                             fixed crash that occured on DOS box termination using the Close button
V1.0.5.0   2010-09-03   MS   added Device Class entry 0x001A (netX 10) and Chip Type entry 0x04 (netX 10)
V1.0.4.0   2010-02-19   MS   added support for check of old database headers
V1.0.3.0   2010-01-29   MS   added Device Class entries 0x0017 to 0x0019 and Communication Class entries 0x0015 to 0x0017
V1.0.2.0   2009-11-16   MS   corrected manufacturer names list
                             limited number of Module Info structures shown in printout in case of invalid bModuleInfos entry in common header
V1.0.1.0   2009-10-15   MS   changed ID-to-text conversion
V1.0.0.0   2009-10-15   MS   file created



-----------------------------
Functionality of NXCheck.exe
-----------------------------


0) Online Help
--------------
With the option -h or -? given, or without any parameters given, NXCheck.exe prints the following online help summary:

NX* file checker utility V1.0.13.0.

Syntax: NXCheck.exe [<options>] <input file>

Default input directory is the executable directory.
Default behavior is interactive file header printout.

Options:
  -n  : New calculation and comparison of the checksums of an existing NX* file.

  -p  : Print file header contents and exit.
  -r  : Register as viewer for NX* file types.
  -ra : Register as viewer for NX* file types. (For all users.)
  -u  : Unregister as viewer for NX* file types.
  -ua : Unregister as viewer for NX* file types. (For all users.)
  -?  : Show this help message.
  -h  : Show this help message.

If renamed, NXCheck.exe will adapt the online help summary text.
The VS_VERSION_INFO (see Version sheet of the Windows Explorer Properties dialog) will still contain the original tool identity information.


1) NX* File Header Analysis and Printout
----------------------------------------
Without any options specified but a target file to work on, NXCheck.exe creates a textual summary of the information found in the header of the NX* file.

E.g.:

    NXCheck Target.nxf

will create a summary of the information given in the header of Target.nxf and will send it to stdout.

Using the ulMagicCookie and usHeaderVersion entries, NXCheck detects the file type and header structure version and adapts the printout accordingly.

The program shows a "Press any key" message before terminating in order to allow the user to view the results of the analysis.
This interactive mode is helpful when performing Drag&Drop operations or when associating the program with NX* files so that it is invoked when double clicking on an NX* file in the Windows Explorer.

Specifying the option -p will suppress the "Press any key" message.

E.g.:

    NXCheck -p Target.nxf

This batch mode is helpful when running NXCheck.exe from a command line script.


2) NX* File Header Analysis and Checksum Comparison
---------------------------------------------------
With the -n option specified together with a target file to work on, NXCheck.exe re-calculates the MD5, CRC32, and checksums of the NX* file header and compares them to the original values.
E.g.:

    NXCheck -n Target.nxf

The result of the comparison is given in a printed overview followed by a brief summary statement. (Either "All checksums match." or "CHECKSUM MISMATCH!" followed by a beep.)


3) Registration as Default File Handler
---------------------------------------
NXCheck.exe can be registered as the default file handler for NX* files.
In this case, a double click on an NX* file in the Windows Explorer invokes NXCheck.exe with the target file name.
This facilitates an easy viewing of the file summary.

In order to register NXCheck.exe as the default file handler for NX* files, you should
 - place NXCheck.exe in a directory that is included in the PATH environment variable of your computer
 - invoke NXCheck.exe specifying the command line option -r (register for current user) or -ra (register for all users, requires Admin rights)

NXCheck.exe also creates enhanced tooltips and file descriptions for the NX* files in Windows Explorer.
NXCheck.exe also associates its icon with the NX* files in Windows Explorer.

In order to make the latter changes visible (especially the icons), you should log off and log on again.
This will force a re-initialization of the parent instance of Windows Explorer.
