## 11 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.