You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gnucash/lib/libgsf-1.12.3/doc/xml/msole.xml

816 lines
38 KiB

<refentry id="gsf-MS-OLE2">
<refmeta>
<refentrytitle>MS OLE2</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>GSF Library</refmiscinfo>
</refmeta>
<refnamediv>
<refname>MS OLE2</refname><refpurpose></refpurpose>
</refnamediv>
<refsynopsisdiv><title>Synopsis</title>
<anchor id="GsfInfileMSOle"/><anchor id="GsfOutfileMSOle"/>
<synopsis>
<link linkend="GsfInfileMSOle-struct">GsfInfileMSOle</link>;
<link linkend="GsfInfile">GsfInfile</link>* <link linkend="gsf-infile-msole-new">gsf_infile_msole_new</link> (<link linkend="GsfInput">GsfInput</link> *source,
<link linkend="GError">GError</link> **err);
<link linkend="gboolean">gboolean</link> <link linkend="gsf-infile-msole-get-class-id">gsf_infile_msole_get_class_id</link> (<link linkend="GsfInfileMSOle">GsfInfileMSOle</link> const *ole,
<link linkend="guint8">guint8</link> *res);
<link linkend="GsfOutfileMSOle-struct">GsfOutfileMSOle</link>;
<link linkend="GsfOutfile">GsfOutfile</link>* <link linkend="gsf-outfile-msole-new">gsf_outfile_msole_new</link> (<link linkend="GsfOutput">GsfOutput</link> *sink);
<link linkend="GsfOutfile">GsfOutfile</link>* <link linkend="gsf-outfile-msole-new-full">gsf_outfile_msole_new_full</link> (<link linkend="GsfOutput">GsfOutput</link> *sink,
<link linkend="guint">guint</link> bb_size,
<link linkend="guint">guint</link> sb_size);
<link linkend="gboolean">gboolean</link> <link linkend="gsf-outfile-msole-set-class-id">gsf_outfile_msole_set_class_id</link> (<link linkend="GsfOutfileMSOle">GsfOutfileMSOle</link> *ole,
<link linkend="guint8">guint8</link> const *clsid);
<link linkend="GError">GError</link>* <link linkend="gsf-msole-metadata-read">gsf_msole_metadata_read</link> (<link linkend="GsfInput">GsfInput</link> *in,
<link linkend="GsfDocMetaData">GsfDocMetaData</link> *accum);
<link linkend="gboolean">gboolean</link> <link linkend="gsf-msole-metadata-write">gsf_msole_metadata_write</link> (<link linkend="GsfOutput">GsfOutput</link> *out,
<link linkend="GsfDocMetaData">GsfDocMetaData</link> const *meta_data,
<link linkend="gboolean">gboolean</link> doc_not_component);
<link linkend="GIConv">GIConv</link> <link linkend="gsf-msole-iconv-open-codepages-for-export">gsf_msole_iconv_open_codepages_for_export</link>
(<link linkend="int">int</link> codepage_to,
<link linkend="char">char</link> const *from);
<link linkend="GIConv">GIConv</link> <link linkend="gsf-msole-iconv-open-codepage-for-import">gsf_msole_iconv_open_codepage_for_import</link>
(<link linkend="char">char</link> const *to,
<link linkend="int">int</link> codepage);
<link linkend="GIConv">GIConv</link> <link linkend="gsf-msole-iconv-open-for-export">gsf_msole_iconv_open_for_export</link> (void);
<link linkend="GIConv">GIConv</link> <link linkend="gsf-msole-iconv-open-codepage-for-export">gsf_msole_iconv_open_codepage_for_export</link>
(<link linkend="int">int</link> codepage_to);
<link linkend="GIConv">GIConv</link> <link linkend="gsf-msole-iconv-open-for-import">gsf_msole_iconv_open_for_import</link> (<link linkend="int">int</link> codepage);
<link linkend="int">int</link> <link linkend="gsf-msole-iconv-win-codepage">gsf_msole_iconv_win_codepage</link> (void);
<link linkend="guint">guint</link> <link linkend="gsf-msole-codepage-to-lid">gsf_msole_codepage_to_lid</link> (<link linkend="int">int</link> codepage);
<link linkend="int">int</link> <link linkend="gsf-msole-lid-to-codepage">gsf_msole_lid_to_codepage</link> (<link linkend="guint">guint</link> lid);
<link linkend="gchar">gchar</link>* <link linkend="gsf-msole-lid-to-codepage-str">gsf_msole_lid_to_codepage_str</link> (<link linkend="guint">guint</link> lid);
<link linkend="guint">guint</link> <link linkend="gsf-msole-lid-for-language">gsf_msole_lid_for_language</link> (<link linkend="char">char</link> const *lang);
<link linkend="char">char</link>const * <link linkend="gsf-msole-language-for-lid">gsf_msole_language_for_lid</link> (<link linkend="guint">guint</link> lid);
<link linkend="GByteArray">GByteArray</link>* <link linkend="gsf-msole-inflate">gsf_msole_inflate</link> (<link linkend="GsfInput">GsfInput</link> *input,
<link linkend="gsf-off-t">gsf_off_t</link> offset);
#define <link linkend="OLE-HEADER-START-BAT:CAPS">OLE_HEADER_START_BAT</link>
#define <link linkend="OLE-HEADER-MAJOR-VER:CAPS">OLE_HEADER_MAJOR_VER</link>
#define <link linkend="OLE-HEADER-METABAT-SIZE:CAPS">OLE_HEADER_METABAT_SIZE</link>
#define <link linkend="OLE-HEADER-DIRENT-START:CAPS">OLE_HEADER_DIRENT_START</link>
#define <link linkend="OLE-HEADER-NUM-SBAT:CAPS">OLE_HEADER_NUM_SBAT</link>
#define <link linkend="OLE-HEADER-BB-SHIFT:CAPS">OLE_HEADER_BB_SHIFT</link>
#define <link linkend="OLE-HEADER-CSECTDIR:CAPS">OLE_HEADER_CSECTDIR</link>
#define <link linkend="OLE-HEADER-NUM-BAT:CAPS">OLE_HEADER_NUM_BAT</link>
#define <link linkend="OLE-HEADER-THRESHOLD:CAPS">OLE_HEADER_THRESHOLD</link>
#define <link linkend="OLE-HEADER-METABAT-BLOCK:CAPS">OLE_HEADER_METABAT_BLOCK</link>
#define <link linkend="OLE-HEADER-SBAT-START:CAPS">OLE_HEADER_SBAT_START</link>
#define <link linkend="OLE-HEADER-SIGNATURE:CAPS">OLE_HEADER_SIGNATURE</link>
#define <link linkend="OLE-HEADER-BYTE-ORDER:CAPS">OLE_HEADER_BYTE_ORDER</link>
#define <link linkend="OLE-HEADER-SB-SHIFT:CAPS">OLE_HEADER_SB_SHIFT</link>
#define <link linkend="OLE-HEADER-NUM-METABAT:CAPS">OLE_HEADER_NUM_METABAT</link>
#define <link linkend="OLE-HEADER-SIZE:CAPS">OLE_HEADER_SIZE</link>
#define <link linkend="OLE-HEADER-CLSID:CAPS">OLE_HEADER_CLSID</link>
#define <link linkend="OLE-HEADER-MINOR-VER:CAPS">OLE_HEADER_MINOR_VER</link>
#define <link linkend="OLE-DEFAULT-BB-SHIFT:CAPS">OLE_DEFAULT_BB_SHIFT</link>
#define <link linkend="OLE-DEFAULT-SB-SHIFT:CAPS">OLE_DEFAULT_SB_SHIFT</link>
#define <link linkend="DIRENT-DETAILS-SIZE:CAPS">DIRENT_DETAILS_SIZE</link>
#define <link linkend="DIRENT-SIZE:CAPS">DIRENT_SIZE</link>
#define <link linkend="DIRENT-NAME-LEN:CAPS">DIRENT_NAME_LEN</link>
#define <link linkend="DIRENT-TYPE-PROPERTY:CAPS">DIRENT_TYPE_PROPERTY</link>
#define <link linkend="DIRENT-TYPE-FILE:CAPS">DIRENT_TYPE_FILE</link>
#define <link linkend="DIRENT-MAGIC-END:CAPS">DIRENT_MAGIC_END</link>
#define <link linkend="DIRENT-TYPE-DIR:CAPS">DIRENT_TYPE_DIR</link>
#define <link linkend="DIRENT-MAX-NAME-SIZE:CAPS">DIRENT_MAX_NAME_SIZE</link>
#define <link linkend="DIRENT-FILE-SIZE:CAPS">DIRENT_FILE_SIZE</link>
#define <link linkend="DIRENT-FIRSTBLOCK:CAPS">DIRENT_FIRSTBLOCK</link>
#define <link linkend="DIRENT-TYPE-INVALID:CAPS">DIRENT_TYPE_INVALID</link>
#define <link linkend="DIRENT-USERFLAGS:CAPS">DIRENT_USERFLAGS</link>
#define <link linkend="DIRENT-COLOUR:CAPS">DIRENT_COLOUR</link>
#define <link linkend="DIRENT-MODIFY-TIME:CAPS">DIRENT_MODIFY_TIME</link>
#define <link linkend="DIRENT-TYPE-LOCKBYTES:CAPS">DIRENT_TYPE_LOCKBYTES</link>
#define <link linkend="DIRENT-CREATE-TIME:CAPS">DIRENT_CREATE_TIME</link>
#define <link linkend="DIRENT-PREV:CAPS">DIRENT_PREV</link>
#define <link linkend="DIRENT-NEXT:CAPS">DIRENT_NEXT</link>
#define <link linkend="DIRENT-CHILD:CAPS">DIRENT_CHILD</link>
#define <link linkend="DIRENT-TYPE:CAPS">DIRENT_TYPE</link>
#define <link linkend="DIRENT-CLSID:CAPS">DIRENT_CLSID</link>
#define <link linkend="DIRENT-TYPE-ROOTDIR:CAPS">DIRENT_TYPE_ROOTDIR</link>
#define <link linkend="BAT-MAGIC-METABAT:CAPS">BAT_MAGIC_METABAT</link>
#define <link linkend="BAT-MAGIC-BAT:CAPS">BAT_MAGIC_BAT</link>
#define <link linkend="BAT-INDEX-SIZE:CAPS">BAT_INDEX_SIZE</link>
#define <link linkend="BAT-MAGIC-END-OF-CHAIN:CAPS">BAT_MAGIC_END_OF_CHAIN</link>
#define <link linkend="BAT-MAGIC-UNUSED:CAPS">BAT_MAGIC_UNUSED</link>
</synopsis>
</refsynopsisdiv>
<refsect1>
<title>Object Hierarchy</title>
<synopsis>
<link linkend="GObject">GObject</link>
+----<link linkend="GsfInput">GsfInput</link>
+----<link linkend="GsfInfile">GsfInfile</link>
+----GsfInfileMSOle
</synopsis>
<synopsis>
<link linkend="GObject">GObject</link>
+----<link linkend="GsfOutput">GsfOutput</link>
+----<link linkend="GsfOutfile">GsfOutfile</link>
+----GsfOutfileMSOle
</synopsis>
</refsect1>
<refsect1>
<title>Description</title>
<para>
</para>
</refsect1>
<refsect1>
<title>Details</title>
<refsect2>
<title><anchor id="GsfInfileMSOle-struct"/>GsfInfileMSOle</title>
<indexterm><primary>GsfInfileMSOle</primary></indexterm><programlisting>typedef struct _GsfInfileMSOle GsfInfileMSOle;</programlisting>
<para>
</para></refsect2>
<refsect2>
<title><anchor id="gsf-infile-msole-new"/>gsf_infile_msole_new ()</title>
<indexterm><primary>gsf_infile_msole_new</primary></indexterm><programlisting><link linkend="GsfInfile">GsfInfile</link>* gsf_infile_msole_new (<link linkend="GsfInput">GsfInput</link> *source,
<link linkend="GError">GError</link> **err);</programlisting>
<para>
Opens the root directory of an MS OLE file.
NOTE : adds a reference to <parameter>source</parameter></para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>source</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>err</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara>: the new ole file handler
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="gsf-infile-msole-get-class-id"/>gsf_infile_msole_get_class_id ()</title>
<indexterm><primary>gsf_infile_msole_get_class_id</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> gsf_infile_msole_get_class_id (<link linkend="GsfInfileMSOle">GsfInfileMSOle</link> const *ole,
<link linkend="guint8">guint8</link> *res);</programlisting>
<para>
Retrieves the 16 byte indentifier (often a GUID in MS Windows apps)
stored within the directory associated with <parameter>ole</parameter> and stores it in <parameter>res</parameter>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>ole</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GsfInfileMSOle"><type>GsfInfileMSOle</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>res</parameter>&nbsp;:</term>
<listitem><simpara> 16 byte identifier (often a GUID in MS Windows apps)
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara>TRUE on success
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="GsfOutfileMSOle-struct"/>GsfOutfileMSOle</title>
<indexterm><primary>GsfOutfileMSOle</primary></indexterm><programlisting>typedef struct _GsfOutfileMSOle GsfOutfileMSOle;</programlisting>
<para>
</para></refsect2>
<refsect2>
<title><anchor id="gsf-outfile-msole-new"/>gsf_outfile_msole_new ()</title>
<indexterm><primary>gsf_outfile_msole_new</primary></indexterm><programlisting><link linkend="GsfOutfile">GsfOutfile</link>* gsf_outfile_msole_new (<link linkend="GsfOutput">GsfOutput</link> *sink);</programlisting>
<para>
Creates the root directory of an MS OLE file and manages the addition of
children.
</para>
<para>
NOTE : adds a reference to <parameter>sink</parameter></para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>sink</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GsfOutput"><type>GsfOutput</type></link> to hold the OLE2 file
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara>the new ole file handler
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="gsf-outfile-msole-new-full"/>gsf_outfile_msole_new_full ()</title>
<indexterm><primary>gsf_outfile_msole_new_full</primary></indexterm><programlisting><link linkend="GsfOutfile">GsfOutfile</link>* gsf_outfile_msole_new_full (<link linkend="GsfOutput">GsfOutput</link> *sink,
<link linkend="guint">guint</link> bb_size,
<link linkend="guint">guint</link> sb_size);</programlisting>
<para>
Creates the root directory of an MS OLE file and manages the addition of
children.
</para>
<para>
NOTE : adds a reference to <parameter>sink</parameter></para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>sink</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GsfOutput"><type>GsfOutput</type></link> to hold the OLE2 file.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>bb_size</parameter>&nbsp;:</term>
<listitem><simpara> size of large blocks.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>sb_size</parameter>&nbsp;:</term>
<listitem><simpara> size of small blocks.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara>the new ole file handler
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="gsf-outfile-msole-set-class-id"/>gsf_outfile_msole_set_class_id ()</title>
<indexterm><primary>gsf_outfile_msole_set_class_id</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> gsf_outfile_msole_set_class_id (<link linkend="GsfOutfileMSOle">GsfOutfileMSOle</link> *ole,
<link linkend="guint8">guint8</link> const *clsid);</programlisting>
<para>
Write <parameter>clsid</parameter> to the directory associated with <parameter>ole</parameter>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>ole</parameter>&nbsp;:</term>
<listitem><simpara> a <link linkend="GsfOutfileMSOle"><type>GsfOutfileMSOle</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>clsid</parameter>&nbsp;:</term>
<listitem><simpara> 16 byte identifier (often a GUID in MS Windows apps)
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara>TRUE on success.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="gsf-msole-metadata-read"/>gsf_msole_metadata_read ()</title>
<indexterm><primary>gsf_msole_metadata_read</primary></indexterm><programlisting><link linkend="GError">GError</link>* gsf_msole_metadata_read (<link linkend="GsfInput">GsfInput</link> *in,
<link linkend="GsfDocMetaData">GsfDocMetaData</link> *accum);</programlisting>
<para>
Read a stream formated as a set of MS OLE properties from <parameter>in</parameter> and store the
results in <parameter>accum</parameter>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>in</parameter>&nbsp;:</term>
<listitem><simpara> <link linkend="GsfInput"><type>GsfInput</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>accum</parameter>&nbsp;:</term>
<listitem><simpara> <link linkend="GsfDocMetaData"><type>GsfDocMetaData</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara>GError which the caller must free on error.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="gsf-msole-metadata-write"/>gsf_msole_metadata_write ()</title>
<indexterm><primary>gsf_msole_metadata_write</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> gsf_msole_metadata_write (<link linkend="GsfOutput">GsfOutput</link> *out,
<link linkend="GsfDocMetaData">GsfDocMetaData</link> const *meta_data,
<link linkend="gboolean">gboolean</link> doc_not_component);</programlisting>
<para>
</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>out</parameter>&nbsp;:</term>
<listitem><simpara> <link linkend="GsfOutput"><type>GsfOutput</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>meta_data</parameter>&nbsp;:</term>
<listitem><simpara> <link linkend="GsfDocMetaData"><type>GsfDocMetaData</type></link>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>doc_not_component</parameter>&nbsp;:</term>
<listitem><simpara> a kludge to differentiate DocumentSummary from Summary
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara>TRUE on success;
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="gsf-msole-iconv-open-codepages-for-export"/>gsf_msole_iconv_open_codepages_for_export ()</title>
<indexterm><primary>gsf_msole_iconv_open_codepages_for_export</primary></indexterm><programlisting><link linkend="GIConv">GIConv</link> gsf_msole_iconv_open_codepages_for_export
(<link linkend="int">int</link> codepage_to,
<link linkend="char">char</link> const *from);</programlisting>
<para>
</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>codepage_to</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>from</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara>an iconv converter to go from utf8 -> to our best guess at a useful
windows codepage.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="gsf-msole-iconv-open-codepage-for-import"/>gsf_msole_iconv_open_codepage_for_import ()</title>
<indexterm><primary>gsf_msole_iconv_open_codepage_for_import</primary></indexterm><programlisting><link linkend="GIConv">GIConv</link> gsf_msole_iconv_open_codepage_for_import
(<link linkend="char">char</link> const *to,
<link linkend="int">int</link> codepage);</programlisting>
<para>
</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>to</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>codepage</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara>an iconv converter for <parameter>codepage</parameter> -> utf8.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="gsf-msole-iconv-open-for-export"/>gsf_msole_iconv_open_for_export ()</title>
<indexterm><primary>gsf_msole_iconv_open_for_export</primary></indexterm><programlisting><link linkend="GIConv">GIConv</link> gsf_msole_iconv_open_for_export (void);</programlisting>
<para>
</para>
<para>
</para><variablelist role="params">
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara>an iconv convert to go from utf8 -> to our best guess at a useful
windows codepage.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="gsf-msole-iconv-open-codepage-for-export"/>gsf_msole_iconv_open_codepage_for_export ()</title>
<indexterm><primary>gsf_msole_iconv_open_codepage_for_export</primary></indexterm><programlisting><link linkend="GIConv">GIConv</link> gsf_msole_iconv_open_codepage_for_export
(<link linkend="int">int</link> codepage_to);</programlisting>
<para>
</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>codepage_to</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara>an iconv converter to go from utf8 -> to our best guess at a useful
windows codepage.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="gsf-msole-iconv-open-for-import"/>gsf_msole_iconv_open_for_import ()</title>
<indexterm><primary>gsf_msole_iconv_open_for_import</primary></indexterm><programlisting><link linkend="GIConv">GIConv</link> gsf_msole_iconv_open_for_import (<link linkend="int">int</link> codepage);</programlisting>
<para>
</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>codepage</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara>an iconv converter for single byte encodings <parameter>codepage</parameter> -> utf8.
Attempt to handle the semantics of a specification for multibyte encodings
since this is only supposed to be used for single bytes.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="gsf-msole-iconv-win-codepage"/>gsf_msole_iconv_win_codepage ()</title>
<indexterm><primary>gsf_msole_iconv_win_codepage</primary></indexterm><programlisting><link linkend="int">int</link> gsf_msole_iconv_win_codepage (void);</programlisting>
<para>
</para>
<para>
</para><variablelist role="params">
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara>our best guess at the applicable windows code page based on an
environment variable or the current locale.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="gsf-msole-codepage-to-lid"/>gsf_msole_codepage_to_lid ()</title>
<indexterm><primary>gsf_msole_codepage_to_lid</primary></indexterm><programlisting><link linkend="guint">guint</link> gsf_msole_codepage_to_lid (<link linkend="int">int</link> codepage);</programlisting>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>codepage</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara>
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="gsf-msole-lid-to-codepage"/>gsf_msole_lid_to_codepage ()</title>
<indexterm><primary>gsf_msole_lid_to_codepage</primary></indexterm><programlisting><link linkend="int">int</link> gsf_msole_lid_to_codepage (<link linkend="guint">guint</link> lid);</programlisting>
<para>
</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>lid</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara>our best guess at the codepage for the given language id
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="gsf-msole-lid-to-codepage-str"/>gsf_msole_lid_to_codepage_str ()</title>
<indexterm><primary>gsf_msole_lid_to_codepage_str</primary></indexterm><programlisting><link linkend="gchar">gchar</link>* gsf_msole_lid_to_codepage_str (<link linkend="guint">guint</link> lid);</programlisting>
<para>
</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>lid</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara>the Iconv codepage string for the given LID.
Return value must be <link linkend="g-free"><function>g_free()</function></link>'d
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="gsf-msole-lid-for-language"/>gsf_msole_lid_for_language ()</title>
<indexterm><primary>gsf_msole_lid_for_language</primary></indexterm><programlisting><link linkend="guint">guint</link> gsf_msole_lid_for_language (<link linkend="char">char</link> const *lang);</programlisting>
<para>
</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>lang</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara>the LID (Language Identifier) for the input language.
If lang is <literal>null</literal>, return 0x0400 ("-none-"), and not 0x0000 ("no proofing")
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="gsf-msole-language-for-lid"/>gsf_msole_language_for_lid ()</title>
<indexterm><primary>gsf_msole_language_for_lid</primary></indexterm><programlisting><link linkend="char">char</link>const * gsf_msole_language_for_lid (<link linkend="guint">guint</link> lid);</programlisting>
<para>
</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>lid</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara>the xx_YY style string (can be just xx or xxx) for the given LID.
Return value must not be freed. If the LID is not found, is set to 0x0400,
or is set to 0x0000, will return "-none-"
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="gsf-msole-inflate"/>gsf_msole_inflate ()</title>
<indexterm><primary>gsf_msole_inflate</primary></indexterm><programlisting><link linkend="GByteArray">GByteArray</link>* gsf_msole_inflate (<link linkend="GsfInput">GsfInput</link> *input,
<link linkend="gsf-off-t">gsf_off_t</link> offset);</programlisting>
<para>
Decompresses an LZ compressed stream.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>input</parameter>&nbsp;:</term>
<listitem><simpara> stream to read from
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>offset</parameter>&nbsp;:</term>
<listitem><simpara> offset into it for start byte of compresse stream
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara> A GByteArray that the caller is responsible for freeing
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="OLE-HEADER-START-BAT:CAPS"/>OLE_HEADER_START_BAT</title>
<indexterm><primary>OLE_HEADER_START_BAT</primary></indexterm><programlisting>#define OLE_HEADER_START_BAT 0x4c
</programlisting>
<para>
</para></refsect2>
<refsect2>
<title><anchor id="OLE-HEADER-MAJOR-VER:CAPS"/>OLE_HEADER_MAJOR_VER</title>
<indexterm><primary>OLE_HEADER_MAJOR_VER</primary></indexterm><programlisting>#define OLE_HEADER_MAJOR_VER 0x1a /* 0x3 been seen in wild */
</programlisting>
<para>
</para></refsect2>
<refsect2>
<title><anchor id="OLE-HEADER-METABAT-SIZE:CAPS"/>OLE_HEADER_METABAT_SIZE</title>
<indexterm><primary>OLE_HEADER_METABAT_SIZE</primary></indexterm><programlisting>#define OLE_HEADER_METABAT_SIZE ((OLE_HEADER_SIZE - OLE_HEADER_START_BAT) / BAT_INDEX_SIZE)
</programlisting>
<para>
</para></refsect2>
<refsect2>
<title><anchor id="OLE-HEADER-DIRENT-START:CAPS"/>OLE_HEADER_DIRENT_START</title>
<indexterm><primary>OLE_HEADER_DIRENT_START</primary></indexterm><programlisting>#define OLE_HEADER_DIRENT_START 0x30
</programlisting>
<para>
</para></refsect2>
<refsect2>
<title><anchor id="OLE-HEADER-NUM-SBAT:CAPS"/>OLE_HEADER_NUM_SBAT</title>
<indexterm><primary>OLE_HEADER_NUM_SBAT</primary></indexterm><programlisting>#define OLE_HEADER_NUM_SBAT 0x40
</programlisting>
<para>
</para></refsect2>
<refsect2>
<title><anchor id="OLE-HEADER-BB-SHIFT:CAPS"/>OLE_HEADER_BB_SHIFT</title>
<indexterm><primary>OLE_HEADER_BB_SHIFT</primary></indexterm><programlisting>#define OLE_HEADER_BB_SHIFT 0x1e
</programlisting>
<para>
</para></refsect2>
<refsect2>
<title><anchor id="OLE-HEADER-CSECTDIR:CAPS"/>OLE_HEADER_CSECTDIR</title>
<indexterm><primary>OLE_HEADER_CSECTDIR</primary></indexterm><programlisting>#define OLE_HEADER_CSECTDIR 0x28
</programlisting>
<para>
</para></refsect2>
<refsect2>
<title><anchor id="OLE-HEADER-NUM-BAT:CAPS"/>OLE_HEADER_NUM_BAT</title>
<indexterm><primary>OLE_HEADER_NUM_BAT</primary></indexterm><programlisting>#define OLE_HEADER_NUM_BAT 0x2c
</programlisting>
<para>
</para></refsect2>
<refsect2>
<title><anchor id="OLE-HEADER-THRESHOLD:CAPS"/>OLE_HEADER_THRESHOLD</title>
<indexterm><primary>OLE_HEADER_THRESHOLD</primary></indexterm><programlisting>#define OLE_HEADER_THRESHOLD 0x38
</programlisting>
<para>
</para></refsect2>
<refsect2>
<title><anchor id="OLE-HEADER-METABAT-BLOCK:CAPS"/>OLE_HEADER_METABAT_BLOCK</title>
<indexterm><primary>OLE_HEADER_METABAT_BLOCK</primary></indexterm><programlisting>#define OLE_HEADER_METABAT_BLOCK 0x44
</programlisting>
<para>
</para></refsect2>
<refsect2>
<title><anchor id="OLE-HEADER-SBAT-START:CAPS"/>OLE_HEADER_SBAT_START</title>
<indexterm><primary>OLE_HEADER_SBAT_START</primary></indexterm><programlisting>#define OLE_HEADER_SBAT_START 0x3c
</programlisting>
<para>
</para></refsect2>
<refsect2>
<title><anchor id="OLE-HEADER-SIGNATURE:CAPS"/>OLE_HEADER_SIGNATURE</title>
<indexterm><primary>OLE_HEADER_SIGNATURE</primary></indexterm><programlisting>#define OLE_HEADER_SIGNATURE 0x00
</programlisting>
<para>
</para></refsect2>
<refsect2>
<title><anchor id="OLE-HEADER-BYTE-ORDER:CAPS"/>OLE_HEADER_BYTE_ORDER</title>
<indexterm><primary>OLE_HEADER_BYTE_ORDER</primary></indexterm><programlisting>#define OLE_HEADER_BYTE_ORDER 0x1c /* 0xfe 0xff == Intel Little Endian */
</programlisting>
<para>
</para></refsect2>
<refsect2>
<title><anchor id="OLE-HEADER-SB-SHIFT:CAPS"/>OLE_HEADER_SB_SHIFT</title>
<indexterm><primary>OLE_HEADER_SB_SHIFT</primary></indexterm><programlisting>#define OLE_HEADER_SB_SHIFT 0x20
</programlisting>
<para>
</para></refsect2>
<refsect2>
<title><anchor id="OLE-HEADER-NUM-METABAT:CAPS"/>OLE_HEADER_NUM_METABAT</title>
<indexterm><primary>OLE_HEADER_NUM_METABAT</primary></indexterm><programlisting>#define OLE_HEADER_NUM_METABAT 0x48
</programlisting>
<para>
</para></refsect2>
<refsect2>
<title><anchor id="OLE-HEADER-SIZE:CAPS"/>OLE_HEADER_SIZE</title>
<indexterm><primary>OLE_HEADER_SIZE</primary></indexterm><programlisting>#define OLE_HEADER_SIZE 0x200 /* independent of big block size size */
</programlisting>
<para>
</para></refsect2>
<refsect2>
<title><anchor id="OLE-HEADER-CLSID:CAPS"/>OLE_HEADER_CLSID</title>
<indexterm><primary>OLE_HEADER_CLSID</primary></indexterm><programlisting>#define OLE_HEADER_CLSID 0x08 /* See ReadClassStg */
</programlisting>
<para>
</para></refsect2>
<refsect2>
<title><anchor id="OLE-HEADER-MINOR-VER:CAPS"/>OLE_HEADER_MINOR_VER</title>
<indexterm><primary>OLE_HEADER_MINOR_VER</primary></indexterm><programlisting>#define OLE_HEADER_MINOR_VER 0x18 /* 0x33 and 0x3e have been seen */
</programlisting>
<para>
</para></refsect2>
<refsect2>
<title><anchor id="OLE-DEFAULT-BB-SHIFT:CAPS"/>OLE_DEFAULT_BB_SHIFT</title>
<indexterm><primary>OLE_DEFAULT_BB_SHIFT</primary></indexterm><programlisting>#define OLE_DEFAULT_BB_SHIFT 9
</programlisting>
<para>
</para></refsect2>
<refsect2>
<title><anchor id="OLE-DEFAULT-SB-SHIFT:CAPS"/>OLE_DEFAULT_SB_SHIFT</title>
<indexterm><primary>OLE_DEFAULT_SB_SHIFT</primary></indexterm><programlisting>#define OLE_DEFAULT_SB_SHIFT 6
</programlisting>
<para>
</para></refsect2>
<refsect2>
<title><anchor id="DIRENT-DETAILS-SIZE:CAPS"/>DIRENT_DETAILS_SIZE</title>
<indexterm><primary>DIRENT_DETAILS_SIZE</primary></indexterm><programlisting>#define DIRENT_DETAILS_SIZE 0x40
</programlisting>
<para>
</para></refsect2>
<refsect2>
<title><anchor id="DIRENT-SIZE:CAPS"/>DIRENT_SIZE</title>
<indexterm><primary>DIRENT_SIZE</primary></indexterm><programlisting>#define DIRENT_SIZE (DIRENT_MAX_NAME_SIZE + DIRENT_DETAILS_SIZE)
</programlisting>
<para>
</para></refsect2>
<refsect2>
<title><anchor id="DIRENT-NAME-LEN:CAPS"/>DIRENT_NAME_LEN</title>
<indexterm><primary>DIRENT_NAME_LEN</primary></indexterm><programlisting>#define DIRENT_NAME_LEN 0x40 /* length in bytes incl 0 terminator */
</programlisting>
<para>
</para></refsect2>
<refsect2>
<title><anchor id="DIRENT-TYPE-PROPERTY:CAPS"/>DIRENT_TYPE_PROPERTY</title>
<indexterm><primary>DIRENT_TYPE_PROPERTY</primary></indexterm><programlisting>#define DIRENT_TYPE_PROPERTY 4 /* ? */
</programlisting>
<para>
</para></refsect2>
<refsect2>
<title><anchor id="DIRENT-TYPE-FILE:CAPS"/>DIRENT_TYPE_FILE</title>
<indexterm><primary>DIRENT_TYPE_FILE</primary></indexterm><programlisting>#define DIRENT_TYPE_FILE 2
</programlisting>
<para>
</para></refsect2>
<refsect2>
<title><anchor id="DIRENT-MAGIC-END:CAPS"/>DIRENT_MAGIC_END</title>
<indexterm><primary>DIRENT_MAGIC_END</primary></indexterm><programlisting>#define DIRENT_MAGIC_END 0xffffffff
</programlisting>
<para>
</para></refsect2>
<refsect2>
<title><anchor id="DIRENT-TYPE-DIR:CAPS"/>DIRENT_TYPE_DIR</title>
<indexterm><primary>DIRENT_TYPE_DIR</primary></indexterm><programlisting>#define DIRENT_TYPE_DIR 1
</programlisting>
<para>
</para></refsect2>
<refsect2>
<title><anchor id="DIRENT-MAX-NAME-SIZE:CAPS"/>DIRENT_MAX_NAME_SIZE</title>
<indexterm><primary>DIRENT_MAX_NAME_SIZE</primary></indexterm><programlisting>#define DIRENT_MAX_NAME_SIZE 0x40
</programlisting>
<para>
</para></refsect2>
<refsect2>
<title><anchor id="DIRENT-FILE-SIZE:CAPS"/>DIRENT_FILE_SIZE</title>
<indexterm><primary>DIRENT_FILE_SIZE</primary></indexterm><programlisting>#define DIRENT_FILE_SIZE 0x78
</programlisting>
<para>
</para></refsect2>
<refsect2>
<title><anchor id="DIRENT-FIRSTBLOCK:CAPS"/>DIRENT_FIRSTBLOCK</title>
<indexterm><primary>DIRENT_FIRSTBLOCK</primary></indexterm><programlisting>#define DIRENT_FIRSTBLOCK 0x74
</programlisting>
<para>
</para></refsect2>
<refsect2>
<title><anchor id="DIRENT-TYPE-INVALID:CAPS"/>DIRENT_TYPE_INVALID</title>
<indexterm><primary>DIRENT_TYPE_INVALID</primary></indexterm><programlisting>#define DIRENT_TYPE_INVALID 0
</programlisting>
<para>
</para></refsect2>
<refsect2>
<title><anchor id="DIRENT-USERFLAGS:CAPS"/>DIRENT_USERFLAGS</title>
<indexterm><primary>DIRENT_USERFLAGS</primary></indexterm><programlisting>#define DIRENT_USERFLAGS 0x60 /* only for dirs */
</programlisting>
<para>
</para></refsect2>
<refsect2>
<title><anchor id="DIRENT-COLOUR:CAPS"/>DIRENT_COLOUR</title>
<indexterm><primary>DIRENT_COLOUR</primary></indexterm><programlisting>#define DIRENT_COLOUR 0x43
</programlisting>
<para>
</para></refsect2>
<refsect2>
<title><anchor id="DIRENT-MODIFY-TIME:CAPS"/>DIRENT_MODIFY_TIME</title>
<indexterm><primary>DIRENT_MODIFY_TIME</primary></indexterm><programlisting>#define DIRENT_MODIFY_TIME 0x6c /* for files */
</programlisting>
<para>
</para></refsect2>
<refsect2>
<title><anchor id="DIRENT-TYPE-LOCKBYTES:CAPS"/>DIRENT_TYPE_LOCKBYTES</title>
<indexterm><primary>DIRENT_TYPE_LOCKBYTES</primary></indexterm><programlisting>#define DIRENT_TYPE_LOCKBYTES 3 /* ? */
</programlisting>
<para>
</para></refsect2>
<refsect2>
<title><anchor id="DIRENT-CREATE-TIME:CAPS"/>DIRENT_CREATE_TIME</title>
<indexterm><primary>DIRENT_CREATE_TIME</primary></indexterm><programlisting>#define DIRENT_CREATE_TIME 0x64 /* for files */
</programlisting>
<para>
</para></refsect2>
<refsect2>
<title><anchor id="DIRENT-PREV:CAPS"/>DIRENT_PREV</title>
<indexterm><primary>DIRENT_PREV</primary></indexterm><programlisting>#define DIRENT_PREV 0x44
</programlisting>
<para>
</para></refsect2>
<refsect2>
<title><anchor id="DIRENT-NEXT:CAPS"/>DIRENT_NEXT</title>
<indexterm><primary>DIRENT_NEXT</primary></indexterm><programlisting>#define DIRENT_NEXT 0x48
</programlisting>
<para>
</para></refsect2>
<refsect2>
<title><anchor id="DIRENT-CHILD:CAPS"/>DIRENT_CHILD</title>
<indexterm><primary>DIRENT_CHILD</primary></indexterm><programlisting>#define DIRENT_CHILD 0x4c
</programlisting>
<para>
</para></refsect2>
<refsect2>
<title><anchor id="DIRENT-TYPE:CAPS"/>DIRENT_TYPE</title>
<indexterm><primary>DIRENT_TYPE</primary></indexterm><programlisting>#define DIRENT_TYPE 0x42
</programlisting>
<para>
</para></refsect2>
<refsect2>
<title><anchor id="DIRENT-CLSID:CAPS"/>DIRENT_CLSID</title>
<indexterm><primary>DIRENT_CLSID</primary></indexterm><programlisting>#define DIRENT_CLSID 0x50 /* only for dirs */
</programlisting>
<para>
</para></refsect2>
<refsect2>
<title><anchor id="DIRENT-TYPE-ROOTDIR:CAPS"/>DIRENT_TYPE_ROOTDIR</title>
<indexterm><primary>DIRENT_TYPE_ROOTDIR</primary></indexterm><programlisting>#define DIRENT_TYPE_ROOTDIR 5
</programlisting>
<para>
</para></refsect2>
<refsect2>
<title><anchor id="BAT-MAGIC-METABAT:CAPS"/>BAT_MAGIC_METABAT</title>
<indexterm><primary>BAT_MAGIC_METABAT</primary></indexterm><programlisting>#define BAT_MAGIC_METABAT 0xfffffffc /* a metabat block -4 */
</programlisting>
<para>
</para></refsect2>
<refsect2>
<title><anchor id="BAT-MAGIC-BAT:CAPS"/>BAT_MAGIC_BAT</title>
<indexterm><primary>BAT_MAGIC_BAT</primary></indexterm><programlisting>#define BAT_MAGIC_BAT 0xfffffffd /* a bat block, -3 */
</programlisting>
<para>
</para></refsect2>
<refsect2>
<title><anchor id="BAT-INDEX-SIZE:CAPS"/>BAT_INDEX_SIZE</title>
<indexterm><primary>BAT_INDEX_SIZE</primary></indexterm><programlisting>#define BAT_INDEX_SIZE 4
</programlisting>
<para>
</para></refsect2>
<refsect2>
<title><anchor id="BAT-MAGIC-END-OF-CHAIN:CAPS"/>BAT_MAGIC_END_OF_CHAIN</title>
<indexterm><primary>BAT_MAGIC_END_OF_CHAIN</primary></indexterm><programlisting>#define BAT_MAGIC_END_OF_CHAIN 0xfffffffe /* -2 */
</programlisting>
<para>
</para></refsect2>
<refsect2>
<title><anchor id="BAT-MAGIC-UNUSED:CAPS"/>BAT_MAGIC_UNUSED</title>
<indexterm><primary>BAT_MAGIC_UNUSED</primary></indexterm><programlisting>#define BAT_MAGIC_UNUSED 0xffffffff /* -1 */
</programlisting>
<para>
</para></refsect2>
</refsect1>
</refentry>