Sophie

Sophie

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

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/nspi.c File Reference</h1>  </div>
</div>
<div class="contents">

<p>Name Service Provider (NSPI) stack functions.  
<a href="#_details">More...</a></p>
<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">_PUBLIC_ struct <a class="el" href="structnspi__context.html">nspi_context</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="nspi_8c.html#aca5f0fab0e7038bbb255e52d1de5d329">nspi_bind</a> (TALLOC_CTX *parent_ctx, struct dcerpc_pipe *p, struct cli_credentials *cred, uint32_t codepage, uint32_t language, uint32_t method)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">_PUBLIC_ enum MAPISTATUS&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="nspi_8c.html#a2d789dd064264cb789736c581ef6d899">nspi_CompareMIds</a> (struct <a class="el" href="structnspi__context.html">nspi_context</a> *nspi_ctx, TALLOC_CTX *mem_ctx, uint32_t MId1, uint32_t MId2, uint32_t *plResult)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="nspi_8c.html#a24ae1ea81e7536bd2eebcddb3addea92">nspi_disconnect_dtor</a> (void *data)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">_PUBLIC_ enum MAPISTATUS&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="nspi_8c.html#a5b0c9c5645deecbcfb4965b650d92a86">nspi_DNToMId</a> (struct <a class="el" href="structnspi__context.html">nspi_context</a> *nspi_ctx, TALLOC_CTX *mem_ctx, struct StringsArray_r *pNames, struct SPropTagArray **ppMIds)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">_PUBLIC_ enum MAPISTATUS&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="nspi_8c.html#acb4c62b9139f3068977a7cf1957f6826">nspi_GetIDsFromNames</a> (struct <a class="el" href="structnspi__context.html">nspi_context</a> *nspi_ctx, TALLOC_CTX *mem_ctx, bool VerifyNames, uint32_t cNames, struct PropertyName_r *ppNames, struct SPropTagArray **ppPropTags)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">_PUBLIC_ enum MAPISTATUS&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="nspi_8c.html#a7097d449dc0f177b4487a1b86d325525">nspi_GetMatches</a> (struct <a class="el" href="structnspi__context.html">nspi_context</a> *nspi_ctx, TALLOC_CTX *mem_ctx, struct SPropTagArray *pPropTags, struct Restriction_r *Filter, struct SRowSet **ppRows, struct SPropTagArray **ppOutMIds)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">_PUBLIC_ enum MAPISTATUS&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="nspi_8c.html#a195438f4bb5e7022aac113e330825eae">nspi_GetNamesFromIDs</a> (struct <a class="el" href="structnspi__context.html">nspi_context</a> *nspi_ctx, TALLOC_CTX *mem_ctx, struct FlatUID_r *lpGuid, struct SPropTagArray *pPropTags, struct SPropTagArray **ppReturnedPropTags, struct PropertyNameSet_r **ppNames)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">_PUBLIC_ enum MAPISTATUS&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="nspi_8c.html#a272cd1e2e3c10d99485ccfa32fadd5bc">nspi_GetPropList</a> (struct <a class="el" href="structnspi__context.html">nspi_context</a> *nspi_ctx, TALLOC_CTX *mem_ctx, bool WantObject, uint32_t dwMId, struct SPropTagArray **ppPropTags)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">_PUBLIC_ enum MAPISTATUS&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="nspi_8c.html#a8b26051bc4c2f98753b06af449ba6e60">nspi_GetProps</a> (struct <a class="el" href="structnspi__context.html">nspi_context</a> *nspi_ctx, TALLOC_CTX *mem_ctx, struct SPropTagArray *pPropTags, struct SPropTagArray *MId, struct SRowSet **SRowSet)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">_PUBLIC_ enum MAPISTATUS&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="nspi_8c.html#a07ba7cf4ebb1af0ba1f3ab40b9feb403">nspi_GetSpecialTable</a> (struct <a class="el" href="structnspi__context.html">nspi_context</a> *nspi_ctx, TALLOC_CTX *mem_ctx, uint32_t Type, struct SRowSet **ppRows)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">_PUBLIC_ enum MAPISTATUS&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="nspi_8c.html#a2ec527c87e4336e861320dea3f9465d7">nspi_GetTemplateInfo</a> (struct <a class="el" href="structnspi__context.html">nspi_context</a> *nspi_ctx, TALLOC_CTX *mem_ctx, uint32_t dwFlags, uint32_t ulType, char *pDN, struct SRow **ppData)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">_PUBLIC_ enum MAPISTATUS&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="nspi_8c.html#a329466c687c095aab42f9c759486872f">nspi_ModLinkAtt</a> (struct <a class="el" href="structnspi__context.html">nspi_context</a> *nspi_ctx, bool Delete, uint32_t ulPropTag, uint32_t MId, struct BinaryArray_r *lpEntryIds)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">_PUBLIC_ enum MAPISTATUS&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="nspi_8c.html#a0a153755fe59a8319f2cc47052b20686">nspi_ModProps</a> (struct <a class="el" href="structnspi__context.html">nspi_context</a> *nspi_ctx, TALLOC_CTX *mem_ctx, uint32_t MId, struct SPropTagArray *pPropTags, struct SRow *pRow)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">_PUBLIC_ enum MAPISTATUS&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="nspi_8c.html#a074232ca0d68df2f56482dbfc8d585e1">nspi_QueryColumns</a> (struct <a class="el" href="structnspi__context.html">nspi_context</a> *nspi_ctx, TALLOC_CTX *mem_ctx, bool WantUnicode, struct SPropTagArray **ppColumns)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">_PUBLIC_ enum MAPISTATUS&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="nspi_8c.html#a21f3016a6ca9b04ca4e5f8d7fcea2cb3">nspi_QueryRows</a> (struct <a class="el" href="structnspi__context.html">nspi_context</a> *nspi_ctx, TALLOC_CTX *mem_ctx, struct SPropTagArray *pPropTags, struct SPropTagArray *MIds, uint32_t count, struct SRowSet **ppRows)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">_PUBLIC_ enum MAPISTATUS&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="nspi_8c.html#abdfc028c5e330e5cb39bf562a6d9f768">nspi_ResolveNames</a> (struct <a class="el" href="structnspi__context.html">nspi_context</a> *nspi_ctx, TALLOC_CTX *mem_ctx, const char **usernames, struct SPropTagArray *pPropTags, struct SRowSet ***pppRows, struct SPropTagArray ***pppMIds)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">_PUBLIC_ enum MAPISTATUS&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="nspi_8c.html#a9a4002a0dcf6dd87172b5fc6dc2afdaa">nspi_ResolveNamesW</a> (struct <a class="el" href="structnspi__context.html">nspi_context</a> *nspi_ctx, TALLOC_CTX *mem_ctx, const char **usernames, struct SPropTagArray *pPropTags, struct SRowSet ***pppRows, struct SPropTagArray ***pppMIds)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">_PUBLIC_ enum MAPISTATUS&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="nspi_8c.html#a0ff8b8d442d3729b80bfb5f4039130f9">nspi_ResortRestriction</a> (struct <a class="el" href="structnspi__context.html">nspi_context</a> *nspi_ctx, TALLOC_CTX *mem_ctx, enum TableSortOrders SortType, struct SPropTagArray *pInMIds, struct SPropTagArray **ppMIds)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">_PUBLIC_ enum MAPISTATUS&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="nspi_8c.html#a16738a36d9fb94d4200dd5e5c2ec966d">nspi_SeekEntries</a> (struct <a class="el" href="structnspi__context.html">nspi_context</a> *nspi_ctx, TALLOC_CTX *mem_ctx, enum TableSortOrders SortType, struct SPropValue *pTarget, struct SPropTagArray *pPropTags, struct SPropTagArray *pMIds, struct SRowSet **pRows)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">_PUBLIC_ enum MAPISTATUS&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="nspi_8c.html#a2affa29abdff15e46d8e9b902e4bf253">nspi_unbind</a> (struct <a class="el" href="structnspi__context.html">nspi_context</a> *nspi_ctx)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">_PUBLIC_ enum MAPISTATUS&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="nspi_8c.html#a5fbd10649f0e5ad166357b962e86e41b">nspi_UpdateStat</a> (struct <a class="el" href="structnspi__context.html">nspi_context</a> *nspi_ctx, TALLOC_CTX *mem_ctx, uint32_t *plDelta)</td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>Name Service Provider (NSPI) stack functions. </p>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="aca5f0fab0e7038bbb255e52d1de5d329"></a><!-- doxytag: member="nspi.c::nspi_bind" ref="aca5f0fab0e7038bbb255e52d1de5d329" args="(TALLOC_CTX *parent_ctx, struct dcerpc_pipe *p, struct cli_credentials *cred, uint32_t codepage, uint32_t language, uint32_t method)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">_PUBLIC_ struct <a class="el" href="structnspi__context.html">nspi_context</a>* nspi_bind </td>
          <td>(</td>
          <td class="paramtype">TALLOC_CTX *&nbsp;</td>
          <td class="paramname"> <em>parent_ctx</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">uint32_t&nbsp;</td>
          <td class="paramname"> <em>codepage</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&nbsp;</td>
          <td class="paramname"> <em>language</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&nbsp;</td>
          <td class="paramname"> <em>method</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>Initiates a session between a client and the NSPI 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>parent_ctx</em>&nbsp;</td><td>pointer to the memory 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>codepage</em>&nbsp;</td><td>the code to set in the STAT structure </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>language</em>&nbsp;</td><td>the language to set in the STAT structure </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>method</em>&nbsp;</td><td>the method to set in the STAT structure</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Allocated pointer to a <a class="el" href="structnspi__context.html">nspi_context</a> structure on success, otherwise NULL </dd></dl>

<p>References <a class="el" href="structnspi__context.html#a9b8c19e6ec279a5683c9ba7e0eec7f6a">nspi_context::cred</a>, <a class="el" href="structnspi__context.html#ab0ea00b8f33ae482293ececfb09379d8">nspi_context::mem_ctx</a>, <a class="el" href="structnspi__context.html#abcd28a9c718ececf9f5ad53e9c44fe4f">nspi_context::pStat</a>, <a class="el" href="structnspi__context.html#ada6642a755d56f266c7f72842fbeb9fa">nspi_context::rpc_connection</a>, and <a class="el" href="structnspi__context.html#a2366f8210751643f016879fc37398b51">nspi_context::version</a>.</p>

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

</div>
</div>
<a class="anchor" id="a2d789dd064264cb789736c581ef6d899"></a><!-- doxytag: member="nspi.c::nspi_CompareMIds" ref="a2d789dd064264cb789736c581ef6d899" args="(struct nspi_context *nspi_ctx, TALLOC_CTX *mem_ctx, uint32_t MId1, uint32_t MId2, uint32_t *plResult)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">_PUBLIC_ enum MAPISTATUS nspi_CompareMIds </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structnspi__context.html">nspi_context</a> *&nbsp;</td>
          <td class="paramname"> <em>nspi_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">uint32_t&nbsp;</td>
          <td class="paramname"> <em>MId1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&nbsp;</td>
          <td class="paramname"> <em>MId2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t *&nbsp;</td>
          <td class="paramname"> <em>plResult</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Compares the position in an address book container of two objects identified by MId and returns the value of the comparison</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>nspi_ctx</em>&nbsp;</td><td>pointer to the NSPI 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>MId1</em>&nbsp;</td><td>the first MId to compare </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>MId2</em>&nbsp;</td><td>the second MId to compare </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>plResult</em>&nbsp;</td><td>pointer to the value of the comparison</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="structnspi__context.html#a7530f5a73abb556d8a0d9d9b29ca6de9">nspi_context::handle</a>, <a class="el" href="mapicode_8h.html#a72f77c7e5d097e7b47c57c0405070d0c">OPENCHANGE_RETVAL_IF</a>, <a class="el" href="structnspi__context.html#abcd28a9c718ececf9f5ad53e9c44fe4f">nspi_context::pStat</a>, and <a class="el" href="structnspi__context.html#ada6642a755d56f266c7f72842fbeb9fa">nspi_context::rpc_connection</a>.</p>

</div>
</div>
<a class="anchor" id="a24ae1ea81e7536bd2eebcddb3addea92"></a><!-- doxytag: member="nspi.c::nspi_disconnect_dtor" ref="a24ae1ea81e7536bd2eebcddb3addea92" args="(void *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int nspi_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 NSPI context. Call the NspiUnbind 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 MAPI error. </dd></dl>

<p>References <a class="el" href="structmapi__provider.html#aa2906ad67334b042836f003e766d6d64">mapi_provider::ctx</a>, and <a class="el" href="nspi_8c.html#a2affa29abdff15e46d8e9b902e4bf253">nspi_unbind()</a>.</p>

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

</div>
</div>
<a class="anchor" id="a5b0c9c5645deecbcfb4965b650d92a86"></a><!-- doxytag: member="nspi.c::nspi_DNToMId" ref="a5b0c9c5645deecbcfb4965b650d92a86" args="(struct nspi_context *nspi_ctx, TALLOC_CTX *mem_ctx, struct StringsArray_r *pNames, struct SPropTagArray **ppMIds)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">_PUBLIC_ enum MAPISTATUS nspi_DNToMId </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structnspi__context.html">nspi_context</a> *&nbsp;</td>
          <td class="paramname"> <em>nspi_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 StringsArray_r *&nbsp;</td>
          <td class="paramname"> <em>pNames</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct SPropTagArray **&nbsp;</td>
          <td class="paramname"> <em>ppMIds</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Maps a set of DN to a set of MId</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>nspi_ctx</em>&nbsp;</td><td>pointer to the NSPI 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>pNames</em>&nbsp;</td><td>pointer to a StringsArray_r structure with the DN to map </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>ppMIds</em>&nbsp;</td><td>pointer on pointer to the returned list of MIds</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="structnspi__context.html#a7530f5a73abb556d8a0d9d9b29ca6de9">nspi_context::handle</a>, <a class="el" href="mapicode_8h.html#a72f77c7e5d097e7b47c57c0405070d0c">OPENCHANGE_RETVAL_IF</a>, and <a class="el" href="structnspi__context.html#ada6642a755d56f266c7f72842fbeb9fa">nspi_context::rpc_connection</a>.</p>

<p>Referenced by <a class="el" href="proto_8h.html#adfba66f98839bc597c0a09803a30ff24">GetABRecipientInfo()</a>, and <a class="el" href="proto_8h.html#ada21bf3df5258c0f7febd30ed00bd4ca">ProcessNetworkProfile()</a>.</p>

</div>
</div>
<a class="anchor" id="acb4c62b9139f3068977a7cf1957f6826"></a><!-- doxytag: member="nspi.c::nspi_GetIDsFromNames" ref="acb4c62b9139f3068977a7cf1957f6826" args="(struct nspi_context *nspi_ctx, TALLOC_CTX *mem_ctx, bool VerifyNames, uint32_t cNames, struct PropertyName_r *ppNames, struct SPropTagArray **ppPropTags)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">_PUBLIC_ enum MAPISTATUS nspi_GetIDsFromNames </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structnspi__context.html">nspi_context</a> *&nbsp;</td>
          <td class="paramname"> <em>nspi_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">bool&nbsp;</td>
          <td class="paramname"> <em>VerifyNames</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&nbsp;</td>
          <td class="paramname"> <em>cNames</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct PropertyName_r *&nbsp;</td>
          <td class="paramname"> <em>ppNames</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct SPropTagArray **&nbsp;</td>
          <td class="paramname"> <em>ppPropTags</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Retrieve the Property IDs associated with property names from the NSPI 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>nspi_ctx</em>&nbsp;</td><td>pointer on the NSPI connection context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>mem_ctx</em>&nbsp;</td><td>pointer to the memoty context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>VerifyNames</em>&nbsp;</td><td>boolean value defining whether the NSPI server must verify that all client specified names are recognized by the server </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>cNames</em>&nbsp;</td><td>count of PropertyName_r entries </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>ppNames</em>&nbsp;</td><td>pointer to a PropertyName_r structure with the list of property tags supplied by the client </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>ppPropTags</em>&nbsp;</td><td>pointer on pointer to the list of proptags returned by the server</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="structnspi__context.html#a7530f5a73abb556d8a0d9d9b29ca6de9">nspi_context::handle</a>, <a class="el" href="mapicode_8h.html#a72f77c7e5d097e7b47c57c0405070d0c">OPENCHANGE_RETVAL_IF</a>, and <a class="el" href="structnspi__context.html#ada6642a755d56f266c7f72842fbeb9fa">nspi_context::rpc_connection</a>.</p>

</div>
</div>
<a class="anchor" id="a7097d449dc0f177b4487a1b86d325525"></a><!-- doxytag: member="nspi.c::nspi_GetMatches" ref="a7097d449dc0f177b4487a1b86d325525" args="(struct nspi_context *nspi_ctx, TALLOC_CTX *mem_ctx, struct SPropTagArray *pPropTags, struct Restriction_r *Filter, struct SRowSet **ppRows, struct SPropTagArray **ppOutMIds)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">_PUBLIC_ enum MAPISTATUS nspi_GetMatches </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structnspi__context.html">nspi_context</a> *&nbsp;</td>
          <td class="paramname"> <em>nspi_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 SPropTagArray *&nbsp;</td>
          <td class="paramname"> <em>pPropTags</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct Restriction_r *&nbsp;</td>
          <td class="paramname"> <em>Filter</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct SRowSet **&nbsp;</td>
          <td class="paramname"> <em>ppRows</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct SPropTagArray **&nbsp;</td>
          <td class="paramname"> <em>ppOutMIds</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 an explicit table.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>nspi_ctx</em>&nbsp;</td><td>pointer to the NSPI 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>pPropTags</em>&nbsp;</td><td>pointer to an array of property tags of columns </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>Filter</em>&nbsp;</td><td>pointer to the Restriction to apply to the table </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>ppRows</em>&nbsp;</td><td>pointer to pointer to a SRowSet structure holding the rows returned by the server </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>ppOutMIds</em>&nbsp;</td><td>pointer to pointer to a list of MId that comprise a restricted address book container</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="structnspi__context.html#a7530f5a73abb556d8a0d9d9b29ca6de9">nspi_context::handle</a>, <a class="el" href="mapicode_8h.html#a72f77c7e5d097e7b47c57c0405070d0c">OPENCHANGE_RETVAL_IF</a>, <a class="el" href="structnspi__context.html#abcd28a9c718ececf9f5ad53e9c44fe4f">nspi_context::pStat</a>, and <a class="el" href="structnspi__context.html#ada6642a755d56f266c7f72842fbeb9fa">nspi_context::rpc_connection</a>.</p>

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

</div>
</div>
<a class="anchor" id="a195438f4bb5e7022aac113e330825eae"></a><!-- doxytag: member="nspi.c::nspi_GetNamesFromIDs" ref="a195438f4bb5e7022aac113e330825eae" args="(struct nspi_context *nspi_ctx, TALLOC_CTX *mem_ctx, struct FlatUID_r *lpGuid, struct SPropTagArray *pPropTags, struct SPropTagArray **ppReturnedPropTags, struct PropertyNameSet_r **ppNames)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">_PUBLIC_ enum MAPISTATUS nspi_GetNamesFromIDs </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structnspi__context.html">nspi_context</a> *&nbsp;</td>
          <td class="paramname"> <em>nspi_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 FlatUID_r *&nbsp;</td>
          <td class="paramname"> <em>lpGuid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct SPropTagArray *&nbsp;</td>
          <td class="paramname"> <em>pPropTags</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct SPropTagArray **&nbsp;</td>
          <td class="paramname"> <em>ppReturnedPropTags</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct PropertyNameSet_r **&nbsp;</td>
          <td class="paramname"> <em>ppNames</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 list of property names for a set of proptags</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>nspi_ctx</em>&nbsp;</td><td>pointer on the NSPI connection text </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>lpGuid</em>&nbsp;</td><td>the property set about which the client is requesting information </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pPropTags</em>&nbsp;</td><td>pointer to the proptags list </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>ppReturnedPropTags</em>&nbsp;</td><td>pointer on pointer to the list of all the proptags in the property set specified in lpGuid </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>ppNames</em>&nbsp;</td><td>pointer on pointer to the list of property names returned by the server</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="structnspi__context.html#a7530f5a73abb556d8a0d9d9b29ca6de9">nspi_context::handle</a>, <a class="el" href="mapicode_8h.html#a72f77c7e5d097e7b47c57c0405070d0c">OPENCHANGE_RETVAL_IF</a>, and <a class="el" href="structnspi__context.html#ada6642a755d56f266c7f72842fbeb9fa">nspi_context::rpc_connection</a>.</p>

</div>
</div>
<a class="anchor" id="a272cd1e2e3c10d99485ccfa32fadd5bc"></a><!-- doxytag: member="nspi.c::nspi_GetPropList" ref="a272cd1e2e3c10d99485ccfa32fadd5bc" args="(struct nspi_context *nspi_ctx, TALLOC_CTX *mem_ctx, bool WantObject, uint32_t dwMId, struct SPropTagArray **ppPropTags)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">_PUBLIC_ enum MAPISTATUS nspi_GetPropList </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structnspi__context.html">nspi_context</a> *&nbsp;</td>
          <td class="paramname"> <em>nspi_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">bool&nbsp;</td>
          <td class="paramname"> <em>WantObject</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&nbsp;</td>
          <td class="paramname"> <em>dwMId</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct SPropTagArray **&nbsp;</td>
          <td class="paramname"> <em>ppPropTags</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 list of all the properties that have values on the specified object</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>nspi_ctx</em>&nbsp;</td><td>pointer to the NSPI 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>WantObject</em>&nbsp;</td><td>boolean value defining whether we want the server to include properties with the type set to PT_OBJECT </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>dwMId</em>&nbsp;</td><td>the MId of the specified object </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>ppPropTags</em>&nbsp;</td><td>pointer on pointer to the list of property tags associated to the object.</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="structnspi__context.html#a7530f5a73abb556d8a0d9d9b29ca6de9">nspi_context::handle</a>, <a class="el" href="mapicode_8h.html#a72f77c7e5d097e7b47c57c0405070d0c">OPENCHANGE_RETVAL_IF</a>, <a class="el" href="structnspi__context.html#abcd28a9c718ececf9f5ad53e9c44fe4f">nspi_context::pStat</a>, and <a class="el" href="structnspi__context.html#ada6642a755d56f266c7f72842fbeb9fa">nspi_context::rpc_connection</a>.</p>

</div>
</div>
<a class="anchor" id="a8b26051bc4c2f98753b06af449ba6e60"></a><!-- doxytag: member="nspi.c::nspi_GetProps" ref="a8b26051bc4c2f98753b06af449ba6e60" args="(struct nspi_context *nspi_ctx, TALLOC_CTX *mem_ctx, struct SPropTagArray *pPropTags, struct SPropTagArray *MId, struct SRowSet **SRowSet)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">_PUBLIC_ enum MAPISTATUS nspi_GetProps </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structnspi__context.html">nspi_context</a> *&nbsp;</td>
          <td class="paramname"> <em>nspi_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 SPropTagArray *&nbsp;</td>
          <td class="paramname"> <em>pPropTags</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct SPropTagArray *&nbsp;</td>
          <td class="paramname"> <em>MId</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>Returns an address book row containing a set of the properties and values that exists on an object</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>nspi_ctx</em>&nbsp;</td><td>pointer to the NSPI 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>pPropTags</em>&nbsp;</td><td>pointer to the list of property tags that the client wants to be returned </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>MId</em>&nbsp;</td><td>pointer to the MId of the record </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>SRowSet</em>&nbsp;</td><td>pointer on pointer to the row returned by the server</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="structnspi__context.html#a7530f5a73abb556d8a0d9d9b29ca6de9">nspi_context::handle</a>, <a class="el" href="mapicode_8h.html#a72f77c7e5d097e7b47c57c0405070d0c">OPENCHANGE_RETVAL_IF</a>, <a class="el" href="structnspi__context.html#abcd28a9c718ececf9f5ad53e9c44fe4f">nspi_context::pStat</a>, and <a class="el" href="structnspi__context.html#ada6642a755d56f266c7f72842fbeb9fa">nspi_context::rpc_connection</a>.</p>

<p>Referenced by <a class="el" href="proto_8h.html#adfba66f98839bc597c0a09803a30ff24">GetABRecipientInfo()</a>, and <a class="el" href="proto_8h.html#ada21bf3df5258c0f7febd30ed00bd4ca">ProcessNetworkProfile()</a>.</p>

</div>
</div>
<a class="anchor" id="a07ba7cf4ebb1af0ba1f3ab40b9feb403"></a><!-- doxytag: member="nspi.c::nspi_GetSpecialTable" ref="a07ba7cf4ebb1af0ba1f3ab40b9feb403" args="(struct nspi_context *nspi_ctx, TALLOC_CTX *mem_ctx, uint32_t Type, struct SRowSet **ppRows)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">_PUBLIC_ enum MAPISTATUS nspi_GetSpecialTable </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structnspi__context.html">nspi_context</a> *&nbsp;</td>
          <td class="paramname"> <em>nspi_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">uint32_t&nbsp;</td>
          <td class="paramname"> <em>Type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct SRowSet **&nbsp;</td>
          <td class="paramname"> <em>ppRows</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 rows of a special table to the client. The special table can be a Hierarchy Table or an Address Creation Table</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>nspi_ctx</em>&nbsp;</td><td>pointer to the NSPI 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>Type</em>&nbsp;</td><td>bitmap of flags defining the type of the special table </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>ppRows</em>&nbsp;</td><td>pointer on pointer to the rows returned by the server</td></tr>
  </table>
  </dd>
</dl>
<p>Possible values for Type:</p>
<ol type="1">
<li>NspiAddressCreationTemplates to access an Address Creation Table</li>
<li>NspiUnicodeStrings for strings to be returned in Unicode</li>
</ol>
<p>If NspiAddressCreationTemplates is not set, then NspiGetSpecialTable will automatically fetch the Hierarchy Table.</p>
<p>If NspiAddressCreationTemplates is set, then NspiUnicodeStrings is ignored.</p>
<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="structnspi__context.html#a7530f5a73abb556d8a0d9d9b29ca6de9">nspi_context::handle</a>, <a class="el" href="mapicode_8h.html#a72f77c7e5d097e7b47c57c0405070d0c">OPENCHANGE_RETVAL_IF</a>, <a class="el" href="structnspi__context.html#abcd28a9c718ececf9f5ad53e9c44fe4f">nspi_context::pStat</a>, <a class="el" href="structnspi__context.html#ada6642a755d56f266c7f72842fbeb9fa">nspi_context::rpc_connection</a>, and <a class="el" href="structnspi__context.html#a2366f8210751643f016879fc37398b51">nspi_context::version</a>.</p>

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

</div>
</div>
<a class="anchor" id="a2ec527c87e4336e861320dea3f9465d7"></a><!-- doxytag: member="nspi.c::nspi_GetTemplateInfo" ref="a2ec527c87e4336e861320dea3f9465d7" args="(struct nspi_context *nspi_ctx, TALLOC_CTX *mem_ctx, uint32_t dwFlags, uint32_t ulType, char *pDN, struct SRow **ppData)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">_PUBLIC_ enum MAPISTATUS nspi_GetTemplateInfo </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structnspi__context.html">nspi_context</a> *&nbsp;</td>
          <td class="paramname"> <em>nspi_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">uint32_t&nbsp;</td>
          <td class="paramname"> <em>dwFlags</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&nbsp;</td>
          <td class="paramname"> <em>ulType</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>pDN</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct SRow **&nbsp;</td>
          <td class="paramname"> <em>ppData</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 information about template objects in the address book.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>nspi_ctx</em>&nbsp;</td><td>pointer to the NSPI memory 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>dwFlags</em>&nbsp;</td><td>set of bit flags </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>ulType</em>&nbsp;</td><td>specifies the display type of the template </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pDN</em>&nbsp;</td><td>the DN of the template requested </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>ppData</em>&nbsp;</td><td>pointer on pointer to the data requested</td></tr>
  </table>
  </dd>
</dl>
<p>Possible values for dwFlags:</p>
<ol type="1">
<li>TI_TEMPLATE to return the template</li>
<li>TI_SCRIPT to return the script associated to the template</li>
<li>TI_EMT to return the e-mail type associated to the template</li>
<li>TI_HELPFILE_NAME to return the help file associated to the template</li>
<li>TI_HELPFILE_CONTENTS to return the contents of the help file associated to the template <dl class="return"><dt><b>Returns:</b></dt><dd>MAPI_E_SUCCESS on success, otherwise MAPI error. </dd></dl>
</li>
</ol>

<p>References <a class="el" href="structnspi__context.html#a7530f5a73abb556d8a0d9d9b29ca6de9">nspi_context::handle</a>, <a class="el" href="mapicode_8h.html#a72f77c7e5d097e7b47c57c0405070d0c">OPENCHANGE_RETVAL_IF</a>, <a class="el" href="structnspi__context.html#abcd28a9c718ececf9f5ad53e9c44fe4f">nspi_context::pStat</a>, and <a class="el" href="structnspi__context.html#ada6642a755d56f266c7f72842fbeb9fa">nspi_context::rpc_connection</a>.</p>

</div>
</div>
<a class="anchor" id="a329466c687c095aab42f9c759486872f"></a><!-- doxytag: member="nspi.c::nspi_ModLinkAtt" ref="a329466c687c095aab42f9c759486872f" args="(struct nspi_context *nspi_ctx, bool Delete, uint32_t ulPropTag, uint32_t MId, struct BinaryArray_r *lpEntryIds)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">_PUBLIC_ enum MAPISTATUS nspi_ModLinkAtt </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structnspi__context.html">nspi_context</a> *&nbsp;</td>
          <td class="paramname"> <em>nspi_ctx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>Delete</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&nbsp;</td>
          <td class="paramname"> <em>ulPropTag</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&nbsp;</td>
          <td class="paramname"> <em>MId</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct BinaryArray_r *&nbsp;</td>
          <td class="paramname"> <em>lpEntryIds</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Modifies the values of a specific property of a specific row in the address book. This function only applies only to rows that support the PT_OBJECT Property Type.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>nspi_ctx</em>&nbsp;</td><td>pointer to the NSPI connection context </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>Delete</em>&nbsp;</td><td>boolean value defining whether the server must remove all values specified by the input parameter lpEntryIDs from the property specified by ulPropTag </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>ulPropTag</em>&nbsp;</td><td>property tag of the property the client wishes to modify </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>MId</em>&nbsp;</td><td>the MId of the address book object </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>lpEntryIds</em>&nbsp;</td><td>array of BinaryArray_r structures intended to be modified or deleted</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="structnspi__context.html#a7530f5a73abb556d8a0d9d9b29ca6de9">nspi_context::handle</a>, <a class="el" href="structnspi__context.html#ab0ea00b8f33ae482293ececfb09379d8">nspi_context::mem_ctx</a>, <a class="el" href="mapicode_8h.html#a72f77c7e5d097e7b47c57c0405070d0c">OPENCHANGE_RETVAL_IF</a>, <a class="el" href="mapidefs_8h.html#a36a2fa60aab7e21e72e1d07a1ce633d3">PT_OBJECT</a>, and <a class="el" href="structnspi__context.html#ada6642a755d56f266c7f72842fbeb9fa">nspi_context::rpc_connection</a>.</p>

</div>
</div>
<a class="anchor" id="a0a153755fe59a8319f2cc47052b20686"></a><!-- doxytag: member="nspi.c::nspi_ModProps" ref="a0a153755fe59a8319f2cc47052b20686" args="(struct nspi_context *nspi_ctx, TALLOC_CTX *mem_ctx, uint32_t MId, struct SPropTagArray *pPropTags, struct SRow *pRow)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">_PUBLIC_ enum MAPISTATUS nspi_ModProps </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structnspi__context.html">nspi_context</a> *&nbsp;</td>
          <td class="paramname"> <em>nspi_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">uint32_t&nbsp;</td>
          <td class="paramname"> <em>MId</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct SPropTagArray *&nbsp;</td>
          <td class="paramname"> <em>pPropTags</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct SRow *&nbsp;</td>
          <td class="paramname"> <em>pRow</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Modify the properties of an object in the address book</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>nspi_ctx</em>&nbsp;</td><td>pointer to the NSPI 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>MId</em>&nbsp;</td><td>the MId of the address book object </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pPropTags</em>&nbsp;</td><td>pointer to the list of properties to be modified on the object </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pRow</em>&nbsp;</td><td>Contains an address book row</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="structnspi__context.html#a7530f5a73abb556d8a0d9d9b29ca6de9">nspi_context::handle</a>, <a class="el" href="mapicode_8h.html#a72f77c7e5d097e7b47c57c0405070d0c">OPENCHANGE_RETVAL_IF</a>, <a class="el" href="structnspi__context.html#abcd28a9c718ececf9f5ad53e9c44fe4f">nspi_context::pStat</a>, and <a class="el" href="structnspi__context.html#ada6642a755d56f266c7f72842fbeb9fa">nspi_context::rpc_connection</a>.</p>

</div>
</div>
<a class="anchor" id="a074232ca0d68df2f56482dbfc8d585e1"></a><!-- doxytag: member="nspi.c::nspi_QueryColumns" ref="a074232ca0d68df2f56482dbfc8d585e1" args="(struct nspi_context *nspi_ctx, TALLOC_CTX *mem_ctx, bool WantUnicode, struct SPropTagArray **ppColumns)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">_PUBLIC_ enum MAPISTATUS nspi_QueryColumns </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structnspi__context.html">nspi_context</a> *&nbsp;</td>
          <td class="paramname"> <em>nspi_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">bool&nbsp;</td>
          <td class="paramname"> <em>WantUnicode</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct SPropTagArray **&nbsp;</td>
          <td class="paramname"> <em>ppColumns</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 list of all the properties the NSPI server is aware off.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>nspi_ctx</em>&nbsp;</td><td>pointer to the NSPI 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>WantUnicode</em>&nbsp;</td><td>whether we want UNICODE properties or not </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>ppColumns</em>&nbsp;</td><td>pointer on pointer to a property tag array</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="structnspi__context.html#a7530f5a73abb556d8a0d9d9b29ca6de9">nspi_context::handle</a>, <a class="el" href="mapicode_8h.html#a72f77c7e5d097e7b47c57c0405070d0c">OPENCHANGE_RETVAL_IF</a>, and <a class="el" href="structnspi__context.html#ada6642a755d56f266c7f72842fbeb9fa">nspi_context::rpc_connection</a>.</p>

</div>
</div>
<a class="anchor" id="a21f3016a6ca9b04ca4e5f8d7fcea2cb3"></a><!-- doxytag: member="nspi.c::nspi_QueryRows" ref="a21f3016a6ca9b04ca4e5f8d7fcea2cb3" args="(struct nspi_context *nspi_ctx, TALLOC_CTX *mem_ctx, struct SPropTagArray *pPropTags, struct SPropTagArray *MIds, uint32_t count, struct SRowSet **ppRows)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">_PUBLIC_ enum MAPISTATUS nspi_QueryRows </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structnspi__context.html">nspi_context</a> *&nbsp;</td>
          <td class="paramname"> <em>nspi_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 SPropTagArray *&nbsp;</td>
          <td class="paramname"> <em>pPropTags</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct SPropTagArray *&nbsp;</td>
          <td class="paramname"> <em>MIds</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&nbsp;</td>
          <td class="paramname"> <em>count</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct SRowSet **&nbsp;</td>
          <td class="paramname"> <em>ppRows</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 number of Rows from a specified table.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>nspi_ctx</em>&nbsp;</td><td>pointer to the NSPI 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>pPropTags</em>&nbsp;</td><td>pointer to the list of proptags that the client requires to be returned for each row. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>MIds</em>&nbsp;</td><td>pointer to a list of values representing an Explicit table </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>count</em>&nbsp;</td><td>the number of rows requested </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>ppRows</em>&nbsp;</td><td>pointer on pointer to the the rows returned by the server</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="structnspi__context.html#a7530f5a73abb556d8a0d9d9b29ca6de9">nspi_context::handle</a>, <a class="el" href="mapicode_8h.html#a72f77c7e5d097e7b47c57c0405070d0c">OPENCHANGE_RETVAL_IF</a>, <a class="el" href="structnspi__context.html#abcd28a9c718ececf9f5ad53e9c44fe4f">nspi_context::pStat</a>, and <a class="el" href="structnspi__context.html#ada6642a755d56f266c7f72842fbeb9fa">nspi_context::rpc_connection</a>.</p>

<p>Referenced by <a class="el" href="proto_8h.html#a9e77f769cd8552117fcb3b6bff4e03dd">GetGALTable()</a>, and <a class="el" href="proto_8h.html#ada21bf3df5258c0f7febd30ed00bd4ca">ProcessNetworkProfile()</a>.</p>

</div>
</div>
<a class="anchor" id="abdfc028c5e330e5cb39bf562a6d9f768"></a><!-- doxytag: member="nspi.c::nspi_ResolveNames" ref="abdfc028c5e330e5cb39bf562a6d9f768" args="(struct nspi_context *nspi_ctx, TALLOC_CTX *mem_ctx, const char **usernames, struct SPropTagArray *pPropTags, struct SRowSet ***pppRows, struct SPropTagArray ***pppMIds)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">_PUBLIC_ enum MAPISTATUS nspi_ResolveNames </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structnspi__context.html">nspi_context</a> *&nbsp;</td>
          <td class="paramname"> <em>nspi_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">const char **&nbsp;</td>
          <td class="paramname"> <em>usernames</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct SPropTagArray *&nbsp;</td>
          <td class="paramname"> <em>pPropTags</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct SRowSet ***&nbsp;</td>
          <td class="paramname"> <em>pppRows</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct SPropTagArray ***&nbsp;</td>
          <td class="paramname"> <em>pppMIds</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Takes a set of string values in an 8-bit character set and performs ANR on those strings</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>nspi_ctx</em>&nbsp;</td><td>pointer on the NSPI 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>usernames</em>&nbsp;</td><td>pointer on pointer to the list of values we want to perform ANR on </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pPropTags</em>&nbsp;</td><td>pointer on the property tags list we want for each row returned </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pppRows</em>&nbsp;</td><td>pointer on pointer on pointer to the rows returned by the server </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pppMIds</em>&nbsp;</td><td>pointer on pointer on pointer to the MIds matching the array of strings</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="structnspi__context.html#a7530f5a73abb556d8a0d9d9b29ca6de9">nspi_context::handle</a>, <a class="el" href="mapicode_8h.html#a72f77c7e5d097e7b47c57c0405070d0c">OPENCHANGE_RETVAL_IF</a>, <a class="el" href="structnspi__context.html#abcd28a9c718ececf9f5ad53e9c44fe4f">nspi_context::pStat</a>, and <a class="el" href="structnspi__context.html#ada6642a755d56f266c7f72842fbeb9fa">nspi_context::rpc_connection</a>.</p>

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

</div>
</div>
<a class="anchor" id="a9a4002a0dcf6dd87172b5fc6dc2afdaa"></a><!-- doxytag: member="nspi.c::nspi_ResolveNamesW" ref="a9a4002a0dcf6dd87172b5fc6dc2afdaa" args="(struct nspi_context *nspi_ctx, TALLOC_CTX *mem_ctx, const char **usernames, struct SPropTagArray *pPropTags, struct SRowSet ***pppRows, struct SPropTagArray ***pppMIds)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">_PUBLIC_ enum MAPISTATUS nspi_ResolveNamesW </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structnspi__context.html">nspi_context</a> *&nbsp;</td>
          <td class="paramname"> <em>nspi_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">const char **&nbsp;</td>
          <td class="paramname"> <em>usernames</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct SPropTagArray *&nbsp;</td>
          <td class="paramname"> <em>pPropTags</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct SRowSet ***&nbsp;</td>
          <td class="paramname"> <em>pppRows</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct SPropTagArray ***&nbsp;</td>
          <td class="paramname"> <em>pppMIds</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Takes a set of string values in the Unicode character set and performs ANR on those strings</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>nspi_ctx</em>&nbsp;</td><td>pointer on the NSPI 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>usernames</em>&nbsp;</td><td>pointer on pointer to the list of values we want to perform ANR on </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pPropTags</em>&nbsp;</td><td>pointer on the property tags list we want for each row returned </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pppRows</em>&nbsp;</td><td>pointer on pointer on pointer to the rows returned by the server </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pppMIds</em>&nbsp;</td><td>pointer on pointer on pointer to the MIds matching the array of strings</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="structnspi__context.html#a7530f5a73abb556d8a0d9d9b29ca6de9">nspi_context::handle</a>, <a class="el" href="mapicode_8h.html#a72f77c7e5d097e7b47c57c0405070d0c">OPENCHANGE_RETVAL_IF</a>, <a class="el" href="structnspi__context.html#abcd28a9c718ececf9f5ad53e9c44fe4f">nspi_context::pStat</a>, and <a class="el" href="structnspi__context.html#ada6642a755d56f266c7f72842fbeb9fa">nspi_context::rpc_connection</a>.</p>

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

</div>
</div>
<a class="anchor" id="a0ff8b8d442d3729b80bfb5f4039130f9"></a><!-- doxytag: member="nspi.c::nspi_ResortRestriction" ref="a0ff8b8d442d3729b80bfb5f4039130f9" args="(struct nspi_context *nspi_ctx, TALLOC_CTX *mem_ctx, enum TableSortOrders SortType, struct SPropTagArray *pInMIds, struct SPropTagArray **ppMIds)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">_PUBLIC_ enum MAPISTATUS nspi_ResortRestriction </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structnspi__context.html">nspi_context</a> *&nbsp;</td>
          <td class="paramname"> <em>nspi_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">enum TableSortOrders&nbsp;</td>
          <td class="paramname"> <em>SortType</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct SPropTagArray *&nbsp;</td>
          <td class="paramname"> <em>pInMIds</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct SPropTagArray **&nbsp;</td>
          <td class="paramname"> <em>ppMIds</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 sort order to the objects in a restricted address book container</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>nspi_ctx</em>&nbsp;</td><td>pointer to the NSPI 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>SortType</em>&nbsp;</td><td>the table sort order to use </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pInMIds</em>&nbsp;</td><td>pointer on a list of MIds that comprise a restricted addess book container </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>ppMIds</em>&nbsp;</td><td>pointer on pointer to the returned list of MIds that comprise a restricted addess book container.</td></tr>
  </table>
  </dd>
</dl>
<p>SortType can take the following values:</p>
<ol type="1">
<li>SortTypeDisplayName</li>
<li>SortTypePhoneticDisplayName</li>
</ol>
<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="structnspi__context.html#a7530f5a73abb556d8a0d9d9b29ca6de9">nspi_context::handle</a>, <a class="el" href="mapicode_8h.html#a72f77c7e5d097e7b47c57c0405070d0c">OPENCHANGE_RETVAL_IF</a>, <a class="el" href="structnspi__context.html#abcd28a9c718ececf9f5ad53e9c44fe4f">nspi_context::pStat</a>, and <a class="el" href="structnspi__context.html#ada6642a755d56f266c7f72842fbeb9fa">nspi_context::rpc_connection</a>.</p>

</div>
</div>
<a class="anchor" id="a16738a36d9fb94d4200dd5e5c2ec966d"></a><!-- doxytag: member="nspi.c::nspi_SeekEntries" ref="a16738a36d9fb94d4200dd5e5c2ec966d" args="(struct nspi_context *nspi_ctx, TALLOC_CTX *mem_ctx, enum TableSortOrders SortType, struct SPropValue *pTarget, struct SPropTagArray *pPropTags, struct SPropTagArray *pMIds, struct SRowSet **pRows)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">_PUBLIC_ enum MAPISTATUS nspi_SeekEntries </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structnspi__context.html">nspi_context</a> *&nbsp;</td>
          <td class="paramname"> <em>nspi_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">enum TableSortOrders&nbsp;</td>
          <td class="paramname"> <em>SortType</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct SPropValue *&nbsp;</td>
          <td class="paramname"> <em>pTarget</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct SPropTagArray *&nbsp;</td>
          <td class="paramname"> <em>pPropTags</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct SPropTagArray *&nbsp;</td>
          <td class="paramname"> <em>pMIds</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct SRowSet **&nbsp;</td>
          <td class="paramname"> <em>pRows</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Searches for and sets the logical position in a specific table to the first entry greater than or equal to a specified value. Optionally, it might also return information about rows in the table.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>nspi_ctx</em>&nbsp;</td><td>pointer to the NSPI 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>SortType</em>&nbsp;</td><td>the table sort order to use </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pTarget</em>&nbsp;</td><td>SPropValue struct holding the value being sought </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pPropTags</em>&nbsp;</td><td>pointer to an array of property tags of columns that the client wants to be returned for each row returned. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pMIds</em>&nbsp;</td><td>pointer to a list of Mid that comprise a restricted address book container </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pRows</em>&nbsp;</td><td>pointer to pointer to a SRowSet structure holding the rows returned by the server</td></tr>
  </table>
  </dd>
</dl>
<p>SortType can take the following values:</p>
<ol type="1">
<li>SortTypeDisplayName</li>
<li>SortTypePhoneticDisplayName</li>
</ol>
<p>If pTarget property tag is not set accordingly to SortType, the function returns MAPI_E_INVALID_PARAMETER. Possible values are:</p>
<ol type="1">
<li>SortType set to SortTypeDisplayName and pTarget property tag set to PR_DISPLAY_NAME or PR_DISPLAY_UNICODE</li>
<li>SortType set to SortTypePhoneticDisplayName and pTarget property tag set to PR_EMS_AB_PHONETIC_DISPLAY_NAME or PR_EMS_AB_PHONETIC_DISPLAY_NAME_UNICODE</li>
</ol>
<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="structnspi__context.html#a7530f5a73abb556d8a0d9d9b29ca6de9">nspi_context::handle</a>, <a class="el" href="mapicode_8h.html#a72f77c7e5d097e7b47c57c0405070d0c">OPENCHANGE_RETVAL_IF</a>, <a class="el" href="mapitags_8h.html#a449ee8cc69f5b054e2bc95f64d58322f">PR_DISPLAY_NAME</a>, <a class="el" href="mapitags_8h.html#ab7d3fe498c2e4eda89459be027bbef3b">PR_DISPLAY_NAME_UNICODE</a>, <a class="el" href="mapitags_8h.html#a0826f2a89e2076d1bf91db84cbb992b6">PR_EMS_AB_PHONETIC_DISPLAY_NAME</a>, <a class="el" href="mapitags_8h.html#a2552720a192ae6b27b99baf73a33aa78">PR_EMS_AB_PHONETIC_DISPLAY_NAME_UNICODE</a>, <a class="el" href="structnspi__context.html#abcd28a9c718ececf9f5ad53e9c44fe4f">nspi_context::pStat</a>, and <a class="el" href="structnspi__context.html#ada6642a755d56f266c7f72842fbeb9fa">nspi_context::rpc_connection</a>.</p>

</div>
</div>
<a class="anchor" id="a2affa29abdff15e46d8e9b902e4bf253"></a><!-- doxytag: member="nspi.c::nspi_unbind" ref="a2affa29abdff15e46d8e9b902e4bf253" args="(struct nspi_context *nspi_ctx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">_PUBLIC_ enum MAPISTATUS nspi_unbind </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structnspi__context.html">nspi_context</a> *&nbsp;</td>
          <td class="paramname"> <em>nspi_ctx</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Destroys the 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>nspi_ctx</em>&nbsp;</td><td>pointer to the NSPI connection context</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>return 1 on success or 2 if the input context is NULL </dd></dl>

<p>References <a class="el" href="structnspi__context.html#a7530f5a73abb556d8a0d9d9b29ca6de9">nspi_context::handle</a>, <a class="el" href="mapicode_8h.html#ad730652d71f309ac1423d4840f21ee5d">MAPI_STATUS_IS_OK</a>, <a class="el" href="structnspi__context.html#ab0ea00b8f33ae482293ececfb09379d8">nspi_context::mem_ctx</a>, <a class="el" href="mapicode_8h.html#a72f77c7e5d097e7b47c57c0405070d0c">OPENCHANGE_RETVAL_IF</a>, and <a class="el" href="structnspi__context.html#ada6642a755d56f266c7f72842fbeb9fa">nspi_context::rpc_connection</a>.</p>

<p>Referenced by <a class="el" href="nspi_8c.html#a24ae1ea81e7536bd2eebcddb3addea92">nspi_disconnect_dtor()</a>.</p>

</div>
</div>
<a class="anchor" id="a5fbd10649f0e5ad166357b962e86e41b"></a><!-- doxytag: member="nspi.c::nspi_UpdateStat" ref="a5fbd10649f0e5ad166357b962e86e41b" args="(struct nspi_context *nspi_ctx, TALLOC_CTX *mem_ctx, uint32_t *plDelta)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">_PUBLIC_ enum MAPISTATUS nspi_UpdateStat </td>
          <td>(</td>
          <td class="paramtype">struct <a class="el" href="structnspi__context.html">nspi_context</a> *&nbsp;</td>
          <td class="paramname"> <em>nspi_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">uint32_t *&nbsp;</td>
          <td class="paramname"> <em>plDelta</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Updates the STAT block representing position in a table to reflect positioning changes requested by the client.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>nspi_ctx</em>&nbsp;</td><td>pointer to the NSPI 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>plDelta</em>&nbsp;</td><td>pointer to an unsigned long indicating movement within the address book container specified by the input parameter pStat.</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="structnspi__context.html#a7530f5a73abb556d8a0d9d9b29ca6de9">nspi_context::handle</a>, <a class="el" href="mapicode_8h.html#a72f77c7e5d097e7b47c57c0405070d0c">OPENCHANGE_RETVAL_IF</a>, <a class="el" href="structnspi__context.html#abcd28a9c718ececf9f5ad53e9c44fe4f">nspi_context::pStat</a>, and <a class="el" href="structnspi__context.html#ada6642a755d56f266c7f72842fbeb9fa">nspi_context::rpc_connection</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>