Sophie

Sophie

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

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/emsmdb.c File Reference</h1>EMSMDB stack functions.  
<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">struct mapi_notify_ctx *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="emsmdb_8c.html#3ceb606e3d9b8d34e0f243b19d6a8373">emsmdb_bind_notification</a> (TALLOC_CTX *mem_ctx)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">struct emsmdb_context *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="emsmdb_8c.html#4e098a9f68087942d1a701ed470de51e">emsmdb_connect</a> (TALLOC_CTX *parent_mem_ctx, struct mapi_session *session, struct dcerpc_pipe *p, struct cli_credentials *cred)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">enum MAPISTATUS&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="emsmdb_8c.html#1b48f67a8136e0bceb930511b026d379">emsmdb_disconnect</a> (struct emsmdb_context *emsmdb_ctx)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="emsmdb_8c.html#4e73dc1cd7f2e88547ccfaed7fe1fa0f">emsmdb_disconnect_dtor</a> (void *data)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">_PUBLIC_ struct emsmdb_info *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="emsmdb_8c.html#30a51feb44a4df3bbefca6256e3b426d">emsmdb_get_info</a> (struct mapi_session *session)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">enum MAPISTATUS&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="emsmdb_8c.html#da6d4bd3a6c9fe47d33a40c3212c8cb1">emsmdb_get_SPropValue</a> (TALLOC_CTX *mem_ctx, struct loadparm_context *lp_ctx, DATA_BLOB *content, struct SPropTagArray *tags, struct SPropValue **propvals, uint32_t *cn_propvals, uint8_t flag)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="emsmdb_8c.html#63a938e21037ec27d8103e517193c5d0">emsmdb_get_SRow</a> (TALLOC_CTX *mem_ctx, struct loadparm_context *lp_ctx, struct SRow *aRow, struct SPropTagArray *proptags, uint16_t propcount, DATA_BLOB *content, uint8_t flag, uint8_t align)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">_PUBLIC_ void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="emsmdb_8c.html#5c64d3e12759fe8427b37cc1a56ed06b">emsmdb_get_SRowSet</a> (TALLOC_CTX *mem_ctx, struct loadparm_context *lp_ctx, struct SRowSet *rowset, struct SPropTagArray *proptags, DATA_BLOB *content)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">NTSTATUS&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="emsmdb_8c.html#500b279eff945d3ee9ef15d2f5d53cf2">emsmdb_register_notification</a> (struct NOTIFKEY *notifkey, uint16_t ulEventMask)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">_PUBLIC_ NTSTATUS&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="emsmdb_8c.html#a24c6e837ad69c724900573381d0c52a">emsmdb_transaction</a> (struct emsmdb_context *emsmdb_ctx, struct mapi_request *req, struct mapi_response **repl)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">_PUBLIC_ NTSTATUS&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="emsmdb_8c.html#7f4dfd76879dea2bf003f52d8bce38d3">emsmdb_transaction_null</a> (struct emsmdb_context *emsmdb_ctx, struct mapi_response **res)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">const void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="emsmdb_8c.html#9af10327453a0da639fd14cd5670ea95">pull_emsmdb_property</a> (TALLOC_CTX *mem_ctx, struct loadparm_context *lp_ctx, uint32_t *offset, enum MAPITAGS tag, DATA_BLOB *data)</td></tr>

</table>
<hr><h2>Detailed Description</h2>
EMSMDB stack functions. 
<p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="3ceb606e3d9b8d34e0f243b19d6a8373"></a><!-- doxytag: member="emsmdb.c::emsmdb_bind_notification" ref="3ceb606e3d9b8d34e0f243b19d6a8373" args="(TALLOC_CTX *mem_ctx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct mapi_notify_ctx* emsmdb_bind_notification           </td>
          <td>(</td>
          <td class="paramtype">TALLOC_CTX *&nbsp;</td>
          <td class="paramname"> <em>mem_ctx</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Initialize the notify context structure and bind a local UDP port to receive notifications from 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>mem_ctx</em>&nbsp;</td><td>pointer to the memory context</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>an allocated mapi_notify_ctx structure on success, otherwise NULL </dd></dl>

<p>Referenced by <a class="el" href="IMSProvider_8c_source.html#l00305">RegisterNotification()</a>.</p>

</div>
</div><p>
<a class="anchor" name="4e098a9f68087942d1a701ed470de51e"></a><!-- doxytag: member="emsmdb.c::emsmdb_connect" ref="4e098a9f68087942d1a701ed470de51e" args="(TALLOC_CTX *parent_mem_ctx, struct mapi_session *session, struct dcerpc_pipe *p, struct cli_credentials *cred)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct emsmdb_context* emsmdb_connect           </td>
          <td>(</td>
          <td class="paramtype">TALLOC_CTX *&nbsp;</td>
          <td class="paramname"> <em>parent_mem_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct mapi_session *&nbsp;</td>
          <td class="paramname"> <em>session</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct dcerpc_pipe *&nbsp;</td>
          <td class="paramname"> <em>p</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct cli_credentials *&nbsp;</td>
          <td class="paramname"> <em>cred</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Establishes a new Session Context with the server on the exchange_emsmdb pipe<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>parent_mem_ctx</em>&nbsp;</td><td>pointer to the memory context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>session</em>&nbsp;</td><td>pointer to the MAPI session context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>p</em>&nbsp;</td><td>pointer to the DCERPC pipe </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>cred</em>&nbsp;</td><td>pointer to the user credentials</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>an allocated emsmdb_context on success, otherwise NULL </dd></dl>

</div>
</div><p>
<a class="anchor" name="1b48f67a8136e0bceb930511b026d379"></a><!-- doxytag: member="emsmdb.c::emsmdb_disconnect" ref="1b48f67a8136e0bceb930511b026d379" args="(struct emsmdb_context *emsmdb_ctx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum MAPISTATUS emsmdb_disconnect           </td>
          <td>(</td>
          <td class="paramtype">struct emsmdb_context *&nbsp;</td>
          <td class="paramname"> <em>emsmdb_ctx</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Destroy the EMSMDB context handle<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>emsmdb_ctx</em>&nbsp;</td><td>pointer to the EMSMDB context</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>MAPI_E_SUCCESS on success, otherwise MAPI error </dd></dl>

<p>Referenced by <a class="el" href="emsmdb_8c_source.html#l00156">emsmdb_disconnect_dtor()</a>.</p>

</div>
</div><p>
<a class="anchor" name="4e73dc1cd7f2e88547ccfaed7fe1fa0f"></a><!-- doxytag: member="emsmdb.c::emsmdb_disconnect_dtor" ref="4e73dc1cd7f2e88547ccfaed7fe1fa0f" args="(void *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int emsmdb_disconnect_dtor           </td>
          <td>(</td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>data</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Destructor for the EMSMDB context. Call the EcDoDisconnect 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>data</em>&nbsp;</td><td>generic pointer to data with mapi_provider information</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>MAPI_E_SUCCESS on success, otherwise -1 </dd></dl>

<p>References <a class="el" href="emsmdb_8c_source.html#l00185">emsmdb_disconnect()</a>.</p>

<p>Referenced by <a class="el" href="cdo__mapi_8c_source.html#l00107">MapiLogonProvider()</a>.</p>

</div>
</div><p>
<a class="anchor" name="30a51feb44a4df3bbefca6256e3b426d"></a><!-- doxytag: member="emsmdb.c::emsmdb_get_info" ref="30a51feb44a4df3bbefca6256e3b426d" args="(struct mapi_session *session)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">_PUBLIC_ struct emsmdb_info* emsmdb_get_info           </td>
          <td>(</td>
          <td class="paramtype">struct mapi_session *&nbsp;</td>
          <td class="paramname"> <em>session</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [read]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Retrieves the EMSMDB context server information structure<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>session</em>&nbsp;</td><td>pointer to the MAPI session context</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the server info structure on success, otherwise NULL </dd></dl>

</div>
</div><p>
<a class="anchor" name="da6d4bd3a6c9fe47d33a40c3212c8cb1"></a><!-- doxytag: member="emsmdb.c::emsmdb_get_SPropValue" ref="da6d4bd3a6c9fe47d33a40c3212c8cb1" args="(TALLOC_CTX *mem_ctx, struct loadparm_context *lp_ctx, DATA_BLOB *content, struct SPropTagArray *tags, struct SPropValue **propvals, uint32_t *cn_propvals, uint8_t flag)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum MAPISTATUS emsmdb_get_SPropValue           </td>
          <td>(</td>
          <td class="paramtype">TALLOC_CTX *&nbsp;</td>
          <td class="paramname"> <em>mem_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct loadparm_context *&nbsp;</td>
          <td class="paramname"> <em>lp_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DATA_BLOB *&nbsp;</td>
          <td class="paramname"> <em>content</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct SPropTagArray *&nbsp;</td>
          <td class="paramname"> <em>tags</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct SPropValue **&nbsp;</td>
          <td class="paramname"> <em>propvals</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t *&nbsp;</td>
          <td class="paramname"> <em>cn_propvals</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&nbsp;</td>
          <td class="paramname"> <em>flag</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 a SPropValue array from a DATA blob<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>mem_ctx</em>&nbsp;</td><td>pointer to the memory context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>lp_ctx</em>&nbsp;</td><td>pointer to the loadparm context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>content</em>&nbsp;</td><td>pointer to the DATA blob content </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>tags</em>&nbsp;</td><td>pointer to a list of property tags to lookup </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>propvals</em>&nbsp;</td><td>pointer on pointer to the returned SPropValues </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>cn_propvals</em>&nbsp;</td><td>pointer to the number of propvals </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>flag</em>&nbsp;</td><td>describes the type data</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>MAPI_E_SUCCESS on success </dd></dl>

<p>References <a class="el" href="emsmdb_8c_source.html#l00520">pull_emsmdb_property()</a>.</p>

<p>Referenced by <a class="el" href="IMAPIProp_8c_source.html#l00059">GetProps()</a>.</p>

</div>
</div><p>
<a class="anchor" name="63a938e21037ec27d8103e517193c5d0"></a><!-- doxytag: member="emsmdb.c::emsmdb_get_SRow" ref="63a938e21037ec27d8103e517193c5d0" args="(TALLOC_CTX *mem_ctx, struct loadparm_context *lp_ctx, struct SRow *aRow, struct SPropTagArray *proptags, uint16_t propcount, DATA_BLOB *content, uint8_t flag, uint8_t align)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void emsmdb_get_SRow           </td>
          <td>(</td>
          <td class="paramtype">TALLOC_CTX *&nbsp;</td>
          <td class="paramname"> <em>mem_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct loadparm_context *&nbsp;</td>
          <td class="paramname"> <em>lp_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct SRow *&nbsp;</td>
          <td class="paramname"> <em>aRow</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct SPropTagArray *&nbsp;</td>
          <td class="paramname"> <em>proptags</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&nbsp;</td>
          <td class="paramname"> <em>propcount</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DATA_BLOB *&nbsp;</td>
          <td class="paramname"> <em>content</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&nbsp;</td>
          <td class="paramname"> <em>flag</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&nbsp;</td>
          <td class="paramname"> <em>align</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 a SRow from a DATA blob<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>mem_ctx</em>&nbsp;</td><td>pointer on the memory context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>lp_ctx</em>&nbsp;</td><td>pointer on the loadparm context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>aRow</em>&nbsp;</td><td>pointer on the returned SRow </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>proptags</em>&nbsp;</td><td>pointer on a list of property tags to lookup </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>propcount</em>&nbsp;</td><td>number of SPropValue entries in aRow </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>content</em>&nbsp;</td><td>pointer on the DATA blob content </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>flag</em>&nbsp;</td><td>the type data </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>align</em>&nbsp;</td><td>alignment pad</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>MAPI_E_SUCCESS on success</dd></dl>
<dl class="note" compact><dt><b>Note:</b></dt><dd>TODO: We shouldn't have any alignment pad here </dd></dl>

<p>References <a class="el" href="emsmdb_8c_source.html#l00520">pull_emsmdb_property()</a>.</p>

<p>Referenced by <a class="el" href="IMessage_8c_source.html#l01408">OpenEmbeddedMessage()</a>, and <a class="el" href="IStoreFolder_8c_source.html#l00061">OpenMessage()</a>.</p>

</div>
</div><p>
<a class="anchor" name="5c64d3e12759fe8427b37cc1a56ed06b"></a><!-- doxytag: member="emsmdb.c::emsmdb_get_SRowSet" ref="5c64d3e12759fe8427b37cc1a56ed06b" args="(TALLOC_CTX *mem_ctx, struct loadparm_context *lp_ctx, struct SRowSet *rowset, struct SPropTagArray *proptags, DATA_BLOB *content)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">_PUBLIC_ void emsmdb_get_SRowSet           </td>
          <td>(</td>
          <td class="paramtype">TALLOC_CTX *&nbsp;</td>
          <td class="paramname"> <em>mem_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct loadparm_context *&nbsp;</td>
          <td class="paramname"> <em>lp_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct SRowSet *&nbsp;</td>
          <td class="paramname"> <em>rowset</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct SPropTagArray *&nbsp;</td>
          <td class="paramname"> <em>proptags</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DATA_BLOB *&nbsp;</td>
          <td class="paramname"> <em>content</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 a SRowSet from a DATA blob<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>mem_ctx</em>&nbsp;</td><td>pointer on the memory context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>lp_ctx</em>&nbsp;</td><td>pointer on the loadparm context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>rowset</em>&nbsp;</td><td>pointer on the returned SRowSe </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>proptags</em>&nbsp;</td><td>pointer on a list of property tags to lookup </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>content</em>&nbsp;</td><td>pointer on the DATA blob content</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>MAPI_E_SUCCESS on success</dd></dl>
<dl class="note" compact><dt><b>Note:</b></dt><dd>TODO: this doesn't yet handle the TypedPropertyValue and FlaggedPropertyValueWithTypeSpecified variants </dd></dl>

<p>References <a class="el" href="emsmdb_8c_source.html#l00520">pull_emsmdb_property()</a>.</p>

<p>Referenced by <a class="el" href="IMAPITable_8c_source.html#l01505">ExpandRow()</a>, <a class="el" href="IMAPITable_8c_source.html#l01215">FindRow()</a>, and <a class="el" href="IMAPITable_8c_source.html#l00233">QueryRows()</a>.</p>

</div>
</div><p>
<a class="anchor" name="500b279eff945d3ee9ef15d2f5d53cf2"></a><!-- doxytag: member="emsmdb.c::emsmdb_register_notification" ref="500b279eff945d3ee9ef15d2f5d53cf2" args="(struct NOTIFKEY *notifkey, uint16_t ulEventMask)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">NTSTATUS emsmdb_register_notification           </td>
          <td>(</td>
          <td class="paramtype">struct NOTIFKEY *&nbsp;</td>
          <td class="paramname"> <em>notifkey</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint16_t&nbsp;</td>
          <td class="paramname"> <em>ulEventMask</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Register for notifications on 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>notifkey</em>&nbsp;</td><td>The opaque client-generated context data </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>ulEventMask</em>&nbsp;</td><td>Notification flags. Exchange completely ignores this value and it should be set to 0</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>NTSTATUS_OK on success, otherwise NT status error </dd></dl>

<p>Referenced by <a class="el" href="IMSProvider_8c_source.html#l00305">RegisterNotification()</a>.</p>

</div>
</div><p>
<a class="anchor" name="a24c6e837ad69c724900573381d0c52a"></a><!-- doxytag: member="emsmdb.c::emsmdb_transaction" ref="a24c6e837ad69c724900573381d0c52a" args="(struct emsmdb_context *emsmdb_ctx, struct mapi_request *req, struct mapi_response **repl)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">_PUBLIC_ NTSTATUS emsmdb_transaction           </td>
          <td>(</td>
          <td class="paramtype">struct emsmdb_context *&nbsp;</td>
          <td class="paramname"> <em>emsmdb_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct mapi_request *&nbsp;</td>
          <td class="paramname"> <em>req</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct mapi_response **&nbsp;</td>
          <td class="paramname"> <em>repl</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Make a EMSMDB transaction.<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>emsmdb_ctx</em>&nbsp;</td><td>pointer to the EMSMDB connection context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>req</em>&nbsp;</td><td>pointer to the MAPI request to send </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>repl</em>&nbsp;</td><td>pointer on pointer to the MAPI reply returned by the server</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>NT_STATUS_OK on success, otherwise NT status error </dd></dl>

<p>Referenced by <a class="el" href="IMAPITable_8c_source.html#l01410">Abort()</a>, <a class="el" href="IMessage_8c_source.html#l00994">AbortSubmit()</a>, <a class="el" href="IXPLogon_8c_source.html#l00050">AddressTypes()</a>, <a class="el" href="IStream_8c_source.html#l00902">CloneStream()</a>, <a class="el" href="IMAPITable_8c_source.html#l01609">CollapseRow()</a>, <a class="el" href="IStream_8c_source.html#l00340">CommitStream()</a>, <a class="el" href="IMAPIFolder_8c_source.html#l01020">CopyFolder()</a>, <a class="el" href="IMAPIProp_8c_source.html#l01144">CopyProps()</a>, <a class="el" href="IMAPIProp_8c_source.html#l01260">CopyTo()</a>, <a class="el" href="IStream_8c_source.html#l00650">CopyToStream()</a>, <a class="el" href="IMessage_8c_source.html#l00077">CreateAttach()</a>, <a class="el" href="IMAPITable_8c_source.html#l00689">CreateBookmark()</a>, <a class="el" href="IMAPIFolder_8c_source.html#l00597">CreateFolder()</a>, <a class="el" href="IMAPIFolder_8c_source.html#l00048">CreateMessage()</a>, <a class="el" href="IMessage_8c_source.html#l00162">DeleteAttach()</a>, <a class="el" href="IMAPIFolder_8c_source.html#l00824">DeleteFolder()</a>, <a class="el" href="IMAPIFolder_8c_source.html#l00139">DeleteMessage()</a>, <a class="el" href="IMAPIProp_8c_source.html#l00734">DeletePropertiesNoReplicate()</a>, <a class="el" href="IMAPIProp_8c_source.html#l00544">DeleteProps()</a>, <a class="el" href="IMAPIFolder_8c_source.html#l00739">EmptyFolder()</a>, <a class="el" href="IMAPITable_8c_source.html#l01505">ExpandRow()</a>, <a class="el" href="IMAPITable_8c_source.html#l01215">FindRow()</a>, <a class="el" href="IMAPITable_8c_source.html#l00782">FreeBookmark()</a>, <a class="el" href="IMessage_8c_source.html#l00234">GetAttachmentTable()</a>, <a class="el" href="IMAPITable_8c_source.html#l01700">GetCollapseState()</a>, <a class="el" href="IMAPIContainer_8c_source.html#l00081">GetContentsTable()</a>, <a class="el" href="IMAPIContainer_8c_source.html#l00207">GetHierarchyTable()</a>, <a class="el" href="IUnknown_8c_source.html#l00276">GetIdFromLongTermId()</a>, <a class="el" href="IMAPIProp_8c_source.html#l00922">GetIDsFromNames()</a>, <a class="el" href="FXICS_8c_source.html#l00051">GetLocalReplicaIds()</a>, <a class="el" href="IUnknown_8c_source.html#l00192">GetLongTermIdFromId()</a>, <a class="el" href="IMAPIFolder_8c_source.html#l00303">GetMessageStatus()</a>, <a class="el" href="IMAPIProp_8c_source.html#l00818">GetNamesFromIDs()</a>, <a class="el" href="IMsgStore_8c_source.html#l00661">GetOwningServers()</a>, <a class="el" href="IMAPIProp_8c_source.html#l00379">GetPropList()</a>, <a class="el" href="IMAPIProp_8c_source.html#l00059">GetProps()</a>, <a class="el" href="IMAPIProp_8c_source.html#l00464">GetPropsAll()</a>, <a class="el" href="IMsgStore_8c_source.html#l00396">GetReceiveFolder()</a>, <a class="el" href="IMsgStore_8c_source.html#l00483">GetReceiveFolderTable()</a>, <a class="el" href="IMAPIContainer_8c_source.html#l00395">GetRulesTable()</a>, <a class="el" href="IMAPIContainer_8c_source.html#l00704">GetSearchCriteria()</a>, <a class="el" href="IMAPITable_8c_source.html#l01337">GetStatus()</a>, <a class="el" href="IMsgStore_8c_source.html#l00768">GetStoreState()</a>, <a class="el" href="IStream_8c_source.html#l00408">GetStreamSize()</a>, <a class="el" href="IMAPIContainer_8c_source.html#l00303">GetTable()</a>, <a class="el" href="IMsgStore_8c_source.html#l00582">GetTransportFolder()</a>, <a class="el" href="IMAPIFolder_8c_source.html#l00223">HardDeleteMessage()</a>, <a class="el" href="IMAPIFolder_8c_source.html#l01222">HardDeleteMessagesAndSubfolders()</a>, <a class="el" href="IStream_8c_source.html#l00748">LockRegionStream()</a>, <a class="el" href="IMessage_8c_source.html#l00529">ModifyRecipients()</a>, <a class="el" href="IMAPIContainer_8c_source.html#l00493">ModifyTable()</a>, <a class="el" href="IMAPIFolder_8c_source.html#l00489">MoveCopyMessages()</a>, <a class="el" href="IMAPIFolder_8c_source.html#l00912">MoveFolder()</a>, <a class="el" href="IMessage_8c_source.html#l00324">OpenAttach()</a>, <a class="el" href="IMessage_8c_source.html#l01408">OpenEmbeddedMessage()</a>, <a class="el" href="IMsgStore_8c_source.html#l00048">OpenFolder()</a>, <a class="el" href="IStoreFolder_8c_source.html#l00061">OpenMessage()</a>, <a class="el" href="IMAPISession_8c_source.html#l00142">OpenPublicFolder()</a>, <a class="el" href="IMsgStore_8c_source.html#l00219">OpenPublicFolderByName()</a>, <a class="el" href="IStream_8c_source.html#l00063">OpenStream()</a>, <a class="el" href="IMAPISession_8c_source.html#l00306">OpenUserMailbox()</a>, <a class="el" href="IMsgStore_8c_source.html#l00133">PublicFolderIsGhosted()</a>, <a class="el" href="IMAPITable_8c_source.html#l00325">QueryColumns()</a>, <a class="el" href="IMAPIProp_8c_source.html#l01035">QueryNamedProperties()</a>, <a class="el" href="IMAPITable_8c_source.html#l00147">QueryPosition()</a>, <a class="el" href="IMAPITable_8c_source.html#l00233">QueryRows()</a>, <a class="el" href="IMessage_8c_source.html#l00753">ReadRecipients()</a>, <a class="el" href="IStream_8c_source.html#l00164">ReadStream()</a>, <a class="el" href="IUnknown_8c_source.html#l00112">Release()</a>, <a class="el" href="IMessage_8c_source.html#l00836">RemoveAllRecipients()</a>, <a class="el" href="IMAPITable_8c_source.html#l01026">Reset()</a>, <a class="el" href="IMAPITable_8c_source.html#l01111">Restrict()</a>, <a class="el" href="IMAPIProp_8c_source.html#l00295">SaveChangesAttachment()</a>, <a class="el" href="IMessage_8c_source.html#l01084">SaveChangesMessage()</a>, <a class="el" href="IMAPITable_8c_source.html#l00414">SeekRow()</a>, <a class="el" href="IMAPITable_8c_source.html#l00609">SeekRowApprox()</a>, <a class="el" href="IMAPITable_8c_source.html#l00504">SeekRowBookmark()</a>, <a class="el" href="IStream_8c_source.html#l00489">SeekStream()</a>, <a class="el" href="IMAPITable_8c_source.html#l01791">SetCollapseState()</a>, <a class="el" href="IMAPITable_8c_source.html#l00051">SetColumns()</a>, <a class="el" href="IMessage_8c_source.html#l01276">SetMessageReadFlag()</a>, <a class="el" href="IMAPIFolder_8c_source.html#l00397">SetMessageStatus()</a>, <a class="el" href="IMAPIProp_8c_source.html#l00627">SetPropertiesNoReplicate()</a>, <a class="el" href="IMAPIProp_8c_source.html#l00181">SetProps()</a>, <a class="el" href="IMAPIFolder_8c_source.html#l01136">SetReadFlags()</a>, <a class="el" href="IMsgStore_8c_source.html#l00310">SetReceiveFolder()</a>, <a class="el" href="IMAPIContainer_8c_source.html#l00605">SetSearchCriteria()</a>, <a class="el" href="IXPLogon_8c_source.html#l00125">SetSpooler()</a>, <a class="el" href="IStream_8c_source.html#l00570">SetStreamSize()</a>, <a class="el" href="IMAPITable_8c_source.html#l00880">SortTable()</a>, <a class="el" href="IXPLogon_8c_source.html#l00199">SpoolerLockMessage()</a>, <a class="el" href="IMessage_8c_source.html#l00913">SubmitMessage()</a>, <a class="el" href="IMAPISupport_8c_source.html#l00073">Subscribe()</a>, <a class="el" href="IMsgStore_8c_source.html#l00876">TransportNewMail()</a>, <a class="el" href="IMessage_8c_source.html#l01159">TransportSend()</a>, <a class="el" href="IStream_8c_source.html#l00827">UnlockRegionStream()</a>, <a class="el" href="IStream_8c_source.html#l00994">WriteAndCommitStream()</a>, and <a class="el" href="IStream_8c_source.html#l00260">WriteStream()</a>.</p>

</div>
</div><p>
<a class="anchor" name="7f4dfd76879dea2bf003f52d8bce38d3"></a><!-- doxytag: member="emsmdb.c::emsmdb_transaction_null" ref="7f4dfd76879dea2bf003f52d8bce38d3" args="(struct emsmdb_context *emsmdb_ctx, struct mapi_response **res)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">_PUBLIC_ NTSTATUS emsmdb_transaction_null           </td>
          <td>(</td>
          <td class="paramtype">struct emsmdb_context *&nbsp;</td>
          <td class="paramname"> <em>emsmdb_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct mapi_response **&nbsp;</td>
          <td class="paramname"> <em>res</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Send an empty MAPI packet - useful to keep connection up or force notifications.<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>emsmdb_ctx</em>&nbsp;</td><td>pointer to the EMSMDB connection context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>res</em>&nbsp;</td><td>pointer on pointer to a MAPI response structure</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>NT_STATUS_OK on success, otherwise NT status error </dd></dl>

<p>Referenced by <a class="el" href="IMAPISupport_8c_source.html#l00340">DispatchNotifications()</a>, and <a class="el" href="IMAPISupport_8c_source.html#l00387">MonitorNotification()</a>.</p>

</div>
</div><p>
<a class="anchor" name="9af10327453a0da639fd14cd5670ea95"></a><!-- doxytag: member="emsmdb.c::pull_emsmdb_property" ref="9af10327453a0da639fd14cd5670ea95" args="(TALLOC_CTX *mem_ctx, struct loadparm_context *lp_ctx, uint32_t *offset, enum MAPITAGS tag, DATA_BLOB *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const void* pull_emsmdb_property           </td>
          <td>(</td>
          <td class="paramtype">TALLOC_CTX *&nbsp;</td>
          <td class="paramname"> <em>mem_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct loadparm_context *&nbsp;</td>
          <td class="paramname"> <em>lp_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t *&nbsp;</td>
          <td class="paramname"> <em>offset</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">enum MAPITAGS&nbsp;</td>
          <td class="paramname"> <em>tag</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DATA_BLOB *&nbsp;</td>
          <td class="paramname"> <em>data</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 a property value from a DATA blob<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>mem_ctx</em>&nbsp;</td><td>pointer to the memory context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>lp_ctx</em>&nbsp;</td><td>pointer to the loadparm context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>offset</em>&nbsp;</td><td>pointer on pointer to the current offset </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>tag</em>&nbsp;</td><td>the property tag which value is to be retrieved </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>pointer to the data</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer on constant generic data on success, otherwise NULL </dd></dl>

<p>Referenced by <a class="el" href="emsmdb_8c_source.html#l00665">emsmdb_get_SPropValue()</a>, <a class="el" href="emsmdb_8c_source.html#l00811">emsmdb_get_SRow()</a>, and <a class="el" href="emsmdb_8c_source.html#l00725">emsmdb_get_SRowSet()</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>