  <chapter id="tools">
    <title>Tools</title>

    <sect1 id="bin2res">
      <title>bin2res</title>

      <para>
        Written by &name-juergen-schmied; <email>&email-juergen-schmied;</email> (11/99)
      </para>
      <para>
        (Extracted from <filename>wine/documentation/resources</filename>)
      </para>

      <para>
        This document desribes tools for handling resources within wine
      </para>

      <sect2>
        <title>bin2res</title>

        <para>
          This tool allows the editing of embedded binary resources
          within  <filename>*.rc</filename> files. These resources are
          stored as hex dump so they can be stored within the cvs
          tree. This makes the editing of the embedded bitmaps and
          icons harder.
        </para>
      </sect2>

      <sect2>
        <title>Create binary files from an <filename>.rc</filename> file</title>

        <para>
          The resources in the <filename>.rc</filename> file have to
          be marked by a header:
        </para>
        <programlisting>
/* BINRES idb_std_small.bmp */
IDB_STD_SMALL BITMAP LOADONCALL DISCARDABLE
{
  '42 4D 20 07 00 00 00 00 00 00 76 00 00 00 28 00'
        </programlisting>
        <para>
          <constant>BINRES</constant> is the keyword followed by a
          filename. <command>bin2res -d bin rsrc.rc</command>
          generates binary files from all marked resources. If the
          binary file is newer it gets not overwritten. To force
          overwriting use the <parameter>-f</parameter> switch.
        </para>
      </sect2>

      <sect2>
        <title>Create a <filename>.rc</filename> file from binaries</title>

        <para>
          Put a header followed by empty brackets in the
          <filename>.rc</filename> file.
        </para>
        <programlisting>
/* BINRES idb_std_small.bmp */
{}
        </programlisting>
        <para>
          Then run <command>bin2res rsrc.rc</command>. It will merge
          the resources into the <filename>.rc</filename> file if the
          binary resources are newer than the.rc file. To force the
          resources into the <filename>.rc</filename> file use the
          <parameter>-f</parameter> switch. If there is already a
          resource with the same filename in the
          <filename>.rc</filename> file it gets overwritten.
        </para>
      </sect2>

      <sect2>
        <title>output of <command>bin2res</command></title>

        <programlisting>
bash-2.03# ../../tools/bin2res -d bin shres.rc
[000.ico:c][003.ico:c][008.ico:s][015.ico:s][034.ico:s]
        </programlisting>
        <para>
          <literal>s</literal> means skipped, <literal>c</literal>
          means changed.
        </para>
      </sect2>
    </sect1>
  </chapter>

<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-parent-document:("wine-doc.sgml" "set" "book" "part" "chapter" "")
End:
-->
