<div class="content" name="NspiResolveNamesW" uuid="7c059171-6427-4e9b-9c3b-69d0c51d87bb"><p>The NspiResolveNamesW method takes a set of string values in
the <a href="1b8009c5-72bc-41da-bbab-612b31da4410#gt_c305d0ab-8b94-461a-bd76-13b40cb8c4d8" data-linktype="relative-path">Unicode</a> character
set and performs <a href="1b8009c5-72bc-41da-bbab-612b31da4410#gt_74f3dfcc-c54c-4005-8a9e-d88b95c5d33b" data-linktype="relative-path">ANR</a> (as
specified in <a href="f31bce37-0400-4fa3-9bc6-d77ce2aba12e" data-linktype="relative-path">3.1.1.6</a>)
on those strings. The server reports the <a href="1b8009c5-72bc-41da-bbab-612b31da4410#gt_42ecf4ed-a7e5-4044-a1f0-f67ca58fb4b6" data-linktype="relative-path">MId</a> that are the result of
the ANR process. Certain property values are returned for any valid MIds
identified by the ANR process. </p><dl>
<dd>
<div><pre> long NspiResolveNamesW(
   [in] NSPI_HANDLE hRpc,
   [in] DWORD Reserved,
   [in] STAT* pStat,
   [in, unique] PropertyTagArray_r* pPropTags,
   [in] WStringsArray_r* paWStr,
   [out] PropertyTagArray_r** ppMIds,
   [out] PropertyRowSet_r** ppRows
 );
</pre></div>
</dd></dl><p><b>hRpc: </b>An <a href="1b8009c5-72bc-41da-bbab-612b31da4410#gt_8a7f6700-8311-45bc-af10-82e10accd331" data-linktype="relative-path">RPC</a> context handle as
specified in section <a href="67195f6a-2002-4d81-b279-ba8b0aefb4af" data-linktype="relative-path">2.3.9</a>.</p><p><b>Reserved: </b>A <a href="../ms-dtyp/262627d8-3418-4627-9218-4ffe110850b2" data-linktype="relative-path">DWORD</a>
value reserved for future use.</p><p><b>pStat: </b>A reference to a <a href="5902bec9-3124-4725-8a8f-1a50282ed023" data-linktype="relative-path">STAT</a> block describing a
logical position in a specific <a href="1b8009c5-72bc-41da-bbab-612b31da4410#gt_a34b031c-18b2-40e1-acfa-3b73cc71e80b" data-linktype="relative-path">address book container</a>.</p><p><b>pPropTags: </b>The value NULL or a reference to a <a href="9dc42856-90da-4df9-85ca-f8307db84659" data-linktype="relative-path">PropertyTagArray_r</a>
containing a list of the <a href="1b8009c5-72bc-41da-bbab-612b31da4410#gt_7eb84614-827d-4b68-a71c-dd94eb0ad27f" data-linktype="relative-path">proptags</a>
of the columns that the client requests to be returned for each row returned. </p><p><b>paWStr: </b>A <a href="ce40078b-cdb2-4e5c-9b57-4fa923f05b52" data-linktype="relative-path">WStringsArray_r</a> value.
Specifies the values on which the client is requesting that the server perform
ANR. The server MUST apply any necessary character set conversion as specified
in <a href="522c7a16-a670-4bea-9c11-74a3d7dfedbe" data-linktype="relative-path">String
Handling (section 3.1.1.2)</a>.</p><p><b>ppMIds: </b>A PropertyTagArray_r value. On return,
contains a list of MIds matching the array of strings, as specified in the
input parameter <i>paWStr</i></p><p><b>ppRows: </b>A reference to a <a href="0c81c77a-009c-4077-991e-a2ce23584adf" data-linktype="relative-path">PropertyRowSet_r</a>. Contains
the address book container rows that the server returns in response to the
request. </p><p><b>Return Values: </b>The server returns a long value
specifying the return status of the method.</p><p>Exceptions Thrown</p><p>No exceptions are thrown beyond those thrown by the
underlying RPC protocol, as specified in <a href="../ms-rpce/290c38b1-92fe-4229-91e6-4fc376610c15" data-linktype="relative-path">[MS-RPCE]</a>.</p><p>Server Processing Rules</p><p>Upon receiving this message, the server MUST process the
data from the message subject to the following constraints: </p><ol><li><p><span>    </span>If the <b>CodePage</b>
field of the input parameter <i>pStat</i> contains the value CP_WINUNICODE, the
server MUST return one of the return values documented in section <a href="03bb2ea3-f2e9-4adb-ab46-751aca824b72" data-linktype="relative-path">2.2.2</a>.  No further
constraints are applied to server processing of this method; in this case
server behavior is undefined.  Note especially that there is no constraint on
the data the server returns in any output parameter other than the return
value, nor is there any constraint on how or if the server changes its state.</p>
</li><li><p><span>    </span>If the input
parameter Reserved1 contains any value other than 0, the server MUST return one
of the return values documented in section 2.2.2.  No further constraints are
applied to server processing of this method; in this case server behavior is
undefined.  Note especially that there is no constraint on the data the server
returns in any output parameter other than the return value, nor is there any
constraint on how or if the server changes its state.</p>
</li><li><p><span>    </span>If the server
returns any return value other than Success, the server MUST return the value
NULL in the return parameters <i>ppMIds</i> and <i>ppRows</i>.</p>
</li><li><p><span>    </span>The server MAY
make additional validations as described in <a href="39bcbcd7-fa18-4eb2-a2ae-c598b6683185" data-linktype="relative-path">Security (section 5)</a>.
If the server chooses to limit the visibility of data based on these
validations, the server MUST proceed as if that data did not exist in the
address book. See the product behavior note cited in section <a href="36c0f768-1fdd-4709-9875-6c387b107560" data-linktype="relative-path">5.1</a> for more information.</p>
</li><li><p><span>    </span>If the server is
unable to locate the address book container specified by the <b>ContainerID</b>
field in the input parameter <i>pStat</i>, the server MUST return the return
value InvalidBookmark.</p>
</li><li><p><span>    </span>The server
constructs a list of the MIds defined in section <a href="24c55599-f2f1-42e8-a166-20057876c85d" data-linktype="relative-path">2.2.9</a> to return to the
client. These MIds are those that result from the ANR process (see section
3.1.1.6) to the strings in the input parameter <i>paStr</i>. This list is in a
one-to-one order preserving correspondence with the strings in the input
parameter <i>paStr</i>. The server MUST return this list of MIds in the output
parameter <i>ppMIds</i>.</p>
</li><li><p><span>    </span>Subject to the
prior constraints, the server MUST construct an PropertyRowSet_r to return to
the client. This PropertyRowSet_r MUST be exactly the same PropertyRowSet_r
that would be returned via the method <a href="f38b81ac-23d8-4040-a12e-aa4d106f5fc5" data-linktype="relative-path">NspiQueryRows</a> with the
following parameters:</p>
<ol><li><p><span>   
</span>The NspiResolveNamesW parameter <i>hRpc</i> is used as the NspiQueryRows
parameter <i>hRpc</i>.</p>
</li><li><p><span>   
</span>The value 0 is used as the NspiQueryRows parameter <i>dwFlag</i>.</p>
</li><li><p><span>   
</span>The NspiResolveNamesW parameter <i>pStat</i> is used as the
NspiQueryRows parameter <i>pStat</i>.</p>
</li><li><p><span>   
</span>The number of valid MIds constructed for the NspiResolveNamesW output parameter
<i>ppMIds</i> (that is, all those MIds not equal to MID_AMBIGUOUS or
MID_UNRESOLVED) is used as the NspiQueryRows parameter <i>dwETableCount</i>.</p>
</li><li><p><span>   
</span>The list of valid MIds constructed for the NspiResolveNamesW output
parameter <i>ppMIds</i> (that is, all those MIds not equal to MID_AMBIGUOUS or
MID_UNRESOLVED) is used as the NspiQueryRows parameter <i>lpETable</i>. These
MIds are expressed as a simple array of DWORD values rather than as a
PropertyTagArray_r value.</p>
</li><li><p><span>   
</span>The number of valid MIds constructed for the NspiResolveNamesW output
parameter <i>ppMIds</i> (that is, all those MIds not equal to MID_AMBIGUOUS or
MID_UNRESOLVED) is used as the NspiQueryRows parameter <i>Count</i>.</p>
</li><li><p><span>   
</span>The NspiResolveNamesW parameter <i>pPropTags</i> is used as the
NspiQueryRows parameter <i>pPropTags</i>.</p>
<p>The additional constraint
applies:</p>
</li></ol><ul><li><p><span><span>  </span></span>If
the NspiQueryRows returns Success or ErrorsReturned, the server MUST return the
number of rows specified by the input parameter <i>Count</i>.</p>
<p>If the method NspiQueryRows
with the specified parameters and additional constraint would return any value other
than Success or ErrorsReturned, the NspiResolveNamesW method MUST return that
error code. If the NspiQueryRows would return either Success or ErrorsReturned,
the server MUST return the constructed PropertyRowSet_r in the output parameter
<i>ppRows</i>.</p>
</li></ul></li><li><p><span>    </span>If no other
return values have been specified by these constraints, the server MUST return
the return value Success.</p>
</li></ol></div>