Sophie

Sophie

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

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

<html>
  <head>
    <title>MAPIClientLibraries 0.9 API Documentation</title>
    <link href="doxygen.css" rel="stylesheet" type="text/css"/>
    <link href="apidocs.css" rel="stylesheet" type="text/css"/>
  </head>
  <body>
    <div id="website">
    <div class="header"></div>
      <div id="middle_side">
	<div id="right_side_home">
<!-- Generated by Doxygen 1.7.1 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
    </ul>
  </div>
  <div class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<h1>libmapi/emsmdb.c File Reference</h1>  </div>
</div>
<div class="contents">

<p>EMSMDB stack functions.  
<a href="#_details">More...</a></p>
<code>#include &lt;unistd.h&gt;</code><br/>
<code>#include &lt;fcntl.h&gt;</code><br/>
<code>#include &lt;<a class="el" href="libmapi_8h.html">libmapi/libmapi.h</a>&gt;</code><br/>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structmapi__notify__ctx.html">mapi_notify_ctx</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="emsmdb_8c.html#a3ceb606e3d9b8d34e0f243b19d6a8373">emsmdb_bind_notification</a> (TALLOC_CTX *mem_ctx)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structemsmdb__context.html">emsmdb_context</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="emsmdb_8c.html#a7cd3ad8dc8ac91f6dde89d411699afdb">emsmdb_connect</a> (TALLOC_CTX *parent_mem_ctx, struct <a class="el" href="structmapi__session.html">mapi_session</a> *session, struct dcerpc_pipe *p, struct cli_credentials *cred, int *return_value)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum MAPISTATUS&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="emsmdb_8c.html#a1b48f67a8136e0bceb930511b026d379">emsmdb_disconnect</a> (struct <a class="el" href="structemsmdb__context.html">emsmdb_context</a> *emsmdb_ctx)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="emsmdb_8c.html#a4e73dc1cd7f2e88547ccfaed7fe1fa0f">emsmdb_disconnect_dtor</a> (void *data)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">_PUBLIC_ struct <a class="el" href="structemsmdb__info.html">emsmdb_info</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="emsmdb_8c.html#a30a51feb44a4df3bbefca6256e3b426d">emsmdb_get_info</a> (struct <a class="el" href="structmapi__session.html">mapi_session</a> *session)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum MAPISTATUS&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="emsmdb_8c.html#ada6d4bd3a6c9fe47d33a40c3212c8cb1">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" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="emsmdb_8c.html#a63a938e21037ec27d8103e517193c5d0">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" align="right" valign="top">_PUBLIC_ void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="emsmdb_8c.html#a5c64d3e12759fe8427b37cc1a56ed06b">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" align="right" valign="top">NTSTATUS&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="emsmdb_8c.html#a500b279eff945d3ee9ef15d2f5d53cf2">emsmdb_register_notification</a> (struct NOTIFKEY *notifkey, uint16_t ulEventMask)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">_PUBLIC_ NTSTATUS&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="emsmdb_8c.html#ae07f13624739ffff34e89ed3003a354e">emsmdb_transaction</a> (struct <a class="el" href="structemsmdb__context.html">emsmdb_context</a> *emsmdb_ctx, TALLOC_CTX *mem_ctx, struct mapi_request *req, struct mapi_response **repl)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">_PUBLIC_ NTSTATUS&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="emsmdb_8c.html#a7f4dfd76879dea2bf003f52d8bce38d3">emsmdb_transaction_null</a> (struct <a class="el" href="structemsmdb__context.html">emsmdb_context</a> *emsmdb_ctx, struct mapi_response **res)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="emsmdb_8c.html#a3da63de183da94f2bb7f8f9ec682c0bc">free_emsmdb_property</a> (struct SPropValue *lpProp, void *data)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="emsmdb_8c.html#a9af10327453a0da639fd14cd5670ea95">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/><a name="_details"></a><h2>Detailed Description</h2>
<p>EMSMDB stack functions. </p>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="a3ceb606e3d9b8d34e0f243b19d6a8373"></a><!-- doxytag: member="emsmdb.c::emsmdb_bind_notification" ref="a3ceb606e3d9b8d34e0f243b19d6a8373" args="(TALLOC_CTX *mem_ctx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct <a class="el" href="structmapi__notify__ctx.html">mapi_notify_ctx</a>* 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><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>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>an allocated <a class="el" href="structmapi__notify__ctx.html">mapi_notify_ctx</a> structure on success, otherwise NULL </dd></dl>

<p>References <a class="el" href="cdo__mapi_8c.html#aa3c2b68912988f290961037c76478495">global_mapi_ctx</a>, <a class="el" href="structmapi__ctx.html#a959500d050843deb2da3ed0537471b8f">mapi_ctx::lp_ctx</a>, <a class="el" href="structmapi__notify__ctx.html#a1fc5d293b50a5d0fcdb9c849f4ec122d">mapi_notify_ctx::notifications</a>, <a class="el" href="structmapi__session.html#aaf43b41f2628347b7944827c49334a5a">mapi_session::profile</a>, <a class="el" href="structmapi__profile.html#af441484c51740bebe9061fe704caa77b">mapi_profile::server</a>, and <a class="el" href="structmapi__ctx.html#a50da7cefdb68d32a38e9a48997e440b5">mapi_ctx::session</a>.</p>

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

</div>
</div>
<a class="anchor" id="a7cd3ad8dc8ac91f6dde89d411699afdb"></a><!-- doxytag: member="emsmdb.c::emsmdb_connect" ref="a7cd3ad8dc8ac91f6dde89d411699afdb" args="(TALLOC_CTX *parent_mem_ctx, struct mapi_session *session, struct dcerpc_pipe *p, struct cli_credentials *cred, int *return_value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct <a class="el" href="structemsmdb__context.html">emsmdb_context</a>* 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 <a class="el" href="structmapi__session.html">mapi_session</a> *&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>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>return_value</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><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>
    <tr><td valign="top"></td><td valign="top"><em>return_value</em>&nbsp;</td><td>pointer on EcDoConnect MAPI return value</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>an allocated <a class="el" href="structemsmdb__context.html">emsmdb_context</a> on success, otherwise NULL </dd></dl>

<p>References <a class="el" href="structemsmdb__context.html#a7ceca0be9e5f8b3b0252a8f633e48689">emsmdb_context::cache_requests</a>, <a class="el" href="structmapi__profile.html#ae6fe7c5b0e48326fe74cf2ea0257f7ef">mapi_profile::codepage</a>, <a class="el" href="structemsmdb__context.html#afd13c285acd74511c7e14cf186d03cc9">emsmdb_context::cred</a>, <a class="el" href="structemsmdb__context.html#a76a3f0bf99a8fdafbb07f0494adbafc5">emsmdb_context::handle</a>, <a class="el" href="structemsmdb__context.html#acef3b21384078b141b18586253d9a537">emsmdb_context::info</a>, <a class="el" href="structmapi__profile.html#a13eac67955d0438d039216b931bc1462">mapi_profile::language</a>, <a class="el" href="structmapi__profile.html#a0d22fa4885a0b8584a3ddaa13de4738a">mapi_profile::mailbox</a>, <a class="el" href="mapicode_8c.html#af90ce589a2fc4840cb99616bba533386">mapi_errstr()</a>, <a class="el" href="structemsmdb__context.html#a61d7660cc74e4b1362efee3c7c09f0c1">emsmdb_context::max_data</a>, <a class="el" href="structemsmdb__context.html#a33b1ba33ce27889bf178ba7ebb7979c7">emsmdb_context::mem_ctx</a>, <a class="el" href="structmapi__profile.html#a45abe5f38da3b8b876f2ec071049f7bc">mapi_profile::method</a>, <a class="el" href="structemsmdb__info.html#acfffde947f71ce18c50720b9d47db537">emsmdb_info::pcmsPollsMax</a>, <a class="el" href="structemsmdb__info.html#adbd68a389860c437bfe16a5a2d1f6cef">emsmdb_info::pcmsRetryDelay</a>, <a class="el" href="structemsmdb__info.html#a11a87f6087615fa5907b724ec96d531c">emsmdb_info::pcRetry</a>, <a class="el" href="structemsmdb__info.html#a5e4256c1e8de9ca83534e5d57d435306">emsmdb_info::picxr</a>, <a class="el" href="structmapi__session.html#aaf43b41f2628347b7944827c49334a5a">mapi_session::profile</a>, <a class="el" href="structemsmdb__info.html#ab9f001b55545189386ad4710530a35ff">emsmdb_info::rgwServerVersion</a>, <a class="el" href="structemsmdb__context.html#a2d61f7b271a512e64f1cae33e910bb3b">emsmdb_context::rpc_connection</a>, <a class="el" href="structemsmdb__context.html#a17a5a93bfc235d032ec0cd2b0c66ce92">emsmdb_context::setup</a>, <a class="el" href="structemsmdb__info.html#a88957958705054f9ddcf4bf0e40edec6">emsmdb_info::szDisplayName</a>, and <a class="el" href="structemsmdb__info.html#a8e8f68bad9ca00e970658813b7fe8581">emsmdb_info::szDNPrefix</a>.</p>

<p>Referenced by <a class="el" href="IMSProvider_8c.html#ad5e7bff24db315bfc51c5cfc0bcb08c3">Logon()</a>.</p>

</div>
</div>
<a class="anchor" id="a1b48f67a8136e0bceb930511b026d379"></a><!-- doxytag: member="emsmdb.c::emsmdb_disconnect" ref="a1b48f67a8136e0bceb930511b026d379" 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 <a class="el" href="structemsmdb__context.html">emsmdb_context</a> *&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><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>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>MAPI_E_SUCCESS on success, otherwise MAPI error </dd></dl>

<p>References <a class="el" href="structemsmdb__context.html#a76a3f0bf99a8fdafbb07f0494adbafc5">emsmdb_context::handle</a>, <a class="el" href="mapicode_8h.html#a72f77c7e5d097e7b47c57c0405070d0c">OPENCHANGE_RETVAL_IF</a>, and <a class="el" href="structemsmdb__context.html#a2d61f7b271a512e64f1cae33e910bb3b">emsmdb_context::rpc_connection</a>.</p>

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

</div>
</div>
<a class="anchor" id="a4e73dc1cd7f2e88547ccfaed7fe1fa0f"></a><!-- doxytag: member="emsmdb.c::emsmdb_disconnect_dtor" ref="a4e73dc1cd7f2e88547ccfaed7fe1fa0f" 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><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 <a class="el" href="structmapi__provider.html">mapi_provider</a> information</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>MAPI_E_SUCCESS on success, otherwise -1 </dd></dl>

<p>References <a class="el" href="structemsmdb__context.html#a7ceca0be9e5f8b3b0252a8f633e48689">emsmdb_context::cache_requests</a>, <a class="el" href="structmapi__provider.html#aa2906ad67334b042836f003e766d6d64">mapi_provider::ctx</a>, <a class="el" href="emsmdb_8c.html#a1b48f67a8136e0bceb930511b026d379">emsmdb_disconnect()</a>, <a class="el" href="structemsmdb__context.html#acef3b21384078b141b18586253d9a537">emsmdb_context::info</a>, <a class="el" href="structemsmdb__info.html#a88957958705054f9ddcf4bf0e40edec6">emsmdb_info::szDisplayName</a>, and <a class="el" href="structemsmdb__info.html#a8e8f68bad9ca00e970658813b7fe8581">emsmdb_info::szDNPrefix</a>.</p>

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

</div>
</div>
<a class="anchor" id="a30a51feb44a4df3bbefca6256e3b426d"></a><!-- doxytag: member="emsmdb.c::emsmdb_get_info" ref="a30a51feb44a4df3bbefca6256e3b426d" args="(struct mapi_session *session)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">_PUBLIC_ struct <a class="el" href="structemsmdb__info.html">emsmdb_info</a>* emsmdb_get_info </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structmapi__session.html">mapi_session</a> *&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><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>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the server info structure on success, otherwise NULL </dd></dl>

<p>References <a class="el" href="structmapi__provider.html#aa2906ad67334b042836f003e766d6d64">mapi_provider::ctx</a>, <a class="el" href="structmapi__session.html#a0d032340047573649b7527e660cac594">mapi_session::emsmdb</a>, and <a class="el" href="cdo__mapi_8c.html#aa3c2b68912988f290961037c76478495">global_mapi_ctx</a>.</p>

</div>
</div>
<a class="anchor" id="ada6d4bd3a6c9fe47d33a40c3212c8cb1"></a><!-- doxytag: member="emsmdb.c::emsmdb_get_SPropValue" ref="ada6d4bd3a6c9fe47d33a40c3212c8cb1" 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><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>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>MAPI_E_SUCCESS on success </dd></dl>

<p>References <a class="el" href="emsmdb_8c.html#a3da63de183da94f2bb7f8f9ec682c0bc">free_emsmdb_property()</a>, <a class="el" href="mapidefs_8h.html#a7d9b6282876cdf892e3e67c762d1a886">PT_ERROR</a>, <a class="el" href="emsmdb_8c.html#a9af10327453a0da639fd14cd5670ea95">pull_emsmdb_property()</a>, and <a class="el" href="property_8c.html#aeb5e7230dab0ffb1d15e410aef49ca24">set_SPropValue()</a>.</p>

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

</div>
</div>
<a class="anchor" id="a63a938e21037ec27d8103e517193c5d0"></a><!-- doxytag: member="emsmdb.c::emsmdb_get_SRow" ref="a63a938e21037ec27d8103e517193c5d0" 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><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>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>MAPI_E_SUCCESS on success</dd></dl>
<dl class="note"><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.html#a3da63de183da94f2bb7f8f9ec682c0bc">free_emsmdb_property()</a>, <a class="el" href="mapidefs_8h.html#a7d9b6282876cdf892e3e67c762d1a886">PT_ERROR</a>, <a class="el" href="emsmdb_8c.html#a9af10327453a0da639fd14cd5670ea95">pull_emsmdb_property()</a>, and <a class="el" href="property_8c.html#aeb5e7230dab0ffb1d15e410aef49ca24">set_SPropValue()</a>.</p>

<p>Referenced by <a class="el" href="proto_8h.html#aaf3088b3837b1908e6bb6b14f906a4e0">OpenEmbeddedMessage()</a>, <a class="el" href="proto_8h.html#a26b91ebe67489ca9e12a2ad1ba71548c">OpenMessage()</a>, and <a class="el" href="proto_8h.html#ab6424e4371c22d4cb24af0c5b954c46b">ReloadCachedInformation()</a>.</p>

</div>
</div>
<a class="anchor" id="a5c64d3e12759fe8427b37cc1a56ed06b"></a><!-- doxytag: member="emsmdb.c::emsmdb_get_SRowSet" ref="a5c64d3e12759fe8427b37cc1a56ed06b" 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><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>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>MAPI_E_SUCCESS on success</dd></dl>
<dl class="note"><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.html#a3da63de183da94f2bb7f8f9ec682c0bc">free_emsmdb_property()</a>, <a class="el" href="mapidefs_8h.html#a7d9b6282876cdf892e3e67c762d1a886">PT_ERROR</a>, <a class="el" href="emsmdb_8c.html#a9af10327453a0da639fd14cd5670ea95">pull_emsmdb_property()</a>, and <a class="el" href="property_8c.html#aeb5e7230dab0ffb1d15e410aef49ca24">set_SPropValue()</a>.</p>

<p>Referenced by <a class="el" href="proto_8h.html#ac449d69d77ab398535923a0859691ddf">ExpandRow()</a>, <a class="el" href="proto_8h.html#ae3c55e0b3aaaa9fd6056018d202f785d">FindRow()</a>, and <a class="el" href="proto_8h.html#a3124e8442e355ace743f5e554698eaa1">QueryRows()</a>.</p>

</div>
</div>
<a class="anchor" id="a500b279eff945d3ee9ef15d2f5d53cf2"></a><!-- doxytag: member="emsmdb.c::emsmdb_register_notification" ref="a500b279eff945d3ee9ef15d2f5d53cf2" 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><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>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>NTSTATUS_OK on success, otherwise NT status error </dd></dl>

<p>References <a class="el" href="structmapi__notify__ctx.html#a140477dc433823d7a35ee6f192d7a683">mapi_notify_ctx::addr</a>, <a class="el" href="structmapi__provider.html#aa2906ad67334b042836f003e766d6d64">mapi_provider::ctx</a>, <a class="el" href="structmapi__session.html#a0d032340047573649b7527e660cac594">mapi_session::emsmdb</a>, <a class="el" href="cdo__mapi_8c.html#aa3c2b68912988f290961037c76478495">global_mapi_ctx</a>, <a class="el" href="structemsmdb__context.html#a76a3f0bf99a8fdafbb07f0494adbafc5">emsmdb_context::handle</a>, <a class="el" href="structemsmdb__context.html#a33b1ba33ce27889bf178ba7ebb7979c7">emsmdb_context::mem_ctx</a>, <a class="el" href="structmapi__session.html#aac9c83fd213feed2c69ca8300551a44f">mapi_session::notify_ctx</a>, <a class="el" href="structemsmdb__context.html#a2d61f7b271a512e64f1cae33e910bb3b">emsmdb_context::rpc_connection</a>, and <a class="el" href="structmapi__ctx.html#a50da7cefdb68d32a38e9a48997e440b5">mapi_ctx::session</a>.</p>

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

</div>
</div>
<a class="anchor" id="ae07f13624739ffff34e89ed3003a354e"></a><!-- doxytag: member="emsmdb.c::emsmdb_transaction" ref="ae07f13624739ffff34e89ed3003a354e" args="(struct emsmdb_context *emsmdb_ctx, TALLOC_CTX *mem_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 <a class="el" href="structemsmdb__context.html">emsmdb_context</a> *&nbsp;</td>
          <td class="paramname"> <em>emsmdb_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></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 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><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>mem_ctx</em>&nbsp;</td><td>pointer to the memory 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>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>NT_STATUS_OK on success, otherwise NT status error </dd></dl>

<p>References <a class="el" href="structemsmdb__context.html#a024a859cd9f70f4627158ef21694300a">emsmdb_context::cache_count</a>, <a class="el" href="structemsmdb__context.html#a7ceca0be9e5f8b3b0252a8f633e48689">emsmdb_context::cache_requests</a>, <a class="el" href="structemsmdb__context.html#af8f5a0be425cc016b95b6c003866fd4d">emsmdb_context::cache_size</a>, <a class="el" href="structemsmdb__context.html#a76a3f0bf99a8fdafbb07f0494adbafc5">emsmdb_context::handle</a>, <a class="el" href="structemsmdb__context.html#a61d7660cc74e4b1362efee3c7c09f0c1">emsmdb_context::max_data</a>, <a class="el" href="structemsmdb__context.html#a33b1ba33ce27889bf178ba7ebb7979c7">emsmdb_context::mem_ctx</a>, <a class="el" href="structemsmdb__context.html#a2d61f7b271a512e64f1cae33e910bb3b">emsmdb_context::rpc_connection</a>, and <a class="el" href="structemsmdb__context.html#a17a5a93bfc235d032ec0cd2b0c66ce92">emsmdb_context::setup</a>.</p>

<p>Referenced by <a class="el" href="proto_8h.html#a66c99e4c6eb8a7eae42a0abac01fa75b">Abort()</a>, <a class="el" href="proto_8h.html#ac6cfa306b6e2571569cb814110bd2b08">AbortSubmit()</a>, <a class="el" href="proto_8h.html#ad08d305d256d71bcad693f3fca0110b2">AddressTypes()</a>, <a class="el" href="proto_8h.html#aff3ad6ae2f56ce102be53059e51731fd">CloneStream()</a>, <a class="el" href="proto_8h.html#a0152e531768ef61f4d8a41f600c7fea1">CollapseRow()</a>, <a class="el" href="proto_8h.html#a745704b6a7fc08573e87571023cbfc44">CommitStream()</a>, <a class="el" href="proto_8h.html#a4716ce81dca05da5c568db239f95acfe">CopyFolder()</a>, <a class="el" href="proto_8h.html#a8ec4ba29f2a9b89edda4cda1c4c4856c">CopyProps()</a>, <a class="el" href="proto_8h.html#acb5175bbc1caa88d0d5b8ed053b02b34">CopyTo()</a>, <a class="el" href="proto_8h.html#a6fb9d9166a531189cf0d123b007609b5">CopyToStream()</a>, <a class="el" href="proto_8h.html#a9f7152a9db034fbf7cc7fa8e481bd226">CreateAttach()</a>, <a class="el" href="proto_8h.html#ae26c5f046e906601b2dd367f738e1658">CreateBookmark()</a>, <a class="el" href="proto_8h.html#aa0d3c0451ce5f8584cce650ca3223b04">CreateFolder()</a>, <a class="el" href="proto_8h.html#acd2d9aaa13e6138886bacdcea51695d3">CreateMessage()</a>, <a class="el" href="proto_8h.html#a82fa868e57de4841b97cc4b4e9f6fb8d">DeleteAttach()</a>, <a class="el" href="proto_8h.html#a89202179905d03cb95b31b430790b9a1">DeleteFolder()</a>, <a class="el" href="proto_8h.html#abd450cbfa8897602cbc1cc7e0fa56ce5">DeleteMessage()</a>, <a class="el" href="proto_8h.html#a65bbd0ee31de96fd372da08b3e2347e8">DeletePropertiesNoReplicate()</a>, <a class="el" href="proto_8h.html#a829a7a28788124c422e42d007b47e9e3">DeleteProps()</a>, <a class="el" href="proto_8h.html#a364dcbce3198d58aa0ab6a813411bcbf">EmptyFolder()</a>, <a class="el" href="proto_8h.html#ac449d69d77ab398535923a0859691ddf">ExpandRow()</a>, <a class="el" href="proto_8h.html#ae3c55e0b3aaaa9fd6056018d202f785d">FindRow()</a>, <a class="el" href="proto_8h.html#aa90bfd47eded92fdd5e73cb1a0023fd3">FreeBookmark()</a>, <a class="el" href="proto_8h.html#a3323b8ace0a76a8f9e53aa989bc886c1">GetAttachmentTable()</a>, <a class="el" href="proto_8h.html#a80bfa91f91a0627cb58fa6ce757d72c4">GetCollapseState()</a>, <a class="el" href="proto_8h.html#a8005a7edf302693a7277f1351382d0d5">GetContentsTable()</a>, <a class="el" href="proto_8h.html#ad5362cafba2a76a70b112c966abe5907">GetHierarchyTable()</a>, <a class="el" href="proto_8h.html#a938413416b0e656c72192174fc3b0eae">GetIdFromLongTermId()</a>, <a class="el" href="proto_8h.html#af2084aa1318156973399cd8c7971912e">GetIDsFromNames()</a>, <a class="el" href="proto_8h.html#a25e3ad84c849f51eed573febe892b9a6">GetLocalReplicaIds()</a>, <a class="el" href="proto_8h.html#a4cad41f7bd69a78a74285df9db265e73">GetLongTermIdFromId()</a>, <a class="el" href="proto_8h.html#a535ea169793b6eb4cd76a669672761d1">GetMessageStatus()</a>, <a class="el" href="proto_8h.html#ae3c6c832f8dddb0a4755dbc6c19c5233">GetNamesFromIDs()</a>, <a class="el" href="proto_8h.html#ae7c80d484ca025749951a291c61be3e2">GetOwningServers()</a>, <a class="el" href="proto_8h.html#aed96168262c4acfeab8d06ff35601aeb">GetPropList()</a>, <a class="el" href="proto_8h.html#a2302fd8484a99435dcf605f79cf9e8ba">GetProps()</a>, <a class="el" href="proto_8h.html#ae158380be31ef5121ebcccb99c5f980d">GetPropsAll()</a>, <a class="el" href="proto_8h.html#a1feaac1c7b54b25e599d8dbf68a72faf">GetReceiveFolder()</a>, <a class="el" href="proto_8h.html#ab60a3c481121ff3bce77f9266112a783">GetReceiveFolderTable()</a>, <a class="el" href="proto_8h.html#a7f0a6f074da61394f2cdeba437d8fc12">GetRulesTable()</a>, <a class="el" href="proto_8h.html#ac9358749be2737f24bcd909df8a75f56">GetSearchCriteria()</a>, <a class="el" href="proto_8h.html#a198f286f90fe17887d8af784292348d2">GetStatus()</a>, <a class="el" href="proto_8h.html#a15fb593a6c5c39272a48f478c3738d81">GetStoreState()</a>, <a class="el" href="proto_8h.html#a35a0dde04de76bbe473a19e92ec5f723">GetStreamSize()</a>, <a class="el" href="proto_8h.html#a0c8a9b8fc54139a1411aa9264acbe200">GetTable()</a>, <a class="el" href="proto_8h.html#ac896118a7a75e0d214a81cfea01089d9">GetTransportFolder()</a>, <a class="el" href="proto_8h.html#ad1b0270ffa8b70cdca16c0ece8661c96">GetValidAttach()</a>, <a class="el" href="proto_8h.html#a8af3857bd9d1eea00c7e5930599d2433">HardDeleteMessage()</a>, <a class="el" href="proto_8h.html#a89562462ecaf7522be6f0ed9d88125c5">HardDeleteMessagesAndSubfolders()</a>, <a class="el" href="proto_8h.html#af33e1c1b61a7b361621d68779342e811">LockRegionStream()</a>, <a class="el" href="proto_8h.html#a1166925df3bf36ba5bd3835d0917d1df">ModifyRecipients()</a>, <a class="el" href="proto_8h.html#afcd8006481ea667864a055148777a07e">ModifyTable()</a>, <a class="el" href="proto_8h.html#a583351a289546184e2560eac39f5a3d6">MoveCopyMessages()</a>, <a class="el" href="proto_8h.html#acf3f40942949ac192faaec2be8503992">MoveFolder()</a>, <a class="el" href="proto_8h.html#a8af2fe9cc98605fbda054d3091499ed2">OpenAttach()</a>, <a class="el" href="proto_8h.html#aaf3088b3837b1908e6bb6b14f906a4e0">OpenEmbeddedMessage()</a>, <a class="el" href="proto_8h.html#a5d20a82a73d463254ac5e688f0f0cb0f">OpenFolder()</a>, <a class="el" href="proto_8h.html#a26b91ebe67489ca9e12a2ad1ba71548c">OpenMessage()</a>, <a class="el" href="proto_8h.html#ac27ee071a1b0d8344bb0320a4a647f54">OpenPublicFolder()</a>, <a class="el" href="proto_8h.html#a8fda02d0b93fae98d923a82d86ca8c6c">OpenPublicFolderByName()</a>, <a class="el" href="proto_8h.html#a2be8f10c82ffcf8070e105f1a0d8c998">OpenStream()</a>, <a class="el" href="proto_8h.html#a7a2978c322cbed08f16de37682cdebde">OpenUserMailbox()</a>, <a class="el" href="proto_8h.html#a3309fcb17b899dc8f86ecd7d3ed59eb5">PublicFolderIsGhosted()</a>, <a class="el" href="proto_8h.html#ae03f50328f9ef6369d5169893c8488df">QueryColumns()</a>, <a class="el" href="proto_8h.html#aa223b65b8bbcd97353c64aecdf10bd85">QueryNamedProperties()</a>, <a class="el" href="proto_8h.html#a65befabbd077db9273226a6d59615fdd">QueryPosition()</a>, <a class="el" href="proto_8h.html#a3124e8442e355ace743f5e554698eaa1">QueryRows()</a>, <a class="el" href="proto_8h.html#a6bc72b5c38aa15725d1454ad2c3635d0">ReadRecipients()</a>, <a class="el" href="proto_8h.html#ae0ef7c1c994a63e9cec5b1379122ed86">ReadStream()</a>, <a class="el" href="proto_8h.html#a96a886615abe0904621a25f73cb73839">Release()</a>, <a class="el" href="proto_8h.html#ab6424e4371c22d4cb24af0c5b954c46b">ReloadCachedInformation()</a>, <a class="el" href="proto_8h.html#ae625b8aeb2972e53df4608791fc77861">RemoveAllRecipients()</a>, <a class="el" href="proto_8h.html#a57497a9ec70a70382ed908bc883aaa41">Reset()</a>, <a class="el" href="proto_8h.html#a5e1d04f08b99a53ba88a2de930f65a16">Restrict()</a>, <a class="el" href="proto_8h.html#a4f63e29f1a02772254ba88ff7d916dee">SaveChangesAttachment()</a>, <a class="el" href="proto_8h.html#aae796bfcac7ea8bb4be2d6ef7eb93a76">SaveChangesMessage()</a>, <a class="el" href="proto_8h.html#ad0f277a2179be5b0377797f695157961">SeekRow()</a>, <a class="el" href="proto_8h.html#a450c999da38c526f1e7b7d26ec3c53fb">SeekRowApprox()</a>, <a class="el" href="proto_8h.html#abe8573f64f67df4a07e454a85a246d2a">SeekRowBookmark()</a>, <a class="el" href="proto_8h.html#a96670d887617ee8e4d5982b8ccc31bdf">SeekStream()</a>, <a class="el" href="proto_8h.html#a44dd9d7916dbbacec81d716978fbb040">SetCollapseState()</a>, <a class="el" href="proto_8h.html#a8695fc542a0924df6f34f1ececda5e58">SetColumns()</a>, <a class="el" href="proto_8h.html#af372f4a887ab6f689b63d43d09b04344">SetMessageReadFlag()</a>, <a class="el" href="proto_8h.html#a1e1e4a1093f379c20f444043650727f2">SetMessageStatus()</a>, <a class="el" href="proto_8h.html#a0718735fdc7da84886484ba44305d4af">SetPropertiesNoReplicate()</a>, <a class="el" href="proto_8h.html#a0ddd5dd9827db2d23d94440042abab37">SetProps()</a>, <a class="el" href="proto_8h.html#a8bb55368bb250bd04840c17b90be39a1">SetReadFlags()</a>, <a class="el" href="proto_8h.html#a35ac4767be928b741f30b55ef2c82651">SetReceiveFolder()</a>, <a class="el" href="proto_8h.html#a0ce94351576d968926636487793beaed">SetSearchCriteria()</a>, <a class="el" href="proto_8h.html#ad055d10119b399237b824d6fef5849d7">SetSpooler()</a>, <a class="el" href="proto_8h.html#a457cd46e47a75728f62d2066cfe83415">SetStreamSize()</a>, <a class="el" href="proto_8h.html#a348540581920b0e663f1a008f25bb643">SortTable()</a>, <a class="el" href="IXPLogon_8c.html#a8f5946010110ea49ade2d27446f37941">SpoolerLockMessage()</a>, <a class="el" href="proto_8h.html#a26d57152d73d8087c87e705f65691e32">SubmitMessage()</a>, <a class="el" href="proto_8h.html#a73891d48327dd1afee64dba5b7cfddc0">Subscribe()</a>, <a class="el" href="proto_8h.html#a8fa0a6ef77dcb6a1671e228e6f8f1fa4">TransportNewMail()</a>, <a class="el" href="proto_8h.html#a0f5eb34ea6ecea5bdc54d7b74a323f08">TransportSend()</a>, <a class="el" href="proto_8h.html#a01b7bea488771aa983179a42abd5e928">UnlockRegionStream()</a>, <a class="el" href="proto_8h.html#a0c3f3ba864f626e7a8fcd224cb2426fb">WriteAndCommitStream()</a>, and <a class="el" href="proto_8h.html#a2a14dfe1dcdacce01a7c7f67578632a0">WriteStream()</a>.</p>

</div>
</div>
<a class="anchor" id="a7f4dfd76879dea2bf003f52d8bce38d3"></a><!-- doxytag: member="emsmdb.c::emsmdb_transaction_null" ref="a7f4dfd76879dea2bf003f52d8bce38d3" 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 <a class="el" href="structemsmdb__context.html">emsmdb_context</a> *&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><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>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>NT_STATUS_OK on success, otherwise NT status error </dd></dl>

<p>References <a class="el" href="structemsmdb__context.html#a76a3f0bf99a8fdafbb07f0494adbafc5">emsmdb_context::handle</a>, <a class="el" href="mapicode_8h.html#ad730652d71f309ac1423d4840f21ee5d">MAPI_STATUS_IS_OK</a>, <a class="el" href="structemsmdb__context.html#a61d7660cc74e4b1362efee3c7c09f0c1">emsmdb_context::max_data</a>, <a class="el" href="structemsmdb__context.html#a33b1ba33ce27889bf178ba7ebb7979c7">emsmdb_context::mem_ctx</a>, and <a class="el" href="structemsmdb__context.html#a2d61f7b271a512e64f1cae33e910bb3b">emsmdb_context::rpc_connection</a>.</p>

<p>Referenced by <a class="el" href="proto_8h.html#a5f9f3f93fc555e96f05ac0a9fd0a3e9d">DispatchNotifications()</a>, and <a class="el" href="proto_8h.html#a875788729bf87923b16b1d2cab952d59">MonitorNotification()</a>.</p>

</div>
</div>
<a class="anchor" id="a3da63de183da94f2bb7f8f9ec682c0bc"></a><!-- doxytag: member="emsmdb.c::free_emsmdb_property" ref="a3da63de183da94f2bb7f8f9ec682c0bc" args="(struct SPropValue *lpProp, void *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void free_emsmdb_property </td>
          <td>(</td>
          <td class="paramtype">struct SPropValue *&nbsp;</td>
          <td class="paramname"> <em>lpProp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&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>Free property values retrieved with pull_emsmdb_property</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>lpProp</em>&nbsp;</td><td>pointer to SPropValue structure </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>generic pointer to associated lpProp data </td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="el" href="mapidefs_8h.html#af25f4c92900dbf9a2c0c9e9c0b6c0f79">PT_BOOLEAN</a>, <a class="el" href="mapidefs_8h.html#a7d9b6282876cdf892e3e67c762d1a886">PT_ERROR</a>, <a class="el" href="mapidefs_8h.html#ab62e8340b72e6edfef8c7719bcd1a213">PT_I2</a>, <a class="el" href="mapidefs_8h.html#a8f00fd086948230720340daa18aa2510">PT_I8</a>, and <a class="el" href="mapidefs_8h.html#acc4c50f7bdd02662859da0180aa550e1">PT_LONG</a>.</p>

<p>Referenced by <a class="el" href="emsmdb_8c.html#ada6d4bd3a6c9fe47d33a40c3212c8cb1">emsmdb_get_SPropValue()</a>, <a class="el" href="emsmdb_8c.html#a63a938e21037ec27d8103e517193c5d0">emsmdb_get_SRow()</a>, and <a class="el" href="proto_8h.html#a9155192b51fcc7c52c8bc2a96c6f660f">emsmdb_get_SRowSet()</a>.</p>

</div>
</div>
<a class="anchor" id="a9af10327453a0da639fd14cd5670ea95"></a><!-- doxytag: member="emsmdb.c::pull_emsmdb_property" ref="a9af10327453a0da639fd14cd5670ea95" 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><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>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>pointer on constant generic data on success, otherwise NULL </dd></dl>

<p>References <a class="el" href="mapidefs_8h.html#ad55cd8562cc7a5732fda8dca153afc16">PT_BINARY</a>, <a class="el" href="mapidefs_8h.html#af25f4c92900dbf9a2c0c9e9c0b6c0f79">PT_BOOLEAN</a>, <a class="el" href="mapidefs_8h.html#a8f78260c49637ec7642ab5b6e9905e4e">PT_CLSID</a>, <a class="el" href="mapidefs_8h.html#a2111167a7cc55d080f9bb487fc2c3659">PT_DOUBLE</a>, <a class="el" href="mapidefs_8h.html#a7d9b6282876cdf892e3e67c762d1a886">PT_ERROR</a>, <a class="el" href="mapidefs_8h.html#ab62e8340b72e6edfef8c7719bcd1a213">PT_I2</a>, <a class="el" href="mapidefs_8h.html#a8f00fd086948230720340daa18aa2510">PT_I8</a>, <a class="el" href="mapidefs_8h.html#acc4c50f7bdd02662859da0180aa550e1">PT_LONG</a>, <a class="el" href="mapidefs_8h.html#a698eecac33d63759b050fb354697e962">PT_MV_BINARY</a>, <a class="el" href="mapidefs_8h.html#a1b573501e03ae13b26f7df2d9744ef68">PT_MV_LONG</a>, <a class="el" href="mapidefs_8h.html#a478e5b73cd6855b2c92eacf50c673059">PT_MV_STRING8</a>, <a class="el" href="mapidefs_8h.html#a29d30dc1b7a3af958b9a06ff9201be5a">PT_STRING8</a>, <a class="el" href="mapidefs_8h.html#ac75048fbf8cdf0bdf52ee971d38c7c99">PT_SYSTIME</a>, and <a class="el" href="mapidefs_8h.html#a1ba9ecea87848b6ab22425b9f7c88497">PT_UNICODE</a>.</p>

<p>Referenced by <a class="el" href="emsmdb_8c.html#ada6d4bd3a6c9fe47d33a40c3212c8cb1">emsmdb_get_SPropValue()</a>, <a class="el" href="emsmdb_8c.html#a63a938e21037ec27d8103e517193c5d0">emsmdb_get_SRow()</a>, and <a class="el" href="proto_8h.html#a9155192b51fcc7c52c8bc2a96c6f660f">emsmdb_get_SRowSet()</a>.</p>

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