<div class="content" name="NspiCompareMIds" uuid="98e1d835-2975-4ed4-9350-d3f5d8440d64"><p>The NspiCompareMIds method compares the position in an <a href="1b8009c5-72bc-41da-bbab-612b31da4410#gt_a34b031c-18b2-40e1-acfa-3b73cc71e80b" data-linktype="relative-path">address book container</a> of
two objects identified by <a href="1b8009c5-72bc-41da-bbab-612b31da4410#gt_42ecf4ed-a7e5-4044-a1f0-f67ca58fb4b6" data-linktype="relative-path">MId</a>
and returns the value of the comparison.</p><dl>
<dd>
<div><pre> long NspiCompareMIds(
   [in] NSPI_HANDLE hRpc,
   [in] DWORD Reserved,
   [in] STAT* pStat,
   [in] DWORD MId1,
   [in] DWORD MId2,
   [out] long* plResult
 );
</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. Ignored by the server. </p><p><b>pStat: </b>pStat: 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 address book container.</p><p><b>MId1: </b>A DWORD value containing a MId.</p><p><b>MId2: </b>A DWORD value containing a MId.</p><p><b>plResult: </b>A DWORD value. On return, it
contains the result of the comparison.</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>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>If the server
returns any return value other than Success, the protocol does not constrain
the value in the return parameter <i>plResult</i>.</p>
</li><li><p><span>    </span>If the server is
unable to locate the objects specified by the input parameters <i>MId1</i> or <i>MId2</i>
in the table specified by the <b>ContainerID</b> field of the input parameter <i>pStat</i>,
the server MUST return the return value GeneralFailure.</p>
</li><li><p><span>    </span>If the position
of the object specified by <i>MId1</i> comes before the position of the object
specified by <i>MId2</i> in the table specified by the field <b>ContainerID</b>
of the input parameter <i>pStat</i>, the server MUST return a value less than 0
in the output parameter <i>plResult</i>.</p>
</li><li><p><span>    </span>If the position
of the object specified by <i>MId1</i> comes after the position of the object
specified by <i>MId2</i> in the table specified by the field <b>ContainerID</b>
of the input parameter <i>pStat</i>, the server MUST return a value greater
than 0 in the output parameter <i>plResult</i>.</p>
</li><li><p><span>    </span>If the position
of the object specified by <i>MId1</i> is the same as the position of the
object specified by <i>MId2</i> in the table specified by the field <b>ContainerID</b>
of the input parameter <i>pStat</i> (that is, they specify the same object),
the server MUST return a value of 0 in the output parameter <i>plResult</i>.</p>
</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>