<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 Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="annotated.html"><span>Data 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 <<a class="code" href="libmapi_8h.html">libmapi/libmapi.h</a>></span> <span class="preprocessor">#define DEFAULT_PROFDB "%s/.openchange/profiles.ldb"</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">"fetchappointment"</span>); <span class="comment">/* Initialize MAPI */</span> profdb = talloc_asprintf(mem_ctx, DEFAULT_PROFDB, getenv(<span class="stringliteral">"HOME"</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>(&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>(&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>(&obj_store); retval = <a name="a7"></a><a class="code" href="IMAPISession_8c.html#a4fdd3c5db64deb2173a9bc921aee2dfd">OpenMsgStore</a>(session, &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>(&obj_store, &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>(&obj_folder); retval = <a name="a10"></a><a class="code" href="IMsgStore_8c.html#a8b90a95da815aaed2c2728c2599007c1">OpenFolder</a>(&obj_store, id_inbox, &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>(&obj_table); retval = <a name="a11"></a><a class="code" href="IMAPIContainer_8c.html#a45f243bea0975066cc0112c57951e8a2">GetContentsTable</a>(&obj_folder, &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>(&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>(&obj_table, &Numerator, &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>(&obj_table, Denominator, TBL_ADVANCE, &rowset)) != -1 && rowset.cRows) { <span class="keywordflow">for</span> (i = 0; i < 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>(&(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>(&(rowset.aRow[i]), PR_MID); <a class="code" href="mapi__object_8c.html#af49c3130b8cb47f741ff652fc53c1364">mapi_object_init</a>(&obj_message); retval = <a name="a20"></a><a class="code" href="IStoreFolder_8c.html#a7b8869cb8d75ee0820b89bda12bea92c">OpenMessage</a>(&obj_store, *fid, *mid, &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>(&obj_message, &props_all); <a name="a22"></a><a class="code" href="mapidump_8c.html#ab2ff1d97ce0a3d728fa4b161058d52f0">mapidump_appointment</a>(&props_all, NULL); <a name="a23"></a><a class="code" href="mapi__object_8c.html#ade2b4701fae8a110c476b894834831b9">mapi_object_release</a>(&obj_message); } } } <span class="comment">/* Release MAPI objects */</span> <a class="code" href="mapi__object_8c.html#ade2b4701fae8a110c476b894834831b9">mapi_object_release</a>(&obj_table); <a class="code" href="mapi__object_8c.html#ade2b4701fae8a110c476b894834831b9">mapi_object_release</a>(&obj_folder); <a name="a24"></a><a class="code" href="IMSProvider_8c.html#a9cd81eb7c3d90eda00c82f2d48915c2f">Logoff</a>(&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>