<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 class="current"><a href="files.html"><span>Files</span></a></li> <li><a href="examples.html"><span>Examples</span></a></li> </ul> </div> <div class="tabs2"> <ul class="tablist"> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>Globals</span></a></li> </ul> </div> </div> <div class="header"> <div class="summary"> <a href="#define-members">Defines</a> </div> <div class="headertitle"> <h1>libmapi/dlinklist.h File Reference</h1> </div> </div> <div class="contents"> <table class="memberdecls"> <tr><td colspan="2"><h2><a name="define-members"></a> Defines</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dlinklist_8h.html#a416df1fd77df5d1568779b3c62dba178">DLIST_ADD</a>(list, p)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dlinklist_8h.html#a60309816955aa158d358d8b15dc6c24b">DLIST_ADD_AFTER</a>(list, p, el)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dlinklist_8h.html#af7c5a7c3eec1ce45a17ffec9cb38c3c9">DLIST_ADD_END</a>(list, p, type)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dlinklist_8h.html#a986473cf6102ab05afa4b131c5227d4d">DLIST_CONCATENATE</a>(list1, list2, type)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dlinklist_8h.html#a9e74549c70c8a1628ffaba82945d0e76">DLIST_DEMOTE</a>(list, p, tmp)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dlinklist_8h.html#a26bfa3117721350fa5a6efa4bd6813f0">DLIST_PROMOTE</a>(list, p)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="dlinklist_8h.html#aa0a965f93e7b5bf2c7c95b380f5af2df">DLIST_REMOVE</a>(list, p)</td></tr> </table> <hr/><h2>Define Documentation</h2> <a class="anchor" id="a416df1fd77df5d1568779b3c62dba178"></a><!-- doxytag: member="dlinklist.h::DLIST_ADD" ref="a416df1fd77df5d1568779b3c62dba178" args="(list, p)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define DLIST_ADD</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">list, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">p</td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <b>Value:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> { \ <span class="keywordflow">if</span> (!(list)) { \ (list) = (p); \ (p)->next = (p)->prev = NULL; \ } <span class="keywordflow">else</span> { \ (list)->prev = (p); \ (p)->next = (list); \ (p)->prev = NULL; \ (list) = (p); \ }\ } <span class="keywordflow">while</span> (0) </pre></div> <p>Referenced by <a class="el" href="proto_8h.html#ae26c5f046e906601b2dd367f738e1658">CreateBookmark()</a>, <a class="el" href="proto_8h.html#a70461eb0bd7972c833e5aeeed170d56b">mapi_id_array_add_id()</a>, <a class="el" href="proto_8h.html#a3dfe35b954981867acae68bba8793423">mapi_id_array_add_obj()</a>, <a class="el" href="proto_8h.html#a0491efca1915d6709062bcd31b26cadf">MapiLogonProvider()</a>, and <a class="el" href="proto_8h.html#a73891d48327dd1afee64dba5b7cfddc0">Subscribe()</a>.</p> </div> </div> <a class="anchor" id="a60309816955aa158d358d8b15dc6c24b"></a><!-- doxytag: member="dlinklist.h::DLIST_ADD_AFTER" ref="a60309816955aa158d358d8b15dc6c24b" args="(list, p, el)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define DLIST_ADD_AFTER</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">list, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">p, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">el</td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <b>Value:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> { \ <span class="keywordflow">if</span> (!(list) || !(el)) { \ <a class="code" href="dlinklist_8h.html#a416df1fd77df5d1568779b3c62dba178">DLIST_ADD</a>(list, p); \ } <span class="keywordflow">else</span> { \ p->prev = el; \ p->next = el->next; \ el->next = p; \ <span class="keywordflow">if</span> (p->next) p->next->prev = p; \ }\ } <span class="keywordflow">while</span> (0) </pre></div> </div> </div> <a class="anchor" id="af7c5a7c3eec1ce45a17ffec9cb38c3c9"></a><!-- doxytag: member="dlinklist.h::DLIST_ADD_END" ref="af7c5a7c3eec1ce45a17ffec9cb38c3c9" args="(list, p, type)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define DLIST_ADD_END</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">list, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">p, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">type</td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <b>Value:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> { \ <span class="keywordflow">if</span> (!(list)) { \ (list) = (p); \ (p)->next = (p)->prev = NULL; \ } <span class="keywordflow">else</span> { \ type tmp; \ <span class="keywordflow">for</span> (tmp = (list); tmp->next; tmp = tmp->next) ; \ tmp->next = (p); \ (p)->next = NULL; \ (p)->prev = tmp; \ } \ } <span class="keywordflow">while</span> (0) </pre></div> </div> </div> <a class="anchor" id="a986473cf6102ab05afa4b131c5227d4d"></a><!-- doxytag: member="dlinklist.h::DLIST_CONCATENATE" ref="a986473cf6102ab05afa4b131c5227d4d" args="(list1, list2, type)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define DLIST_CONCATENATE</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">list1, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">list2, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">type</td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <b>Value:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> { \ <span class="keywordflow">if</span> (!(list1)) { \ (list1) = (list2); \ } <span class="keywordflow">else</span> { \ type tmp; \ <span class="keywordflow">for</span> (tmp = (list1); tmp->next; tmp = tmp->next) ; \ tmp->next = (list2); \ <span class="keywordflow">if</span> (list2) { \ (list2)->prev = tmp; \ } \ } \ } <span class="keywordflow">while</span> (0) </pre></div> </div> </div> <a class="anchor" id="a9e74549c70c8a1628ffaba82945d0e76"></a><!-- doxytag: member="dlinklist.h::DLIST_DEMOTE" ref="a9e74549c70c8a1628ffaba82945d0e76" args="(list, p, tmp)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define DLIST_DEMOTE</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">list, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">p, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">tmp</td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <b>Value:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> { \ <a class="code" href="dlinklist_8h.html#aa0a965f93e7b5bf2c7c95b380f5af2df">DLIST_REMOVE</a>(list, p); \ <a class="code" href="dlinklist_8h.html#af7c5a7c3eec1ce45a17ffec9cb38c3c9">DLIST_ADD_END</a>(list, p, tmp); \ } <span class="keywordflow">while</span> (0) </pre></div> </div> </div> <a class="anchor" id="a26bfa3117721350fa5a6efa4bd6813f0"></a><!-- doxytag: member="dlinklist.h::DLIST_PROMOTE" ref="a26bfa3117721350fa5a6efa4bd6813f0" args="(list, p)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define DLIST_PROMOTE</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">list, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">p</td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <b>Value:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> { \ <a class="code" href="dlinklist_8h.html#aa0a965f93e7b5bf2c7c95b380f5af2df">DLIST_REMOVE</a>(list, p); \ <a class="code" href="dlinklist_8h.html#a416df1fd77df5d1568779b3c62dba178">DLIST_ADD</a>(list, p); \ } <span class="keywordflow">while</span> (0) </pre></div> </div> </div> <a class="anchor" id="aa0a965f93e7b5bf2c7c95b380f5af2df"></a><!-- doxytag: member="dlinklist.h::DLIST_REMOVE" ref="aa0a965f93e7b5bf2c7c95b380f5af2df" args="(list, p)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define DLIST_REMOVE</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">list, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname">p</td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <b>Value:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> { \ <span class="keywordflow">if</span> ((p) == (list)) { \ (list) = (p)->next; \ <span class="keywordflow">if</span> (list) (list)->prev = NULL; \ } <span class="keywordflow">else</span> { \ <span class="keywordflow">if</span> ((p)->prev) (p)->prev->next = (p)->next; \ <span class="keywordflow">if</span> ((p)->next) (p)->next->prev = (p)->prev; \ } \ <span class="keywordflow">if</span> ((p) && ((p) != (list))) (p)->next = (p)->prev = NULL; \ } <span class="keywordflow">while</span> (0) </pre></div> <p>Referenced by <a class="el" href="proto_8h.html#aa90bfd47eded92fdd5e73cb1a0023fd3">FreeBookmark()</a>, <a class="el" href="proto_8h.html#a6a291e98161f80abee74f43f13c26b72">Logoff()</a>, <a class="el" href="proto_8h.html#a99ff1e3fa96eea20c58ddb664cea4be6">mapi_id_array_del_id()</a>, <a class="el" href="proto_8h.html#ae8bb320a745b1ad4e4f01a8436a6c009">mapi_id_array_del_obj()</a>, and <a class="el" href="proto_8h.html#ade9573642b24da1b4fbdbde2092f6048">Unsubscribe()</a>.</p> </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>