<refentry id="gsf-Infile-reading-structed-files">
<refmeta>
<refentrytitle role="top_of_page">Infile reading structed files</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>GSF Library</refmiscinfo>
</refmeta>

<refnamediv>
<refname>Infile reading structed files</refname>
<refpurpose></refpurpose>
<!--[<xref linkend="desc" endterm="desc.title"/>]-->
</refnamediv>

<refsynopsisdiv role="synopsis">
<title role="synopsis.title">Synopsis</title>
<anchor id="GsfInfile"/>
<synopsis>



            <link linkend="GsfInfile-struct">GsfInfile</link>;
<link linkend="int">int</link>         <link linkend="gsf-infile-num-children">gsf_infile_num_children</link>         (<link linkend="GsfInfile">GsfInfile</link> *infile);
<link linkend="GsfInput">GsfInput</link>*   <link linkend="gsf-infile-child-by-index">gsf_infile_child_by_index</link>       (<link linkend="GsfInfile">GsfInfile</link> *infile,
                                             <link linkend="int">int</link> i);
<link linkend="GsfInput">GsfInput</link>*   <link linkend="gsf-infile-child-by-name">gsf_infile_child_by_name</link>        (<link linkend="GsfInfile">GsfInfile</link> *infile,
                                             <link linkend="char">char</link> const *name);
<link linkend="GsfInput">GsfInput</link>*   <link linkend="gsf-infile-child-by-vname">gsf_infile_child_by_vname</link>       (<link linkend="GsfInfile">GsfInfile</link> *infile,
                                             <link linkend="char">char</link> const *name,
                                             ...);
<link linkend="char">char</link>const * <link linkend="gsf-infile-name-by-index">gsf_infile_name_by_index</link>        (<link linkend="GsfInfile">GsfInfile</link> *infile,
                                             <link linkend="int">int</link> i);

</synopsis>
</refsynopsisdiv>

<refsect1 role="object_hierarchy">
<title role="object_hierarchy.title">Object Hierarchy</title>
<synopsis>

  <link linkend="GObject">GObject</link>
   +----<link linkend="GsfInput">GsfInput</link>
         +----GsfInfile
               +----<link linkend="GsfInfileMSOle">GsfInfileMSOle</link>
               +----<link linkend="GsfInfileStdio">GsfInfileStdio</link>
               +----<link linkend="GsfInfileZip">GsfInfileZip</link>
               +----<link linkend="GsfStructuredBlob">GsfStructuredBlob</link>
</synopsis>

</refsect1>








<refsect1 role="desc">
<title role="desc.title">Description</title>
<para>

</para>
</refsect1>

<refsect1 role="details">
<title role="details.title">Details</title>
<refsect2>
<title><anchor id="GsfInfile-struct" role="struct"/>GsfInfile</title>
<indexterm><primary>GsfInfile</primary></indexterm><programlisting>typedef struct _GsfInfile GsfInfile;</programlisting>
<para>

</para></refsect2>
<refsect2>
<title><anchor id="gsf-infile-num-children" role="function"/>gsf_infile_num_children ()</title>
<indexterm><primary>gsf_infile_num_children</primary></indexterm><programlisting><link linkend="int">int</link>         gsf_infile_num_children         (<link linkend="GsfInfile">GsfInfile</link> *infile);</programlisting>
<para>
</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>infile</parameter>&nbsp;:</term>
<listitem><simpara> the structured storage
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara>the number of children the storage has, or -1 if the storage can not
	have children.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="gsf-infile-child-by-index" role="function"/>gsf_infile_child_by_index ()</title>
<indexterm><primary>gsf_infile_child_by_index</primary></indexterm><programlisting><link linkend="GsfInput">GsfInput</link>*   gsf_infile_child_by_index       (<link linkend="GsfInfile">GsfInfile</link> *infile,
                                             <link linkend="int">int</link> i);</programlisting>
<para>
TODO : For 2.0 api will change to include a GError.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>infile</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>i</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara>a newly created child which must be unrefed.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="gsf-infile-child-by-name" role="function"/>gsf_infile_child_by_name ()</title>
<indexterm><primary>gsf_infile_child_by_name</primary></indexterm><programlisting><link linkend="GsfInput">GsfInput</link>*   gsf_infile_child_by_name        (<link linkend="GsfInfile">GsfInfile</link> *infile,
                                             <link linkend="char">char</link> const *name);</programlisting>
<para>
TODO : For 2.0 api will change to include a GError.</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>infile</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>name</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara>a newly created child which must be unrefed.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="gsf-infile-child-by-vname" role="function"/>gsf_infile_child_by_vname ()</title>
<indexterm><primary>gsf_infile_child_by_vname</primary></indexterm><programlisting><link linkend="GsfInput">GsfInput</link>*   gsf_infile_child_by_vname       (<link linkend="GsfInfile">GsfInfile</link> *infile,
                                             <link linkend="char">char</link> const *name,
                                             ...);</programlisting>
<para>
</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>infile</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>name</parameter>&nbsp;:</term>
<listitem><simpara> A <link linkend="null"><literal>null</literal></link> terminated list of names
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>...</parameter>&nbsp;:</term>
<listitem><simpara> the rest of the names
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara>a newly created child which must be unrefed.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="gsf-infile-name-by-index" role="function"/>gsf_infile_name_by_index ()</title>
<indexterm><primary>gsf_infile_name_by_index</primary></indexterm><programlisting><link linkend="char">char</link>const * gsf_infile_name_by_index        (<link linkend="GsfInfile">GsfInfile</link> *infile,
                                             <link linkend="int">int</link> i);</programlisting>
<para>
</para>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>infile</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>i</parameter>&nbsp;:</term>
<listitem><simpara>
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis>&nbsp;:</term><listitem><simpara>the utf8 encoded name of the <parameter>i</parameter>-th child
<emphasis>DO NOT FREE THE STRING.</emphasis>
</simpara></listitem></varlistentry>
</variablelist></refsect2>

</refsect1>




</refentry>
