Sophie

Sophie

distrib > Fedora > 14 > x86_64 > by-pkgid > 1760bbde8794f5b323299b3a051b5bd6 > files > 107

openchange-devel-0.9-11.fc14.x86_64.rpm

<html>
  <head>
    <title>MAPIClientLibraries 0.9 API Documentation</title>
    <link href="doxygen.css" rel="stylesheet" type="text/css"/>
    <link href="apidocs.css" rel="stylesheet" type="text/css"/>
  </head>
  <body>
    <div id="website">
    <div class="header"></div>
      <div id="middle_side">
	<div id="right_side_home">
<!-- Generated by Doxygen 1.7.1 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="headertitle">
<h1>fetchappointment.c</h1>  </div>
</div>
<div class="contents">
<p>This example shows how to fetch an appointment from the server.This is very similar to the fetchmail.c example, except two minor changes:</p>
<ul>
<li>We change the default folder constant from olFolderInbox to olFolderContact so any further operations are performed on a child of the calendar folder.</li>
<li>We use <a class="el" href="mapidump_8c.html#ab2ff1d97ce0a3d728fa4b161058d52f0">mapidump_appointment()</a> rather than <a class="el" href="mapidump_8c.html#a9be627dc83377ae3bba27e6fa6367e16">mapidump_message()</a> to dump appointments on standard output.</li>
</ul>
<div class="fragment"><pre class="fragment"><span class="preprocessor">#include &lt;<a class="code" href="libmapi_8h.html">libmapi/libmapi.h</a>&gt;</span>

<span class="preprocessor">#define DEFAULT_PROFDB  &quot;%s/.openchange/profiles.ldb&quot;</span>
<span class="preprocessor"></span>
<span class="keywordtype">int</span> main(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> *argv[])
{
        <span class="keyword">enum</span> MAPISTATUS                 retval;
        TALLOC_CTX                      *mem_ctx;
        <span class="keyword">struct </span><a name="_a0"></a><a class="code" href="structmapi__session.html">mapi_session</a>             *session = NULL;
        <a name="_a1"></a><a class="code" href="structmapi__object.html">mapi_object_t</a>                   obj_store;
        <a class="code" href="structmapi__object.html">mapi_object_t</a>                   obj_folder;
        <a class="code" href="structmapi__object.html">mapi_object_t</a>                   obj_table;
        <a class="code" href="structmapi__object.html">mapi_object_t</a>                   obj_message;
        <span class="keyword">struct </span>mapi_SPropValue_array    props_all;
        <span class="keyword">struct </span>SRowSet                  rowset;
        <span class="keyword">struct </span>SPropTagArray            *SPropTagArray;
        <a class="code" href="mapi__object_8h.html#ac1033858b28ee56b5f4d1578c297b87e">mapi_id_t</a>                       id_inbox;
        <a class="code" href="mapi__object_8h.html#ac1033858b28ee56b5f4d1578c297b87e">mapi_id_t</a>                       *fid, *mid;
        <span class="keywordtype">char</span>                            *profname;
        <span class="keywordtype">char</span>                            *profdb;
        uint32_t                        Numerator;
        uint32_t                        Denominator;
        uint32_t                        i;

        mem_ctx = talloc_named(NULL, 0, <span class="stringliteral">&quot;fetchappointment&quot;</span>);

        <span class="comment">/* Initialize MAPI */</span>
        profdb = talloc_asprintf(mem_ctx, DEFAULT_PROFDB, getenv(<span class="stringliteral">&quot;HOME&quot;</span>));
        retval = <a name="a2"></a><a class="code" href="cdo__mapi_8c.html#acd55ca55043b2a1c025c370725f1292a">MAPIInitialize</a>(profdb);
        <a name="a3"></a><a class="code" href="mapicode_8h.html#a1ae43308421faa81c3f96d845722543b">MAPI_RETVAL_IF</a>(retval, retval, NULL);

        <span class="comment">/* Find Default Profile */</span>
        retval = <a name="a4"></a><a class="code" href="IProfAdmin_8c.html#a3e503caa812de7ec2d53f03f53ee4ca1">GetDefaultProfile</a>(&amp;profname);
        <a class="code" href="mapicode_8h.html#a1ae43308421faa81c3f96d845722543b">MAPI_RETVAL_IF</a>(retval, retval, NULL);

        <span class="comment">/* Log on EMSMDB and NSPI */</span>
        retval = <a name="a5"></a><a class="code" href="cdo__mapi_8c.html#a2a42a622654ad8f1020d152028efe67b">MapiLogonEx</a>(&amp;session, profname, NULL);
        <a class="code" href="mapicode_8h.html#a1ae43308421faa81c3f96d845722543b">MAPI_RETVAL_IF</a>(retval, retval, NULL);

        <span class="comment">/* Open Message Store */</span>
        <a name="a6"></a><a class="code" href="mapi__object_8c.html#af49c3130b8cb47f741ff652fc53c1364">mapi_object_init</a>(&amp;obj_store);
        retval = <a name="a7"></a><a class="code" href="IMAPISession_8c.html#a4fdd3c5db64deb2173a9bc921aee2dfd">OpenMsgStore</a>(session, &amp;obj_store);
        <a class="code" href="mapicode_8h.html#a1ae43308421faa81c3f96d845722543b">MAPI_RETVAL_IF</a>(retval, retval, NULL);

        <span class="comment">/* Find Inbox default folder */</span>
        retval = <a name="a8"></a><a class="code" href="proto_8h.html#adfab9c5b71d055ed18020ea9e8824a43">GetDefaultFolder</a>(&amp;obj_store, &amp;id_inbox, <a name="a9"></a><a class="code" href="mapidefs_8h.html#a810c333ff7334cd3ad15ef4b465fa50a">olFolderCalendar</a>);
        <a class="code" href="mapicode_8h.html#a1ae43308421faa81c3f96d845722543b">MAPI_RETVAL_IF</a>(retval, retval, NULL);

        <span class="comment">/* Open Inbox folder */</span>
        <a class="code" href="mapi__object_8c.html#af49c3130b8cb47f741ff652fc53c1364">mapi_object_init</a>(&amp;obj_folder);
        retval = <a name="a10"></a><a class="code" href="IMsgStore_8c.html#a8b90a95da815aaed2c2728c2599007c1">OpenFolder</a>(&amp;obj_store, id_inbox, &amp;obj_folder);
        <a class="code" href="mapicode_8h.html#a1ae43308421faa81c3f96d845722543b">MAPI_RETVAL_IF</a>(retval, retval, NULL);

        <span class="comment">/* Retrieve Inbox content table */</span>
        <a class="code" href="mapi__object_8c.html#af49c3130b8cb47f741ff652fc53c1364">mapi_object_init</a>(&amp;obj_table);
        retval = <a name="a11"></a><a class="code" href="IMAPIContainer_8c.html#a45f243bea0975066cc0112c57951e8a2">GetContentsTable</a>(&amp;obj_folder, &amp;obj_table, 0x0, NULL);
        <a class="code" href="mapicode_8h.html#a1ae43308421faa81c3f96d845722543b">MAPI_RETVAL_IF</a>(retval, retval, NULL);

        <span class="comment">/* Create the MAPI table view */</span>
        SPropTagArray = <a name="a12"></a><a class="code" href="property_8c.html#a08d81a8e5a6ec970d5ff891e325de402">set_SPropTagArray</a>(mem_ctx, 0x2, <a name="a13"></a><a class="code" href="mapitags_8h.html#a5b2ce4183a39afc8c9855b34dd62ca1c">PR_FID</a>, <a name="a14"></a><a class="code" href="mapitags_8h.html#ab3b955ff9e0f8dff5a841b3ee5955b51">PR_MID</a>);
        retval = <a name="a15"></a><a class="code" href="IMAPITable_8c.html#a266cd7f791acf5d9721f5e9e8ac5d49f">SetColumns</a>(&amp;obj_table, SPropTagArray);
        <a name="a16"></a><a class="code" href="IUnknown_8c.html#a52246b3bbc755db550d9d13e772dd479">MAPIFreeBuffer</a>(SPropTagArray);
        <a class="code" href="mapicode_8h.html#a1ae43308421faa81c3f96d845722543b">MAPI_RETVAL_IF</a>(retval, retval, mem_ctx);

        <span class="comment">/* Get current cursor position */</span>
        retval = <a name="a17"></a><a class="code" href="IMAPITable_8c.html#ac40c37ca1ee53f09c1ce9639fa7eaa53">QueryPosition</a>(&amp;obj_table, &amp;Numerator, &amp;Denominator);
        <a class="code" href="mapicode_8h.html#a1ae43308421faa81c3f96d845722543b">MAPI_RETVAL_IF</a>(retval, retval, NULL);

        <span class="comment">/* Iterate through rows */</span>
        <span class="keywordflow">while</span> ((retval = <a name="a18"></a><a class="code" href="IMAPITable_8c.html#ae5890f112bb41a03f6ecbe90a16687c4">QueryRows</a>(&amp;obj_table, Denominator, TBL_ADVANCE, &amp;rowset)) != -1 &amp;&amp; rowset.cRows) {
                <span class="keywordflow">for</span> (i = 0; i &lt; rowset.cRows; i++) {
                        fid = (<a class="code" href="mapi__object_8h.html#ac1033858b28ee56b5f4d1578c297b87e">mapi_id_t</a> *)<a name="a19"></a><a class="code" href="property_8c.html#a9b7f82ab0f8700a6ca1b1baf0a1d2d07">find_SPropValue_data</a>(&amp;(rowset.aRow[i]), PR_FID);
                        mid = (<a class="code" href="mapi__object_8h.html#ac1033858b28ee56b5f4d1578c297b87e">mapi_id_t</a> *)<a class="code" href="property_8c.html#a9b7f82ab0f8700a6ca1b1baf0a1d2d07">find_SPropValue_data</a>(&amp;(rowset.aRow[i]), PR_MID);
                        <a class="code" href="mapi__object_8c.html#af49c3130b8cb47f741ff652fc53c1364">mapi_object_init</a>(&amp;obj_message);
                        retval = <a name="a20"></a><a class="code" href="IStoreFolder_8c.html#a7b8869cb8d75ee0820b89bda12bea92c">OpenMessage</a>(&amp;obj_store, *fid, *mid, &amp;obj_message, 0x0);
                        <span class="keywordflow">if</span> (retval != MAPI_E_NOT_FOUND) {
                                retval = <a name="a21"></a><a class="code" href="IMAPIProp_8c.html#ae216a092d1517c67db706536631404ff">GetPropsAll</a>(&amp;obj_message, &amp;props_all);
                                <a name="a22"></a><a class="code" href="mapidump_8c.html#ab2ff1d97ce0a3d728fa4b161058d52f0">mapidump_appointment</a>(&amp;props_all, NULL);
                                <a name="a23"></a><a class="code" href="mapi__object_8c.html#ade2b4701fae8a110c476b894834831b9">mapi_object_release</a>(&amp;obj_message);
                        }
                }

        }

        <span class="comment">/* Release MAPI objects */</span>
        <a class="code" href="mapi__object_8c.html#ade2b4701fae8a110c476b894834831b9">mapi_object_release</a>(&amp;obj_table);
        <a class="code" href="mapi__object_8c.html#ade2b4701fae8a110c476b894834831b9">mapi_object_release</a>(&amp;obj_folder);

        <a name="a24"></a><a class="code" href="IMSProvider_8c.html#a9cd81eb7c3d90eda00c82f2d48915c2f">Logoff</a>(&amp;obj_store);

        <span class="comment">/* Uninitialize MAPI */</span>
        <a name="a25"></a><a class="code" href="cdo__mapi_8c.html#ab8230cc080e782e318a090786c3253de">MAPIUninitialize</a>();

        talloc_free(mem_ctx);

        <span class="keywordflow">return</span> (0);
}
</pre></div> </div>
</div>
</div>
<br/>
<table style="clear:both; margin: 0.5em auto; width:80%; text-align: center; background-color:#f8f8f8; border:2px solid #e0e0e0; padding:5px;">
<tr>
<td> 
  <img alt="Creative Commons License" src="CC_SomeRightsReserved.png" width="90" height="30" border="0" /><br />
  <img alt="Creative Commons Attribution icon" src="24px-Cc-by_white.svg.png" width="24" height="24" border="0" />
  <img alt="Creative Commons Share Alike icon" src="24px-Cc-sa_white.svg.png" width="24" height="24" border="0" />
</td>
<td> <i><strong class="selflink">This content</strong> is licensed under the Creative Commons<br />
Attribution ShareAlike License v. 3.0:<br />
<a href="http://creativecommons.org/licenses/by-sa/3.0/" class="external free" title="http://creativecommons.org/licenses/by-sa/3.0/" rel="nofollow">http://creativecommons.org/licenses/by-sa/3.0/</a></i>
</td></tr></table>
<br/>
</div>
</div>
</body>
</html>