## 12 windmc

`windmc` may be used to generator Windows message resources.

> Warning: `windmc` is not always built as part of the binary utilities, since it is only useful for Windows targets.

         windmc [options] input-file

`windmc` reads message definitions from an input file (.mc) and translate them into a set of output files. The output files may be of four kinds:

`h`
  A C header file containing the message definitions.
`rc`
  A resource file compilable by the `windres` tool.
`bin`
  One or more binary files containing the resource data for a specific message language.
`dbg`
  A C include file that maps message id's to their symbolic name.

The exact description of these different formats is available in documentation from Microsoft.

When `windmc` converts from the `mc` format to the `bin` format, `rc`, `h`, and optional `dbg` it is acting like the Windows Message Compiler.

`-a`
`--ascii_in`
  Specifies that the input file specified is ASCII. This is the default behaviour.
`-A`
`--ascii_out`
  Specifies that messages in the output `bin` files should be in ASCII format.
`-b`
`--binprefix`
  Specifies that `bin` filenames should have to be prefixed by the basename of the source file.
`-c`
`--customflag`
  Sets the customer bit in all message id's.
`-C codepage`
`--codepage_in codepage`
  Sets the default codepage to be used to convert input file to UTF16. The default is ocdepage 1252.
`-d`
`--decimal_values`
  Outputs the constants in the header file in decimal. Default is using hexadecimal output.
`-e ext`
`--extension ext`
  The extension for the header file. The default is .h extension.
`-F target`
`--target target`
  Specify the BFD format to use for a bin file as output. This is a BFD target name; you can use the `--help` option to see a list of supported targets. Normally `windmc` will use the default format, which is the first one listed by the `--help` option. Target Selection.
`-h path`
`--headerdir path`
  The target directory of the generated header file. The default is the current directory.
`-H`
`--help`
  Displays a list of command line options and then exits.
`-m characters`
`--maxlength characters`
  Instructs `windmc` to generate a warning if the length of any message exceeds the number specified.
`-n`
`--nullterminate`
  Terminate message text in `bin` files by zero. By default they are terminated by CR/LF.
`-o`
`--hresult_use`
  Not yet implemented. Instructs `windmc` to generate an OLE2 header file, using HRESULT definitions. Status codes are used if the flag is not specified.
`-O codepage`
`--codepage_out codepage`
  Sets the default codepage to be used to output text files. The default is ocdepage 1252.
`-r path`
`--rcdir path`
  The target directory for the generated `rc` script and the generated `bin` files that the resource compiler script includes. The default is the current directory.
`-u`
`--unicode_in`
  Specifies that the input file is UTF16.
`-U`
`--unicode_out`
  Specifies that messages in the output `bin` file should be in UTF16 format. This is the default behaviour.
`-v`
`--verbose`
  Enable verbose mode.
`-V`
`--version`
  Prints the version number for `windmc`.
`-x path`
`--xdgb path`
  The path of the `dbg` C include file that maps message id's to the symbolic name. No such file is generated without specifying the switch.