Sophie

Sophie

distrib > * > 2010.0 > * > by-pkgid > 943b1476818e5ec34d7058ed3b879448 > files > 84

libmapi-devel-0.8.2-1.1481.3mdv2010.0.i586.rpm

<html>
  <head>
    <title>MAPIClientLibraries 0.8 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.5.9 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <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 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="tabs">
    <ul>
      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
</div>
<div class="contents">
<h1>libmapi/IMAPITable.c File Reference</h1>Operations on tables.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;libmapi/libmapi.h&gt;</code><br>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">_PUBLIC_ enum MAPISTATUS&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="IMAPITable_8c.html#366b1c26a42bdcca98bada5506995811">Abort</a> (mapi_object_t *obj_table, uint8_t *TableStatus)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">_PUBLIC_ enum MAPISTATUS&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="IMAPITable_8c.html#70a2ad3195e56fdcbb4d19f0e4c39a86">CollapseRow</a> (mapi_object_t *obj_table, uint64_t categoryId, uint32_t *rowCount)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">_PUBLIC_ enum MAPISTATUS&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="IMAPITable_8c.html#f08bb8c8425b58d2d01f30e8016058f6">CreateBookmark</a> (mapi_object_t *obj_table, uint32_t *lpbkPosition)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">_PUBLIC_ enum MAPISTATUS&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="IMAPITable_8c.html#700c726ea0c7d59b0d01f3f9e5185232">ExpandRow</a> (mapi_object_t *obj_table, uint64_t categoryId, uint16_t maxRows, struct SRowSet *rowData, uint32_t *expandedRowCount)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">_PUBLIC_ enum MAPISTATUS&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="IMAPITable_8c.html#33d649eae788f87a2dfa82d05c6de0d5">FindRow</a> (mapi_object_t *obj_table, struct mapi_SRestriction *res, uint32_t bkOrigin, uint8_t ulFlags, struct SRowSet *SRowSet)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">_PUBLIC_ enum MAPISTATUS&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="IMAPITable_8c.html#8325d57fa9b2e520401a243e0c0360e6">FreeBookmark</a> (mapi_object_t *obj_table, uint32_t bkPosition)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="IMAPITable_8c.html#7de0279fd6572a123e0a9f512bc55af3">get_mapi_SRestriction_size</a> (struct mapi_SRestriction *res)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">_PUBLIC_ enum MAPISTATUS&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="IMAPITable_8c.html#3bbb8084d80870c5c0e6ef64070405ae">GetCollapseState</a> (mapi_object_t *obj_table, uint64_t rowId, uint32_t rowInstanceNumber, struct SBinary_short *CollapseState)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">_PUBLIC_ enum MAPISTATUS&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="IMAPITable_8c.html#dd0122704d685e475fc70acc2070fb09">GetStatus</a> (mapi_object_t *obj_table, uint8_t *TableStatus)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">_PUBLIC_ enum MAPISTATUS&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="IMAPITable_8c.html#c905b2b4720f6415997da87713933055">QueryColumns</a> (mapi_object_t *obj_table, struct SPropTagArray *cols)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">_PUBLIC_ enum MAPISTATUS&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="IMAPITable_8c.html#c40c37ca1ee53f09c1ce9639fa7eaa53">QueryPosition</a> (mapi_object_t *obj_table, uint32_t *Numerator, uint32_t *Denominator)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">_PUBLIC_ enum MAPISTATUS&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="IMAPITable_8c.html#e5890f112bb41a03f6ecbe90a16687c4">QueryRows</a> (mapi_object_t *obj_table, uint16_t row_count, enum QueryRowsFlags flags, struct SRowSet *rowSet)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">_PUBLIC_ enum MAPISTATUS&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="IMAPITable_8c.html#bccd8368ba3a663c6d76a163b30fe998">Reset</a> (mapi_object_t *obj_table)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">_PUBLIC_ enum MAPISTATUS&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="IMAPITable_8c.html#923e68b5a576c5e87defbe78a269d07c">Restrict</a> (mapi_object_t *obj_table, struct mapi_SRestriction *res, uint8_t *TableStatus)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">_PUBLIC_ enum MAPISTATUS&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="IMAPITable_8c.html#4ddf3e5538181452a0ffd7167e46cb5c">SeekRow</a> (mapi_object_t *obj_table, enum BOOKMARK origin, int32_t offset, uint32_t *row)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">_PUBLIC_ enum MAPISTATUS&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="IMAPITable_8c.html#d92bff21ddedab8a1bd53476744d60df">SeekRowApprox</a> (mapi_object_t *obj_table, uint32_t ulNumerator, uint32_t ulDenominator)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">_PUBLIC_ enum MAPISTATUS&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="IMAPITable_8c.html#d2d719b843217fd96ceb4f1f3f83994e">SeekRowBookmark</a> (mapi_object_t *obj_table, uint32_t lpbkPosition, uint32_t RowCount, uint32_t *row)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">_PUBLIC_ enum MAPISTATUS&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="IMAPITable_8c.html#eb30219dbd2163d0238905c054b789e6">SetCollapseState</a> (mapi_object_t *obj_table, struct SBinary_short *CollapseState)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">_PUBLIC_ enum MAPISTATUS&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="IMAPITable_8c.html#266cd7f791acf5d9721f5e9e8ac5d49f">SetColumns</a> (mapi_object_t *obj_table, struct SPropTagArray *properties)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">_PUBLIC_ enum MAPISTATUS&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="IMAPITable_8c.html#62966b2e1623c625019195ebcc3d5359">SortTable</a> (mapi_object_t *obj_table, struct SSortOrderSet *lpSortCriteria)</td></tr>

</table>
<hr><h2>Detailed Description</h2>
Operations on tables. 
<p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="366b1c26a42bdcca98bada5506995811"></a><!-- doxytag: member="IMAPITable.c::Abort" ref="366b1c26a42bdcca98bada5506995811" args="(mapi_object_t *obj_table, uint8_t *TableStatus)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">_PUBLIC_ enum MAPISTATUS Abort           </td>
          <td>(</td>
          <td class="paramtype">mapi_object_t *&nbsp;</td>
          <td class="paramname"> <em>obj_table</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&nbsp;</td>
          <td class="paramname"> <em>TableStatus</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Aborts an asynchronous table operation in progress<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>obj_table</em>&nbsp;</td><td>the table object where we want to abort an asynchronous operation </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>TableStatus</em>&nbsp;</td><td>pointer on the table status returned by the operation</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>MAPI_E_SUCCESS on success, otherwise MAPI error.</dd></dl>
<dl class="note" compact><dt><b>Note:</b></dt><dd>Developers may also call <a class="el" href="IUnknown_8c.html#8237c7fc76377cb07f3f55920d6f20de">GetLastError()</a> to retrieve the last MAPI error code. Possible MAPI error codes are:<ul>
<li>MAPI_E_NOT_INITIALIZED: MAPI subsystem has not been initialized</li><li>MAPI_E_INVALID_PARAMETER: obj_table or TableStatus are null</li><li>MAPI_E_CALL_FAILED: A network problem was encountered during the transaction </li></ul>
</dd></dl>

<p>References <a class="el" href="emsmdb_8c_source.html#l00283">emsmdb_transaction()</a>, <a class="el" href="mapi__object_8c_source.html#l00264">mapi_object_get_handle()</a>, <a class="el" href="mapi__object_8c_source.html#l00238">mapi_object_get_logon_id()</a>, and <a class="el" href="mapi__object_8c_source.html#l00165">mapi_object_get_session()</a>.</p>

</div>
</div><p>
<a class="anchor" name="70a2ad3195e56fdcbb4d19f0e4c39a86"></a><!-- doxytag: member="IMAPITable.c::CollapseRow" ref="70a2ad3195e56fdcbb4d19f0e4c39a86" args="(mapi_object_t *obj_table, uint64_t categoryId, uint32_t *rowCount)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">_PUBLIC_ enum MAPISTATUS CollapseRow           </td>
          <td>(</td>
          <td class="paramtype">mapi_object_t *&nbsp;</td>
          <td class="paramname"> <em>obj_table</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint64_t&nbsp;</td>
          <td class="paramname"> <em>categoryId</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t *&nbsp;</td>
          <td class="paramname"> <em>rowCount</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Collapse an expanded row in a table<p>
After a contents table has been sorted and categorized using SortTable, rows can be expanded and collapsed (using ExpandRow and CollapseRow repectively).<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>obj_table</em>&nbsp;</td><td>the table we are collapsing the category in. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>categoryId</em>&nbsp;</td><td>the row identification for the heading row for the category being collapsed. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>rowCount</em>&nbsp;</td><td>(result) the number of rows that were removed from the table when the row was collapsed.</td></tr>
  </table>
</dl>
You obtain the categoryId argument from the PR_INST_ID property of the heading row for the category that is being collapsed.<p>
If you pass rowCount as null, the number of rows will not be returned.<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>MAPI_E_SUCCESS on success, otherwise MAPI error.</dd></dl>
<dl class="note" compact><dt><b>Note:</b></dt><dd>Developers may also call <a class="el" href="IUnknown_8c.html#8237c7fc76377cb07f3f55920d6f20de">GetLastError()</a> to retrieve the last MAPI error code. Possible MAPI error codes are:<ul>
<li>MAPI_E_NOT_INITIALIZED: MAPI subsystem has not been initialized</li><li>MAPI_E_INVALID_PARAMETER: obj_table is NULL</li><li>MAPI_E_CALL_FAILED: A network problem was encountered during the transaction</li></ul>
</dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="IMAPITable_8c.html#700c726ea0c7d59b0d01f3f9e5185232">ExpandRow</a> </dd></dl>

<p>References <a class="el" href="emsmdb_8c_source.html#l00283">emsmdb_transaction()</a>, <a class="el" href="mapi__object_8c_source.html#l00264">mapi_object_get_handle()</a>, <a class="el" href="mapi__object_8c_source.html#l00238">mapi_object_get_logon_id()</a>, and <a class="el" href="mapi__object_8c_source.html#l00165">mapi_object_get_session()</a>.</p>

</div>
</div><p>
<a class="anchor" name="f08bb8c8425b58d2d01f30e8016058f6"></a><!-- doxytag: member="IMAPITable.c::CreateBookmark" ref="f08bb8c8425b58d2d01f30e8016058f6" args="(mapi_object_t *obj_table, uint32_t *lpbkPosition)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">_PUBLIC_ enum MAPISTATUS CreateBookmark           </td>
          <td>(</td>
          <td class="paramtype">mapi_object_t *&nbsp;</td>
          <td class="paramname"> <em>obj_table</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t *&nbsp;</td>
          <td class="paramname"> <em>lpbkPosition</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Marks the table current position<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>obj_table</em>&nbsp;</td><td>the table we are creating a bookmark in </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>lpbkPosition</em>&nbsp;</td><td>pointer to the bookmark value. This bookmark can be passed in a call to the SeekRowBookmark method</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>MAPI_E_SUCCESS on success, otherwise MAPI error.</dd></dl>
<dl class="note" compact><dt><b>Note:</b></dt><dd>Developers may also call <a class="el" href="IUnknown_8c.html#8237c7fc76377cb07f3f55920d6f20de">GetLastError()</a> to retrieve the last MAPI error code. Possible MAPI error codes are:<ul>
<li>MAPI_E_NOT_INITIALIZED: MAPI subsystem has not been initialized</li><li>MAPI_E_INVALID_PARAMETER: obj_table is NULL</li><li>MAPI_E_CALL_FAILED: A network problem was encountered during the transaction</li></ul>
</dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="IMAPITable_8c.html#d2d719b843217fd96ceb4f1f3f83994e">SeekRowBookmark</a>, <a class="el" href="IMAPITable_8c.html#8325d57fa9b2e520401a243e0c0360e6">FreeBookmark</a> </dd></dl>

<p>References <a class="el" href="emsmdb_8c_source.html#l00283">emsmdb_transaction()</a>, <a class="el" href="mapi__object_8c_source.html#l00264">mapi_object_get_handle()</a>, <a class="el" href="mapi__object_8c_source.html#l00238">mapi_object_get_logon_id()</a>, and <a class="el" href="mapi__object_8c_source.html#l00165">mapi_object_get_session()</a>.</p>

</div>
</div><p>
<a class="anchor" name="700c726ea0c7d59b0d01f3f9e5185232"></a><!-- doxytag: member="IMAPITable.c::ExpandRow" ref="700c726ea0c7d59b0d01f3f9e5185232" args="(mapi_object_t *obj_table, uint64_t categoryId, uint16_t maxRows, struct SRowSet *rowData, uint32_t *expandedRowCount)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">_PUBLIC_ enum MAPISTATUS ExpandRow           </td>
          <td>(</td>
          <td class="paramtype">mapi_object_t *&nbsp;</td>
          <td class="paramname"> <em>obj_table</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint64_t&nbsp;</td>
          <td class="paramname"> <em>categoryId</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&nbsp;</td>
          <td class="paramname"> <em>maxRows</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct SRowSet *&nbsp;</td>
          <td class="paramname"> <em>rowData</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t *&nbsp;</td>
          <td class="paramname"> <em>expandedRowCount</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Expand a collapsed row in a table<p>
After a contents table has been sorted and categorized using SortTable, rows can be expanded and collapsed (using ExpandRow and CollapseRow repectively).<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>obj_table</em>&nbsp;</td><td>the table we are collapsing the category in. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>categoryId</em>&nbsp;</td><td>the row identification for the heading row for the category being expanded. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>maxRows</em>&nbsp;</td><td>the maximum number of rows to retrieve (can be zero) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>rowData</em>&nbsp;</td><td>(result) the data rows under this category heading </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>expandedRowCount</em>&nbsp;</td><td>(result) the number of rows that were added to the table when the row was expanded</td></tr>
  </table>
</dl>
You obtain the categoryId argument from the PR_INST_ID property of the heading row for the category that is being collapsed.<p>
The maxRows argument specifies the upper limit on how many rows to return (as rowData) when the category is expanded. The expandedRowCount argument returns the number of rows that were added to the table. As an example, consider a collapsed category with 8 entries. If you set maxRows to 3, then rowData will contain the data for the first three rows, and expandedRowCount will be set to 8. If you now use <a class="el" href="IMAPITable_8c.html#e5890f112bb41a03f6ecbe90a16687c4">QueryRows()</a>, you can read the 5 additional rows. If you'd specified maxRows as 8 (or more), rowData would have contained all 8 rows and expandedRowCount still would have been 8.<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>MAPI_E_SUCCESS on success, otherwise MAPI error.</dd></dl>
<dl class="note" compact><dt><b>Note:</b></dt><dd>Developers may also call <a class="el" href="IUnknown_8c.html#8237c7fc76377cb07f3f55920d6f20de">GetLastError()</a> to retrieve the last MAPI error code. Possible MAPI error codes are:<ul>
<li>MAPI_E_NOT_INITIALIZED: MAPI subsystem has not been initialized</li><li>MAPI_E_INVALID_PARAMETER: obj_table, rowData or rowCount are NULL</li><li>MAPI_E_CALL_FAILED: A network problem was encountered during the transaction</li></ul>
</dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="IMAPITable_8c.html#70a2ad3195e56fdcbb4d19f0e4c39a86">CollapseRow</a> </dd></dl>

<p>References <a class="el" href="emsmdb_8c_source.html#l00725">emsmdb_get_SRowSet()</a>, <a class="el" href="emsmdb_8c_source.html#l00283">emsmdb_transaction()</a>, <a class="el" href="mapi__object_8c_source.html#l00264">mapi_object_get_handle()</a>, <a class="el" href="mapi__object_8c_source.html#l00238">mapi_object_get_logon_id()</a>, and <a class="el" href="mapi__object_8c_source.html#l00165">mapi_object_get_session()</a>.</p>

</div>
</div><p>
<a class="anchor" name="33d649eae788f87a2dfa82d05c6de0d5"></a><!-- doxytag: member="IMAPITable.c::FindRow" ref="33d649eae788f87a2dfa82d05c6de0d5" args="(mapi_object_t *obj_table, struct mapi_SRestriction *res, uint32_t bkOrigin, uint8_t ulFlags, struct SRowSet *SRowSet)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">_PUBLIC_ enum MAPISTATUS FindRow           </td>
          <td>(</td>
          <td class="paramtype">mapi_object_t *&nbsp;</td>
          <td class="paramname"> <em>obj_table</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct mapi_SRestriction *&nbsp;</td>
          <td class="paramname"> <em>res</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&nbsp;</td>
          <td class="paramname"> <em>bkOrigin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&nbsp;</td>
          <td class="paramname"> <em>ulFlags</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct SRowSet *&nbsp;</td>
          <td class="paramname"> <em>SRowSet</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Find the next row in a table that matches specific search criteria<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>obj_table</em>&nbsp;</td><td>the table we are searching in </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>res</em>&nbsp;</td><td>pointer on search criterias </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>bkOrigin</em>&nbsp;</td><td>bookmark identifying the row where FindRow should begin </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>ulFlags</em>&nbsp;</td><td>controls the direction of the search </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>SRowSet</em>&nbsp;</td><td>the resulting row</td></tr>
  </table>
</dl>
bkOrigin can either take the value of a bookmark created with CreateBookmark or any of the default values:<ul>
<li>BOOKMARK_BEGINNING</li><li>BOOKMARK_CURRENT</li><li>BOOKMARK_END</li></ul>
<p>
ulFlags can be set either to DIR_FORWARD (0x0) or DIR_BACKWARD (0x1).<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>MAPI_E_SUCCESS on success, otherwise MAPI error.</dd></dl>
<dl class="note" compact><dt><b>Note:</b></dt><dd>Developers may also call <a class="el" href="IUnknown_8c.html#8237c7fc76377cb07f3f55920d6f20de">GetLastError()</a> to retrieve the last MAPI error code. Possible MAPI error codes are:<ul>
<li>MAPI_E_NOT_INITIALIZED: MAPI subsystem has not been initialized</li><li>MAPI_E_INVALID_PARAMETER: obj_table is NULL</li><li>MAPI_E_INVALID_BOOKMARK: the bookmark specified is invalid or beyond the last row requested.</li><li>MAPI_E_CALL_FAILED: A network problem was encountered during the transaction</li></ul>
</dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="IMAPITable_8c.html#f08bb8c8425b58d2d01f30e8016058f6">CreateBookmark</a> </dd></dl>

<p>References <a class="el" href="emsmdb_8c_source.html#l00725">emsmdb_get_SRowSet()</a>, <a class="el" href="emsmdb_8c_source.html#l00283">emsmdb_transaction()</a>, <a class="el" href="IMAPITable_8c_source.html#l00954">get_mapi_SRestriction_size()</a>, <a class="el" href="mapi__object_8c_source.html#l00334">mapi_object_bookmark_find()</a>, <a class="el" href="mapi__object_8c_source.html#l00264">mapi_object_get_handle()</a>, <a class="el" href="mapi__object_8c_source.html#l00238">mapi_object_get_logon_id()</a>, and <a class="el" href="mapi__object_8c_source.html#l00165">mapi_object_get_session()</a>.</p>

<p>Referenced by <a class="el" href="freebusy_8c_source.html#l00057">GetUserFreeBusyData()</a>.</p>

</div>
</div><p>
<a class="anchor" name="8325d57fa9b2e520401a243e0c0360e6"></a><!-- doxytag: member="IMAPITable.c::FreeBookmark" ref="8325d57fa9b2e520401a243e0c0360e6" args="(mapi_object_t *obj_table, uint32_t bkPosition)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">_PUBLIC_ enum MAPISTATUS FreeBookmark           </td>
          <td>(</td>
          <td class="paramtype">mapi_object_t *&nbsp;</td>
          <td class="paramname"> <em>obj_table</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&nbsp;</td>
          <td class="paramname"> <em>bkPosition</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Release the resources associated with a bookmark<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>obj_table</em>&nbsp;</td><td>the table the bookmark is associated to </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>bkPosition</em>&nbsp;</td><td>the bookmark to be freed</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>MAPI_E_SUCCESS on success, otherwise MAPI error.</dd></dl>
<dl class="note" compact><dt><b>Note:</b></dt><dd>Developers may also call <a class="el" href="IUnknown_8c.html#8237c7fc76377cb07f3f55920d6f20de">GetLastError()</a> to retrieve the last MAPI error code. Possible MAPI error codes are:<ul>
<li>MAPI_E_NOT_INITIALIZED: MAPI subsystem has not been initialized</li><li>MAPI_E_INVALID_PARAMETER: obj_table is NULL</li><li>MAPI_E_INVALID_BOOKMARK: The bookmark specified is invalid or beyond the last row requested</li><li>MAPI_E_CALL_FAILED: A network problem was encountered during the transaction</li></ul>
</dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="IMAPITable_8c.html#f08bb8c8425b58d2d01f30e8016058f6">CreateBookmark</a> </dd></dl>

<p>References <a class="el" href="emsmdb_8c_source.html#l00283">emsmdb_transaction()</a>, <a class="el" href="mapi__object_8c_source.html#l00264">mapi_object_get_handle()</a>, <a class="el" href="mapi__object_8c_source.html#l00238">mapi_object_get_logon_id()</a>, <a class="el" href="mapi__object_8c_source.html#l00165">mapi_object_get_session()</a>, and <a class="el" href="IUnknown_8c_source.html#l00082">MAPIFreeBuffer()</a>.</p>

</div>
</div><p>
<a class="anchor" name="7de0279fd6572a123e0a9f512bc55af3"></a><!-- doxytag: member="IMAPITable.c::get_mapi_SRestriction_size" ref="7de0279fd6572a123e0a9f512bc55af3" args="(struct mapi_SRestriction *res)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t get_mapi_SRestriction_size           </td>
          <td>(</td>
          <td class="paramtype">struct mapi_SRestriction *&nbsp;</td>
          <td class="paramname"> <em>res</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the size associated to a mapi SRestriction<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>res</em>&nbsp;</td><td>pointer on the mapi_SRestriction</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>mapi_SRestriction size </dd></dl>

<p>Referenced by <a class="el" href="IMAPITable_8c_source.html#l01215">FindRow()</a>, <a class="el" href="IMAPITable_8c_source.html#l01111">Restrict()</a>, and <a class="el" href="IMAPIContainer_8c_source.html#l00605">SetSearchCriteria()</a>.</p>

</div>
</div><p>
<a class="anchor" name="3bbb8084d80870c5c0e6ef64070405ae"></a><!-- doxytag: member="IMAPITable.c::GetCollapseState" ref="3bbb8084d80870c5c0e6ef64070405ae" args="(mapi_object_t *obj_table, uint64_t rowId, uint32_t rowInstanceNumber, struct SBinary_short *CollapseState)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">_PUBLIC_ enum MAPISTATUS GetCollapseState           </td>
          <td>(</td>
          <td class="paramtype">mapi_object_t *&nbsp;</td>
          <td class="paramname"> <em>obj_table</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint64_t&nbsp;</td>
          <td class="paramname"> <em>rowId</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&nbsp;</td>
          <td class="paramname"> <em>rowInstanceNumber</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct SBinary_short *&nbsp;</td>
          <td class="paramname"> <em>CollapseState</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the Collapse State of a Table<p>
After a contents table has been sorted and categorized using SortTable, rows can be expanded and collapsed (using <a class="el" href="IMAPITable_8c.html#700c726ea0c7d59b0d01f3f9e5185232">ExpandRow()</a> and <a class="el" href="IMAPITable_8c.html#70a2ad3195e56fdcbb4d19f0e4c39a86">CollapseRow()</a> repectively). You can save the state of the table using this function, and restore it using SetCollapseState.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>obj_table</em>&nbsp;</td><td>the table we are retrieving the state from </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>rowId</em>&nbsp;</td><td>the row number for the cursor </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>rowInstanceNumber</em>&nbsp;</td><td>the instance number for the cursor </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>CollapseState</em>&nbsp;</td><td>(result) the returned table Collapse State</td></tr>
  </table>
</dl>
You obtain the row number and row instance number arguments from the PR_INST_ID and PR_INST_NUM properties of the row you want to use as the cursor.<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>MAPI_E_SUCCESS on success, otherwise MAPI error.</dd></dl>
<dl class="note" compact><dt><b>Note:</b></dt><dd>Developers may also call <a class="el" href="IUnknown_8c.html#8237c7fc76377cb07f3f55920d6f20de">GetLastError()</a> to retrieve the last MAPI error code. Possible MAPI error codes are:<ul>
<li>MAPI_E_NOT_INITIALIZED: MAPI subsystem has not been initialized</li><li>MAPI_E_INVALID_PARAMETER: obj_table or CollapseState are null</li><li>MAPI_E_CALL_FAILED: A network problem was encountered during the transaction</li></ul>
</dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="IMAPITable_8c.html#eb30219dbd2163d0238905c054b789e6">SetCollapseState</a> </dd></dl>

<p>References <a class="el" href="emsmdb_8c_source.html#l00283">emsmdb_transaction()</a>, <a class="el" href="mapi__object_8c_source.html#l00264">mapi_object_get_handle()</a>, <a class="el" href="mapi__object_8c_source.html#l00238">mapi_object_get_logon_id()</a>, and <a class="el" href="mapi__object_8c_source.html#l00165">mapi_object_get_session()</a>.</p>

</div>
</div><p>
<a class="anchor" name="dd0122704d685e475fc70acc2070fb09"></a><!-- doxytag: member="IMAPITable.c::GetStatus" ref="dd0122704d685e475fc70acc2070fb09" args="(mapi_object_t *obj_table, uint8_t *TableStatus)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">_PUBLIC_ enum MAPISTATUS GetStatus           </td>
          <td>(</td>
          <td class="paramtype">mapi_object_t *&nbsp;</td>
          <td class="paramname"> <em>obj_table</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&nbsp;</td>
          <td class="paramname"> <em>TableStatus</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the status of a table<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>obj_table</em>&nbsp;</td><td>the table we are retrieving the status from </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>TableStatus</em>&nbsp;</td><td>the table status result</td></tr>
  </table>
</dl>
TableStatus can either hold:<ul>
<li>TBLSTAT_COMPLETE (0x0)</li><li>TBLSTAT_SORTING (0x9)</li><li>TBLSTAT_SORT_ERROR (0xA)</li><li>TBLSTAT_SETTING_COLS (0xB)</li><li>TBLSTAT_SETCOL_ERROR (0xD)</li><li>TBLSTAT_RESTRICTING (0xE)</li><li>TBLSTAT_RESTRICT_ERROR (0xF)</li></ul>
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>MAPI_E_SUCCESS on success, otherwise MAPI error.</dd></dl>
<dl class="note" compact><dt><b>Note:</b></dt><dd>Developers may also call <a class="el" href="IUnknown_8c.html#8237c7fc76377cb07f3f55920d6f20de">GetLastError()</a> to retrieve the last MAPI error code. Possible MAPI error codes are:<ul>
<li>MAPI_E_NOT_INITIALIZED: MAPI subsystem has not been initialized</li><li>MAPI_E_INVALID_PARAMETER: obj_table is NULL</li><li>MAPI_E_INVALID_BOOKMARK: the bookmark specified is invalid or beyond the last row requested.</li><li>MAPI_E_CALL_FAILED: A network problem was encountered during the transaction</li></ul>
</dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="IMAPITable_8c.html#266cd7f791acf5d9721f5e9e8ac5d49f">SetColumns</a>, <a class="el" href="IMAPITable_8c.html#923e68b5a576c5e87defbe78a269d07c">Restrict</a>, <a class="el" href="IMAPITable_8c.html#33d649eae788f87a2dfa82d05c6de0d5">FindRow</a>, <a class="el" href="IMAPIContainer_8c.html#abf483e456de9d3621464537e9367445">GetHierarchyTable</a>, <a class="el" href="IMAPIContainer_8c.html#45f243bea0975066cc0112c57951e8a2">GetContentsTable</a> </dd></dl>

<p>References <a class="el" href="emsmdb_8c_source.html#l00283">emsmdb_transaction()</a>, <a class="el" href="mapi__object_8c_source.html#l00264">mapi_object_get_handle()</a>, <a class="el" href="mapi__object_8c_source.html#l00238">mapi_object_get_logon_id()</a>, and <a class="el" href="mapi__object_8c_source.html#l00165">mapi_object_get_session()</a>.</p>

</div>
</div><p>
<a class="anchor" name="c905b2b4720f6415997da87713933055"></a><!-- doxytag: member="IMAPITable.c::QueryColumns" ref="c905b2b4720f6415997da87713933055" args="(mapi_object_t *obj_table, struct SPropTagArray *cols)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">_PUBLIC_ enum MAPISTATUS QueryColumns           </td>
          <td>(</td>
          <td class="paramtype">mapi_object_t *&nbsp;</td>
          <td class="paramname"> <em>obj_table</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct SPropTagArray *&nbsp;</td>
          <td class="paramname"> <em>cols</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Retrieves the set of columns defined in the current table view<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>obj_table</em>&nbsp;</td><td>the table we are retrieving columns from </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>cols</em>&nbsp;</td><td>pointer to an array of property tags</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>MAPI_E_SUCCESS on success, otherwise MAPI error.</dd></dl>
<dl class="note" compact><dt><b>Note:</b></dt><dd>Developers may also call <a class="el" href="IUnknown_8c.html#8237c7fc76377cb07f3f55920d6f20de">GetLastError()</a> to retrieve the last MAPI error code. Possible MAPI error codes are:<ul>
<li>MAPI_E_NOT_INITIALIZED: MAPI subsystem has not been initialized</li><li>MAPI_E_INVALID_PARAMETER: obj_table is NULL</li><li>MAPI_E_CALL_FAILED: A network problem was encountered during the transaction</li></ul>
</dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="IMAPITable_8c.html#266cd7f791acf5d9721f5e9e8ac5d49f">SetColumns</a>, <a class="el" href="IMAPITable_8c.html#e5890f112bb41a03f6ecbe90a16687c4">QueryRows</a> </dd></dl>

<p>References <a class="el" href="emsmdb_8c_source.html#l00283">emsmdb_transaction()</a>, <a class="el" href="mapi__object_8c_source.html#l00264">mapi_object_get_handle()</a>, <a class="el" href="mapi__object_8c_source.html#l00238">mapi_object_get_logon_id()</a>, and <a class="el" href="mapi__object_8c_source.html#l00165">mapi_object_get_session()</a>.</p>

</div>
</div><p>
<a class="anchor" name="c40c37ca1ee53f09c1ce9639fa7eaa53"></a><!-- doxytag: member="IMAPITable.c::QueryPosition" ref="c40c37ca1ee53f09c1ce9639fa7eaa53" args="(mapi_object_t *obj_table, uint32_t *Numerator, uint32_t *Denominator)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">_PUBLIC_ enum MAPISTATUS QueryPosition           </td>
          <td>(</td>
          <td class="paramtype">mapi_object_t *&nbsp;</td>
          <td class="paramname"> <em>obj_table</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t *&nbsp;</td>
          <td class="paramname"> <em>Numerator</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t *&nbsp;</td>
          <td class="paramname"> <em>Denominator</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the approximate cursor position<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>obj_table</em>&nbsp;</td><td>pointer to the table's object </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>Numerator</em>&nbsp;</td><td>pointer to the numerator of the fraction identifying the table position </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>Denominator</em>&nbsp;</td><td>pointer to the denominator of the fraction identifying the table position</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>MAPI_E_SUCCESS on success, otherwise MAPI error.</dd></dl>
<dl class="note" compact><dt><b>Note:</b></dt><dd>Developers may also call <a class="el" href="IUnknown_8c.html#8237c7fc76377cb07f3f55920d6f20de">GetLastError()</a> to retrieve the last MAPI error code. Possible MAPI error codes are:<ul>
<li>MAPI_E_NOT_INITIALIZED: MAPI subsystem has not been initialized</li><li>MAPI_E_INVALID_PARAMETER: obj_table is NULL</li><li>MAPI_E_CALL_FAILED: A network problem was encountered during the transaction</li></ul>
</dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="IMAPITable_8c.html#e5890f112bb41a03f6ecbe90a16687c4">QueryRows</a> </dd></dl>
<dl compact><dt><b>Examples: </b></dt><dd>
<a class="el" href="fetchappointment_8c-example.html#a10">fetchappointment.c</a>, and <a class="el" href="fetchmail_8c-example.html#a10">fetchmail.c</a>.</dl>
<p>References <a class="el" href="emsmdb_8c_source.html#l00283">emsmdb_transaction()</a>, <a class="el" href="mapi__object_8c_source.html#l00264">mapi_object_get_handle()</a>, <a class="el" href="mapi__object_8c_source.html#l00238">mapi_object_get_logon_id()</a>, and <a class="el" href="mapi__object_8c_source.html#l00165">mapi_object_get_session()</a>.</p>

<p>Referenced by <a class="el" href="simple__mapi_8c_source.html#l00530">ModifyUserPermission()</a>, and <a class="el" href="simple__mapi_8c_source.html#l00643">RemoveUserPermission()</a>.</p>

</div>
</div><p>
<a class="anchor" name="e5890f112bb41a03f6ecbe90a16687c4"></a><!-- doxytag: member="IMAPITable.c::QueryRows" ref="e5890f112bb41a03f6ecbe90a16687c4" args="(mapi_object_t *obj_table, uint16_t row_count, enum QueryRowsFlags flags, struct SRowSet *rowSet)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">_PUBLIC_ enum MAPISTATUS QueryRows           </td>
          <td>(</td>
          <td class="paramtype">mapi_object_t *&nbsp;</td>
          <td class="paramname"> <em>obj_table</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&nbsp;</td>
          <td class="paramname"> <em>row_count</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">enum QueryRowsFlags&nbsp;</td>
          <td class="paramname"> <em>flags</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct SRowSet *&nbsp;</td>
          <td class="paramname"> <em>rowSet</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns a RowSet with the properties returned by the server<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>obj_table</em>&nbsp;</td><td>the table we are requesting properties from </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>row_count</em>&nbsp;</td><td>the maximum number of rows to retrieve </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>flags</em>&nbsp;</td><td>flags to use for the query </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>rowSet</em>&nbsp;</td><td>the results</td></tr>
  </table>
</dl>
flags possible values:<ul>
<li>TBL_ADVANCE: index automatically increased from last rowcount</li><li>TBL_NOADVANCE: should be used for a single QueryRows call</li><li>TBL_ENABLEPACKEDBUFFERS: (not yet implemented)</li></ul>
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>MAPI_E_SUCCESS on success, otherwise MAPI error.</dd></dl>
<dl class="note" compact><dt><b>Note:</b></dt><dd>Developers may also call <a class="el" href="IUnknown_8c.html#8237c7fc76377cb07f3f55920d6f20de">GetLastError()</a> to retrieve the last MAPI error code. Possible MAPI error codes are:<ul>
<li>MAPI_E_NOT_INITIALIZED: MAPI subsystem has not been initialized</li><li>MAPI_E_INVALID_PARAMETER: obj_table is NULL</li><li>MAPI_E_CALL_FAILED: A network problem was encountered during the transaction</li></ul>
</dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="IMAPITable_8c.html#266cd7f791acf5d9721f5e9e8ac5d49f">SetColumns</a>, <a class="el" href="IMAPITable_8c.html#c40c37ca1ee53f09c1ce9639fa7eaa53">QueryPosition</a>, <a class="el" href="IMAPITable_8c.html#c905b2b4720f6415997da87713933055">QueryColumns</a>, <a class="el" href="IMAPITable_8c.html#4ddf3e5538181452a0ffd7167e46cb5c">SeekRow</a> </dd></dl>
<dl compact><dt><b>Examples: </b></dt><dd>
<a class="el" href="fetchappointment_8c-example.html#a11">fetchappointment.c</a>, and <a class="el" href="fetchmail_8c-example.html#a11">fetchmail.c</a>.</dl>
<p>References <a class="el" href="emsmdb_8c_source.html#l00725">emsmdb_get_SRowSet()</a>, <a class="el" href="emsmdb_8c_source.html#l00283">emsmdb_transaction()</a>, <a class="el" href="mapi__object_8c_source.html#l00264">mapi_object_get_handle()</a>, <a class="el" href="mapi__object_8c_source.html#l00238">mapi_object_get_logon_id()</a>, and <a class="el" href="mapi__object_8c_source.html#l00165">mapi_object_get_session()</a>.</p>

<p>Referenced by <a class="el" href="simple__mapi_8c_source.html#l00530">ModifyUserPermission()</a>, and <a class="el" href="simple__mapi_8c_source.html#l00643">RemoveUserPermission()</a>.</p>

</div>
</div><p>
<a class="anchor" name="bccd8368ba3a663c6d76a163b30fe998"></a><!-- doxytag: member="IMAPITable.c::Reset" ref="bccd8368ba3a663c6d76a163b30fe998" args="(mapi_object_t *obj_table)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">_PUBLIC_ enum MAPISTATUS Reset           </td>
          <td>(</td>
          <td class="paramtype">mapi_object_t *&nbsp;</td>
          <td class="paramname"> <em>obj_table</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Removes all filters that are currently on a table<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>obj_table</em>&nbsp;</td><td>the table object to reset</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>MAPI_E_SUCCESS on success, otherwise MAPI error.</dd></dl>
<dl class="note" compact><dt><b>Note:</b></dt><dd>Developers may also call <a class="el" href="IUnknown_8c.html#8237c7fc76377cb07f3f55920d6f20de">GetLastError()</a> to retrieve the last MAPI error code. Possible MAPI error codes are:<ul>
<li>MAPI_E_NOT_INITIALIZED: MAPI subsystem has not been initialized</li><li>MAPI_E_INVALID_PARAMETER: obj_table is NULL</li><li>MAPI_E_CALL_FAILED: A network problem was encountered during the transaction</li></ul>
</dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="IMAPITable_8c.html#923e68b5a576c5e87defbe78a269d07c">Restrict</a> </dd></dl>

<p>References <a class="el" href="emsmdb_8c_source.html#l00283">emsmdb_transaction()</a>, <a class="el" href="mapi__object_8c_source.html#l00264">mapi_object_get_handle()</a>, <a class="el" href="mapi__object_8c_source.html#l00238">mapi_object_get_logon_id()</a>, and <a class="el" href="mapi__object_8c_source.html#l00165">mapi_object_get_session()</a>.</p>

</div>
</div><p>
<a class="anchor" name="923e68b5a576c5e87defbe78a269d07c"></a><!-- doxytag: member="IMAPITable.c::Restrict" ref="923e68b5a576c5e87defbe78a269d07c" args="(mapi_object_t *obj_table, struct mapi_SRestriction *res, uint8_t *TableStatus)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">_PUBLIC_ enum MAPISTATUS Restrict           </td>
          <td>(</td>
          <td class="paramtype">mapi_object_t *&nbsp;</td>
          <td class="paramname"> <em>obj_table</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct mapi_SRestriction *&nbsp;</td>
          <td class="paramname"> <em>res</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t *&nbsp;</td>
          <td class="paramname"> <em>TableStatus</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Applies a filter to a table, reducing the row set to only those rows matching the specified criteria.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>obj_table</em>&nbsp;</td><td>the object we are filtering </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>res</em>&nbsp;</td><td>the filters we want to apply </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>TableStatus</em>&nbsp;</td><td>the table status result</td></tr>
  </table>
</dl>
TableStatus can either hold:<ul>
<li>TBLSTAT_COMPLETE (0x0)</li><li>TBLSTAT_SORTING (0x9)</li><li>TBLSTAT_SORT_ERROR (0xA)</li><li>TBLSTAT_SETTING_COLS (0xB)</li><li>TBLSTAT_SETCOL_ERROR (0xD)</li><li>TBLSTAT_RESTRICTING (0xE)</li><li>TBLSTAT_RESTRICT_ERROR (0xF)</li></ul>
<p>
Unlike MAPI, you don't pass a null restriction argument to remove the current restrictions. Use <a class="el" href="IMAPITable_8c.html#bccd8368ba3a663c6d76a163b30fe998">Reset()</a> instead.<p>
TableStatus should be set to NULL if you don't want to retrieve the status of the table.<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>MAPI_E_SUCCESS on success, otherwise MAPI error.</dd></dl>
<dl class="note" compact><dt><b>Note:</b></dt><dd>Developers may also call <a class="el" href="IUnknown_8c.html#8237c7fc76377cb07f3f55920d6f20de">GetLastError()</a> to retrieve the last MAPI error code. Possible MAPI error codes are:<ul>
<li>MAPI_E_NOT_INITIALIZED: MAPI subsystem has not been initialized</li><li>MAPI_E_INVALID_PARAMETER: obj_table is NULL</li><li>MAPI_E_CALL_FAILED: A network problem was encountered during the transaction</li></ul>
</dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="IMAPITable_8c.html#e5890f112bb41a03f6ecbe90a16687c4">QueryRows</a>, <a class="el" href="IMAPITable_8c.html#bccd8368ba3a663c6d76a163b30fe998">Reset</a> </dd></dl>

<p>References <a class="el" href="emsmdb_8c_source.html#l00283">emsmdb_transaction()</a>, <a class="el" href="IMAPITable_8c_source.html#l00954">get_mapi_SRestriction_size()</a>, <a class="el" href="mapi__object_8c_source.html#l00264">mapi_object_get_handle()</a>, <a class="el" href="mapi__object_8c_source.html#l00238">mapi_object_get_logon_id()</a>, and <a class="el" href="mapi__object_8c_source.html#l00165">mapi_object_get_session()</a>.</p>

</div>
</div><p>
<a class="anchor" name="4ddf3e5538181452a0ffd7167e46cb5c"></a><!-- doxytag: member="IMAPITable.c::SeekRow" ref="4ddf3e5538181452a0ffd7167e46cb5c" args="(mapi_object_t *obj_table, enum BOOKMARK origin, int32_t offset, uint32_t *row)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">_PUBLIC_ enum MAPISTATUS SeekRow           </td>
          <td>(</td>
          <td class="paramtype">mapi_object_t *&nbsp;</td>
          <td class="paramname"> <em>obj_table</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">enum BOOKMARK&nbsp;</td>
          <td class="paramname"> <em>origin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int32_t&nbsp;</td>
          <td class="paramname"> <em>offset</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t *&nbsp;</td>
          <td class="paramname"> <em>row</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Move the table cursor at a specific location<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>obj_table</em>&nbsp;</td><td>the table we are moving cursor on </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>origin</em>&nbsp;</td><td>the table position where we start to seek </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>offset</em>&nbsp;</td><td>a particular offset in the table </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>row</em>&nbsp;</td><td>the position of the seeked row is returned in rows</td></tr>
  </table>
</dl>
origin possible values:<ul>
<li>BOOKMARK_BEGINNING: Beginning of the table</li><li>BOOKMARK_CURRENT: Current position in the table</li><li>BOKMARK_END: End of the table</li></ul>
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>MAPI_E_SUCCESS on success, otherwise MAPI error.</dd></dl>
<dl class="note" compact><dt><b>Note:</b></dt><dd>Developers may also call <a class="el" href="IUnknown_8c.html#8237c7fc76377cb07f3f55920d6f20de">GetLastError()</a> to retrieve the last MAPI error code. Possible MAPI error codes are:<ul>
<li>MAPI_E_NOT_INITIALIZED: MAPI subsystem has not been initialized</li><li>MAPI_E_INVALID_PARAMETER: obj_table is NULL</li><li>MAPI_E_CALL_FAILED: A network problem was encountered during the transaction</li></ul>
</dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="IMAPITable_8c.html#266cd7f791acf5d9721f5e9e8ac5d49f">SetColumns</a>, <a class="el" href="IMAPITable_8c.html#e5890f112bb41a03f6ecbe90a16687c4">QueryRows</a> </dd></dl>

<p>References <a class="el" href="emsmdb_8c_source.html#l00283">emsmdb_transaction()</a>, <a class="el" href="mapi__object_8c_source.html#l00264">mapi_object_get_handle()</a>, <a class="el" href="mapi__object_8c_source.html#l00238">mapi_object_get_logon_id()</a>, and <a class="el" href="mapi__object_8c_source.html#l00165">mapi_object_get_session()</a>.</p>

</div>
</div><p>
<a class="anchor" name="d92bff21ddedab8a1bd53476744d60df"></a><!-- doxytag: member="IMAPITable.c::SeekRowApprox" ref="d92bff21ddedab8a1bd53476744d60df" args="(mapi_object_t *obj_table, uint32_t ulNumerator, uint32_t ulDenominator)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">_PUBLIC_ enum MAPISTATUS SeekRowApprox           </td>
          <td>(</td>
          <td class="paramtype">mapi_object_t *&nbsp;</td>
          <td class="paramname"> <em>obj_table</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&nbsp;</td>
          <td class="paramname"> <em>ulNumerator</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&nbsp;</td>
          <td class="paramname"> <em>ulDenominator</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Moves the cursor to an approximate fractional position in the table<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>obj_table</em>&nbsp;</td><td>the table we are moving cursor on </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>ulNumerator</em>&nbsp;</td><td>numerator of the fraction representing the table position. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>ulDenominator</em>&nbsp;</td><td>denominator of the fraction representing the table position</td></tr>
  </table>
</dl>
<ul>
<li>If ulDenominator is NULL, then SeekRowApprox returns MAPI_E_INVALID_PARAMETER.</li><li>If ulNumerator is NULL, then SeekRowApprox moves the cursor to the beginning of the table. In such situation, SeekRowApprox call is similar to SeekRow with BOOKMARK_BEGINNING</li><li>If ulNumerator and ulDenominator have the same value, then SeekRowApprox moves the cursor to the end of the table. In such situation, SeekRowApprox call is similar to SeekRow with BOOKMARK_END</li></ul>
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>MAPI_E_SUCCESS on success, otherwise MAPI error.</dd></dl>
<dl class="note" compact><dt><b>Note:</b></dt><dd>Developers may also call <a class="el" href="IUnknown_8c.html#8237c7fc76377cb07f3f55920d6f20de">GetLastError()</a> to retrieve the last MAPI error code. Possible MAPI error codes are:<ul>
<li>MAPI_E_NOT_INITIALIZED: MAPI subsystem has not been initialized</li><li>MAPI_E_INVALID_PARAMETER: obj_table is NULL</li><li>MAPI_E_CALL_FAILED: A network problem was encountered during the transaction</li></ul>
</dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="IMAPITable_8c.html#4ddf3e5538181452a0ffd7167e46cb5c">SeekRow</a>, <a class="el" href="IMAPITable_8c.html#d2d719b843217fd96ceb4f1f3f83994e">SeekRowBookmark</a> </dd></dl>

<p>References <a class="el" href="emsmdb_8c_source.html#l00283">emsmdb_transaction()</a>, <a class="el" href="mapi__object_8c_source.html#l00264">mapi_object_get_handle()</a>, <a class="el" href="mapi__object_8c_source.html#l00238">mapi_object_get_logon_id()</a>, and <a class="el" href="mapi__object_8c_source.html#l00165">mapi_object_get_session()</a>.</p>

</div>
</div><p>
<a class="anchor" name="d2d719b843217fd96ceb4f1f3f83994e"></a><!-- doxytag: member="IMAPITable.c::SeekRowBookmark" ref="d2d719b843217fd96ceb4f1f3f83994e" args="(mapi_object_t *obj_table, uint32_t lpbkPosition, uint32_t RowCount, uint32_t *row)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">_PUBLIC_ enum MAPISTATUS SeekRowBookmark           </td>
          <td>(</td>
          <td class="paramtype">mapi_object_t *&nbsp;</td>
          <td class="paramname"> <em>obj_table</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&nbsp;</td>
          <td class="paramname"> <em>lpbkPosition</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&nbsp;</td>
          <td class="paramname"> <em>RowCount</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t *&nbsp;</td>
          <td class="paramname"> <em>row</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Move the table cursor at a specific location given a bookmark<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>obj_table</em>&nbsp;</td><td>the table we are moving cursor on </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>lpbkPosition</em>&nbsp;</td><td>the bookmarked position </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>RowCount</em>&nbsp;</td><td>a relative number of rows to the bookmark </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>row</em>&nbsp;</td><td>the position of the seeked row is returned in rows</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>MAPI_E_SUCCESS on success, otherwise MAPI error.</dd></dl>
<dl class="note" compact><dt><b>Note:</b></dt><dd>Developers may also call <a class="el" href="IUnknown_8c.html#8237c7fc76377cb07f3f55920d6f20de">GetLastError()</a> to retrieve the last MAPI error code. Possible MAPI error codes are:<ul>
<li>MAPI_E_NOT_INITIALIZED: MAPI subsystem has not been initialized</li><li>MAPI_E_INVALID_PARAMETER: obj_table is NULL</li><li>MAPI_E_INVALID_BOOKMARK: The bookmark specified is invalid or beyond the last row requested</li><li>MAPI_E_CALL_FAILED: A network problem was encountered during the transaction</li></ul>
</dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="IMAPITable_8c.html#f08bb8c8425b58d2d01f30e8016058f6">CreateBookmark</a>, <a class="el" href="IMAPITable_8c.html#8325d57fa9b2e520401a243e0c0360e6">FreeBookmark</a> </dd></dl>

<p>References <a class="el" href="emsmdb_8c_source.html#l00283">emsmdb_transaction()</a>, <a class="el" href="mapi__object_8c_source.html#l00334">mapi_object_bookmark_find()</a>, <a class="el" href="mapi__object_8c_source.html#l00264">mapi_object_get_handle()</a>, <a class="el" href="mapi__object_8c_source.html#l00238">mapi_object_get_logon_id()</a>, and <a class="el" href="mapi__object_8c_source.html#l00165">mapi_object_get_session()</a>.</p>

</div>
</div><p>
<a class="anchor" name="eb30219dbd2163d0238905c054b789e6"></a><!-- doxytag: member="IMAPITable.c::SetCollapseState" ref="eb30219dbd2163d0238905c054b789e6" args="(mapi_object_t *obj_table, struct SBinary_short *CollapseState)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">_PUBLIC_ enum MAPISTATUS SetCollapseState           </td>
          <td>(</td>
          <td class="paramtype">mapi_object_t *&nbsp;</td>
          <td class="paramname"> <em>obj_table</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct SBinary_short *&nbsp;</td>
          <td class="paramname"> <em>CollapseState</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set the Collapse State of a Table<p>
After a contents table has been sorted and categorized using SortTable, rows can be expanded and collapsed (using <a class="el" href="IMAPITable_8c.html#700c726ea0c7d59b0d01f3f9e5185232">ExpandRow()</a> and <a class="el" href="IMAPITable_8c.html#70a2ad3195e56fdcbb4d19f0e4c39a86">CollapseRow()</a> repectively). You can save the state of the table using GetCollapseState, and restore it using this function.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>obj_table</em>&nbsp;</td><td>the table we are restoring the state for </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>CollapseState</em>&nbsp;</td><td>the Collapse State to restore</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>MAPI_E_SUCCESS on success, otherwise MAPI error.</dd></dl>
<dl class="note" compact><dt><b>Note:</b></dt><dd>Developers may also call <a class="el" href="IUnknown_8c.html#8237c7fc76377cb07f3f55920d6f20de">GetLastError()</a> to retrieve the last MAPI error code. Possible MAPI error codes are:<ul>
<li>MAPI_E_NOT_INITIALIZED: MAPI subsystem has not been initialized</li><li>MAPI_E_INVALID_PARAMETER: obj_table or CollapseState are null</li><li>MAPI_E_CALL_FAILED: A network problem was encountered during the transaction</li></ul>
</dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="IMAPITable_8c.html#3bbb8084d80870c5c0e6ef64070405ae">GetCollapseState</a> </dd></dl>

<p>References <a class="el" href="emsmdb_8c_source.html#l00283">emsmdb_transaction()</a>, <a class="el" href="mapi__object_8c_source.html#l00264">mapi_object_get_handle()</a>, <a class="el" href="mapi__object_8c_source.html#l00238">mapi_object_get_logon_id()</a>, and <a class="el" href="mapi__object_8c_source.html#l00165">mapi_object_get_session()</a>.</p>

</div>
</div><p>
<a class="anchor" name="266cd7f791acf5d9721f5e9e8ac5d49f"></a><!-- doxytag: member="IMAPITable.c::SetColumns" ref="266cd7f791acf5d9721f5e9e8ac5d49f" args="(mapi_object_t *obj_table, struct SPropTagArray *properties)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">_PUBLIC_ enum MAPISTATUS SetColumns           </td>
          <td>(</td>
          <td class="paramtype">mapi_object_t *&nbsp;</td>
          <td class="paramname"> <em>obj_table</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct SPropTagArray *&nbsp;</td>
          <td class="paramname"> <em>properties</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Defines the particular properties and order of properties to appear as columns in the table.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>obj_table</em>&nbsp;</td><td>the table the function is setting columns for </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>properties</em>&nbsp;</td><td>the properties intended to be set</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>MAPI_E_SUCCESS on success, otherwise MAPI error.</dd></dl>
<dl class="note" compact><dt><b>Note:</b></dt><dd>Developers may also call <a class="el" href="IUnknown_8c.html#8237c7fc76377cb07f3f55920d6f20de">GetLastError()</a> to retrieve the last MAPI error code. Possible MAPI error codes are:<ul>
<li>MAPI_E_NOT_INITIALIZED: MAPI subsystem has not been initialized</li><li>MAPI_E_INVALID_PARAMETER: obj_table is NULL</li><li>MAPI_W_ERROR_RETURNED: Problem encountered while trying to set one or more properties</li><li>MAPI_E_CALL_FAILED: A network problem was encountered during the transaction</li></ul>
</dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="IMAPITable_8c.html#e5890f112bb41a03f6ecbe90a16687c4">QueryRows</a>, <a class="el" href="IMAPITable_8c.html#c905b2b4720f6415997da87713933055">QueryColumns</a>, <a class="el" href="IMAPITable_8c.html#4ddf3e5538181452a0ffd7167e46cb5c">SeekRow</a>, <a class="el" href="IUnknown_8c.html#8237c7fc76377cb07f3f55920d6f20de">GetLastError</a> </dd></dl>
<dl compact><dt><b>Examples: </b></dt><dd>
<a class="el" href="fetchappointment_8c-example.html#a8">fetchappointment.c</a>, and <a class="el" href="fetchmail_8c-example.html#a8">fetchmail.c</a>.</dl>
<p>References <a class="el" href="emsmdb_8c_source.html#l00283">emsmdb_transaction()</a>, <a class="el" href="mapi__object_8c_source.html#l00264">mapi_object_get_handle()</a>, <a class="el" href="mapi__object_8c_source.html#l00238">mapi_object_get_logon_id()</a>, and <a class="el" href="mapi__object_8c_source.html#l00165">mapi_object_get_session()</a>.</p>

<p>Referenced by <a class="el" href="freebusy_8c_source.html#l00057">GetUserFreeBusyData()</a>, <a class="el" href="simple__mapi_8c_source.html#l00530">ModifyUserPermission()</a>, and <a class="el" href="simple__mapi_8c_source.html#l00643">RemoveUserPermission()</a>.</p>

</div>
</div><p>
<a class="anchor" name="62966b2e1623c625019195ebcc3d5359"></a><!-- doxytag: member="IMAPITable.c::SortTable" ref="62966b2e1623c625019195ebcc3d5359" args="(mapi_object_t *obj_table, struct SSortOrderSet *lpSortCriteria)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">_PUBLIC_ enum MAPISTATUS SortTable           </td>
          <td>(</td>
          <td class="paramtype">mapi_object_t *&nbsp;</td>
          <td class="paramname"> <em>obj_table</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct SSortOrderSet *&nbsp;</td>
          <td class="paramname"> <em>lpSortCriteria</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Order the rows of the table based on a criteria<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>obj_table</em>&nbsp;</td><td>the table we are ordering rows on </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>lpSortCriteria</em>&nbsp;</td><td>pointer on sort criterias to apply</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>MAPI_E_SUCCESS on success, otherwise MAPI error.</dd></dl>
<dl class="note" compact><dt><b>Note:</b></dt><dd>Developers may also call <a class="el" href="IUnknown_8c.html#8237c7fc76377cb07f3f55920d6f20de">GetLastError()</a> to retrieve the last MAPI error code. Possible MAPI error codes are:<ul>
<li>MAPI_E_NOT_INITIALIZED: MAPI subsystem has not been initialized</li><li>MAPI_E_INVALID_PARAMETER: obj_table or lpSortCriteria is NULL</li><li>MAPI_E_CALL_FAILED: A network problem was encountered during the transaction </li></ul>
</dd></dl>

<p>References <a class="el" href="emsmdb_8c_source.html#l00283">emsmdb_transaction()</a>, <a class="el" href="mapi__object_8c_source.html#l00264">mapi_object_get_handle()</a>, <a class="el" href="mapi__object_8c_source.html#l00238">mapi_object_get_logon_id()</a>, and <a class="el" href="mapi__object_8c_source.html#l00165">mapi_object_get_session()</a>.</p>

<p>Referenced by <a class="el" href="freebusy_8c_source.html#l00057">GetUserFreeBusyData()</a>.</p>

</div>
</div><p>
</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>