<html> <head> <title>MAPIClientLibraries 0.9 API Documentation</title> <link href="doxygen.css" rel="stylesheet" type="text/css"/> <link href="apidocs.css" rel="stylesheet" type="text/css"/> </head> <body> <div id="website"> <div class="header"></div> <div id="middle_side"> <div id="right_side_home"> <!-- Generated by Doxygen 1.7.1 --> <div class="navigation" id="top"> <div class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> <li><a href="examples.html"><span>Examples</span></a></li> </ul> </div> <div class="tabs2"> <ul class="tablist"> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>Globals</span></a></li> </ul> </div> </div> <div class="header"> <div class="summary"> <a href="#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 <<a class="el" href="libmapi_8h.html">libmapi/libmapi.h</a>></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> * </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 </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 * </td> <td class="paramname"> <em>parent_ctx</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct dcerpc_pipe * </td> <td class="paramname"> <em>p</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct cli_credentials * </td> <td class="paramname"> <em>cred</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">uint32_t </td> <td class="paramname"> <em>codepage</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">uint32_t </td> <td class="paramname"> <em>language</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">uint32_t </td> <td class="paramname"> <em>method</em></td><td> </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> </td><td>pointer to the memory context </td></tr> <tr><td valign="top"></td><td valign="top"><em>p</em> </td><td>pointer to the DCERPC pipe </td></tr> <tr><td valign="top"></td><td valign="top"><em>cred</em> </td><td>pointer to the user credentials </td></tr> <tr><td valign="top"></td><td valign="top"><em>codepage</em> </td><td>the code to set in the STAT structure </td></tr> <tr><td valign="top"></td><td valign="top"><em>language</em> </td><td>the language to set in the STAT structure </td></tr> <tr><td valign="top"></td><td valign="top"><em>method</em> </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> * </td> <td class="paramname"> <em>nspi_ctx</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">TALLOC_CTX * </td> <td class="paramname"> <em>mem_ctx</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">uint32_t </td> <td class="paramname"> <em>MId1</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">uint32_t </td> <td class="paramname"> <em>MId2</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">uint32_t * </td> <td class="paramname"> <em>plResult</em></td><td> </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> </td><td>pointer to the NSPI connection context </td></tr> <tr><td valign="top"></td><td valign="top"><em>mem_ctx</em> </td><td>pointer to the memory context </td></tr> <tr><td valign="top"></td><td valign="top"><em>MId1</em> </td><td>the first MId to compare </td></tr> <tr><td valign="top"></td><td valign="top"><em>MId2</em> </td><td>the second MId to compare </td></tr> <tr><td valign="top"></td><td valign="top"><em>plResult</em> </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 * </td> <td class="paramname"> <em>data</em></td> <td> ) </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> </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> * </td> <td class="paramname"> <em>nspi_ctx</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">TALLOC_CTX * </td> <td class="paramname"> <em>mem_ctx</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct StringsArray_r * </td> <td class="paramname"> <em>pNames</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct SPropTagArray ** </td> <td class="paramname"> <em>ppMIds</em></td><td> </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> </td><td>pointer to the NSPI connection context </td></tr> <tr><td valign="top"></td><td valign="top"><em>mem_ctx</em> </td><td>pointer to the memory context </td></tr> <tr><td valign="top"></td><td valign="top"><em>pNames</em> </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> </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> * </td> <td class="paramname"> <em>nspi_ctx</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">TALLOC_CTX * </td> <td class="paramname"> <em>mem_ctx</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"> <em>VerifyNames</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">uint32_t </td> <td class="paramname"> <em>cNames</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct PropertyName_r * </td> <td class="paramname"> <em>ppNames</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct SPropTagArray ** </td> <td class="paramname"> <em>ppPropTags</em></td><td> </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> </td><td>pointer on the NSPI connection context </td></tr> <tr><td valign="top"></td><td valign="top"><em>mem_ctx</em> </td><td>pointer to the memoty context </td></tr> <tr><td valign="top"></td><td valign="top"><em>VerifyNames</em> </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> </td><td>count of PropertyName_r entries </td></tr> <tr><td valign="top"></td><td valign="top"><em>ppNames</em> </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> </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> * </td> <td class="paramname"> <em>nspi_ctx</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">TALLOC_CTX * </td> <td class="paramname"> <em>mem_ctx</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct SPropTagArray * </td> <td class="paramname"> <em>pPropTags</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct Restriction_r * </td> <td class="paramname"> <em>Filter</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct SRowSet ** </td> <td class="paramname"> <em>ppRows</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct SPropTagArray ** </td> <td class="paramname"> <em>ppOutMIds</em></td><td> </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> </td><td>pointer to the NSPI connection context </td></tr> <tr><td valign="top"></td><td valign="top"><em>mem_ctx</em> </td><td>pointer to the memory context </td></tr> <tr><td valign="top"></td><td valign="top"><em>pPropTags</em> </td><td>pointer to an array of property tags of columns </td></tr> <tr><td valign="top"></td><td valign="top"><em>Filter</em> </td><td>pointer to the Restriction to apply to the table </td></tr> <tr><td valign="top"></td><td valign="top"><em>ppRows</em> </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> </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> * </td> <td class="paramname"> <em>nspi_ctx</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">TALLOC_CTX * </td> <td class="paramname"> <em>mem_ctx</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct FlatUID_r * </td> <td class="paramname"> <em>lpGuid</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct SPropTagArray * </td> <td class="paramname"> <em>pPropTags</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct SPropTagArray ** </td> <td class="paramname"> <em>ppReturnedPropTags</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct PropertyNameSet_r ** </td> <td class="paramname"> <em>ppNames</em></td><td> </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> </td><td>pointer on the NSPI connection text </td></tr> <tr><td valign="top"></td><td valign="top"><em>mem_ctx</em> </td><td>pointer to the memory context </td></tr> <tr><td valign="top"></td><td valign="top"><em>lpGuid</em> </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> </td><td>pointer to the proptags list </td></tr> <tr><td valign="top"></td><td valign="top"><em>ppReturnedPropTags</em> </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> </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> * </td> <td class="paramname"> <em>nspi_ctx</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">TALLOC_CTX * </td> <td class="paramname"> <em>mem_ctx</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"> <em>WantObject</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">uint32_t </td> <td class="paramname"> <em>dwMId</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct SPropTagArray ** </td> <td class="paramname"> <em>ppPropTags</em></td><td> </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> </td><td>pointer to the NSPI connection context </td></tr> <tr><td valign="top"></td><td valign="top"><em>mem_ctx</em> </td><td>pointer to the memory context </td></tr> <tr><td valign="top"></td><td valign="top"><em>WantObject</em> </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> </td><td>the MId of the specified object </td></tr> <tr><td valign="top"></td><td valign="top"><em>ppPropTags</em> </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> * </td> <td class="paramname"> <em>nspi_ctx</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">TALLOC_CTX * </td> <td class="paramname"> <em>mem_ctx</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct SPropTagArray * </td> <td class="paramname"> <em>pPropTags</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct SPropTagArray * </td> <td class="paramname"> <em>MId</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct SRowSet ** </td> <td class="paramname"> <em>SRowSet</em></td><td> </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> </td><td>pointer to the NSPI connection context </td></tr> <tr><td valign="top"></td><td valign="top"><em>mem_ctx</em> </td><td>pointer to the memory context </td></tr> <tr><td valign="top"></td><td valign="top"><em>pPropTags</em> </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> </td><td>pointer to the MId of the record </td></tr> <tr><td valign="top"></td><td valign="top"><em>SRowSet</em> </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> * </td> <td class="paramname"> <em>nspi_ctx</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">TALLOC_CTX * </td> <td class="paramname"> <em>mem_ctx</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">uint32_t </td> <td class="paramname"> <em>Type</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct SRowSet ** </td> <td class="paramname"> <em>ppRows</em></td><td> </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> </td><td>pointer to the NSPI connection context </td></tr> <tr><td valign="top"></td><td valign="top"><em>mem_ctx</em> </td><td>pointer to the memory context </td></tr> <tr><td valign="top"></td><td valign="top"><em>Type</em> </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> </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> * </td> <td class="paramname"> <em>nspi_ctx</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">TALLOC_CTX * </td> <td class="paramname"> <em>mem_ctx</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">uint32_t </td> <td class="paramname"> <em>dwFlags</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">uint32_t </td> <td class="paramname"> <em>ulType</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char * </td> <td class="paramname"> <em>pDN</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct SRow ** </td> <td class="paramname"> <em>ppData</em></td><td> </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> </td><td>pointer to the NSPI memory context </td></tr> <tr><td valign="top"></td><td valign="top"><em>mem_ctx</em> </td><td>pointer to the memory context </td></tr> <tr><td valign="top"></td><td valign="top"><em>dwFlags</em> </td><td>set of bit flags </td></tr> <tr><td valign="top"></td><td valign="top"><em>ulType</em> </td><td>specifies the display type of the template </td></tr> <tr><td valign="top"></td><td valign="top"><em>pDN</em> </td><td>the DN of the template requested </td></tr> <tr><td valign="top"></td><td valign="top"><em>ppData</em> </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> * </td> <td class="paramname"> <em>nspi_ctx</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"> <em>Delete</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">uint32_t </td> <td class="paramname"> <em>ulPropTag</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">uint32_t </td> <td class="paramname"> <em>MId</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct BinaryArray_r * </td> <td class="paramname"> <em>lpEntryIds</em></td><td> </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> </td><td>pointer to the NSPI connection context </td></tr> <tr><td valign="top"></td><td valign="top"><em>Delete</em> </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> </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> </td><td>the MId of the address book object </td></tr> <tr><td valign="top"></td><td valign="top"><em>lpEntryIds</em> </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> * </td> <td class="paramname"> <em>nspi_ctx</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">TALLOC_CTX * </td> <td class="paramname"> <em>mem_ctx</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">uint32_t </td> <td class="paramname"> <em>MId</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct SPropTagArray * </td> <td class="paramname"> <em>pPropTags</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct SRow * </td> <td class="paramname"> <em>pRow</em></td><td> </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> </td><td>pointer to the NSPI connection context </td></tr> <tr><td valign="top"></td><td valign="top"><em>mem_ctx</em> </td><td>pointer to the memory context </td></tr> <tr><td valign="top"></td><td valign="top"><em>MId</em> </td><td>the MId of the address book object </td></tr> <tr><td valign="top"></td><td valign="top"><em>pPropTags</em> </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> </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> * </td> <td class="paramname"> <em>nspi_ctx</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">TALLOC_CTX * </td> <td class="paramname"> <em>mem_ctx</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"> <em>WantUnicode</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct SPropTagArray ** </td> <td class="paramname"> <em>ppColumns</em></td><td> </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> </td><td>pointer to the NSPI connection context </td></tr> <tr><td valign="top"></td><td valign="top"><em>mem_ctx</em> </td><td>pointer to the memory context </td></tr> <tr><td valign="top"></td><td valign="top"><em>WantUnicode</em> </td><td>whether we want UNICODE properties or not </td></tr> <tr><td valign="top"></td><td valign="top"><em>ppColumns</em> </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> * </td> <td class="paramname"> <em>nspi_ctx</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">TALLOC_CTX * </td> <td class="paramname"> <em>mem_ctx</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct SPropTagArray * </td> <td class="paramname"> <em>pPropTags</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct SPropTagArray * </td> <td class="paramname"> <em>MIds</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">uint32_t </td> <td class="paramname"> <em>count</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct SRowSet ** </td> <td class="paramname"> <em>ppRows</em></td><td> </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> </td><td>pointer to the NSPI connection context </td></tr> <tr><td valign="top"></td><td valign="top"><em>mem_ctx</em> </td><td>pointer to the memory context </td></tr> <tr><td valign="top"></td><td valign="top"><em>pPropTags</em> </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> </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> </td><td>the number of rows requested </td></tr> <tr><td valign="top"></td><td valign="top"><em>ppRows</em> </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> * </td> <td class="paramname"> <em>nspi_ctx</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">TALLOC_CTX * </td> <td class="paramname"> <em>mem_ctx</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char ** </td> <td class="paramname"> <em>usernames</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct SPropTagArray * </td> <td class="paramname"> <em>pPropTags</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct SRowSet *** </td> <td class="paramname"> <em>pppRows</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct SPropTagArray *** </td> <td class="paramname"> <em>pppMIds</em></td><td> </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> </td><td>pointer on the NSPI connection context </td></tr> <tr><td valign="top"></td><td valign="top"><em>mem_ctx</em> </td><td>pointer to the memory context </td></tr> <tr><td valign="top"></td><td valign="top"><em>usernames</em> </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> </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> </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> </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> * </td> <td class="paramname"> <em>nspi_ctx</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">TALLOC_CTX * </td> <td class="paramname"> <em>mem_ctx</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char ** </td> <td class="paramname"> <em>usernames</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct SPropTagArray * </td> <td class="paramname"> <em>pPropTags</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct SRowSet *** </td> <td class="paramname"> <em>pppRows</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct SPropTagArray *** </td> <td class="paramname"> <em>pppMIds</em></td><td> </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> </td><td>pointer on the NSPI connection context </td></tr> <tr><td valign="top"></td><td valign="top"><em>mem_ctx</em> </td><td>pointer to the memory context </td></tr> <tr><td valign="top"></td><td valign="top"><em>usernames</em> </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> </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> </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> </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> * </td> <td class="paramname"> <em>nspi_ctx</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">TALLOC_CTX * </td> <td class="paramname"> <em>mem_ctx</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">enum TableSortOrders </td> <td class="paramname"> <em>SortType</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct SPropTagArray * </td> <td class="paramname"> <em>pInMIds</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct SPropTagArray ** </td> <td class="paramname"> <em>ppMIds</em></td><td> </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> </td><td>pointer to the NSPI connection context </td></tr> <tr><td valign="top"></td><td valign="top"><em>mem_ctx</em> </td><td>pointer to the memory context </td></tr> <tr><td valign="top"></td><td valign="top"><em>SortType</em> </td><td>the table sort order to use </td></tr> <tr><td valign="top"></td><td valign="top"><em>pInMIds</em> </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> </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> * </td> <td class="paramname"> <em>nspi_ctx</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">TALLOC_CTX * </td> <td class="paramname"> <em>mem_ctx</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">enum TableSortOrders </td> <td class="paramname"> <em>SortType</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct SPropValue * </td> <td class="paramname"> <em>pTarget</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct SPropTagArray * </td> <td class="paramname"> <em>pPropTags</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct SPropTagArray * </td> <td class="paramname"> <em>pMIds</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct SRowSet ** </td> <td class="paramname"> <em>pRows</em></td><td> </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> </td><td>pointer to the NSPI connection context </td></tr> <tr><td valign="top"></td><td valign="top"><em>mem_ctx</em> </td><td>pointer to the memory context </td></tr> <tr><td valign="top"></td><td valign="top"><em>SortType</em> </td><td>the table sort order to use </td></tr> <tr><td valign="top"></td><td valign="top"><em>pTarget</em> </td><td>SPropValue struct holding the value being sought </td></tr> <tr><td valign="top"></td><td valign="top"><em>pPropTags</em> </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> </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> </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> * </td> <td class="paramname"> <em>nspi_ctx</em></td> <td> ) </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> </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> * </td> <td class="paramname"> <em>nspi_ctx</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">TALLOC_CTX * </td> <td class="paramname"> <em>mem_ctx</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">uint32_t * </td> <td class="paramname"> <em>plDelta</em></td><td> </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> </td><td>pointer to the NSPI connection context </td></tr> <tr><td valign="top"></td><td valign="top"><em>mem_ctx</em> </td><td>pointer to the memory context </td></tr> <tr><td valign="top"></td><td valign="top"><em>plDelta</em> </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>