<div class="content" name="NspiModProps" uuid="b5a5119e-d892-41ac-9b5a-0e7d0702e91c"><p>The NspiModProps method is used to modify the properties of
an object in the address book.</p><dl>
<dd>
<div><pre> long NspiModProps(
   [in] NSPI_HANDLE hRpc,
   [in] DWORD Reserved,
   [in] STAT* pStat,
   [in, unique] PropertyTagArray_r* pPropTags,
   [in] PropertyRow_r* pRow
 );
</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>.
Contains 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 client requests all values to be removed from. </p><p><b>pRow: </b>A <a href="e627a2d6-4a92-42f7-b1e6-54400373f371" data-linktype="relative-path">PropertyRow_r</a> value.
Contains an address book row.</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 server
returns any return value other than Success, the server MUST NOT modify any
properties of any objects in the address book.</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 reserved
input parameter Reserved contains any value other than 0, the server MUST
return the value CallFailed.</p>
</li><li><p><span>    </span>If the input
parameter <i>pPropTags</i> is NULL, the server MUST return the value
InvalidParameter.</p>
</li><li><p><span>    </span>If the server is
unable to locate the object specified by the <b>CurrentRec</b> field of the
input parameter <i>pStat</i>, the server MUST return the value
InvalidParameter.</p>
</li><li><p><span>    </span>If the server is
able to locate the object, but will not allow modifications to the object due
to its <a href="1b8009c5-72bc-41da-bbab-612b31da4410#gt_09ba95e7-c783-4c4b-880a-eac356f54878" data-linktype="relative-path">display type</a>, the
server MUST return the value InvalidObject.</p>
</li><li><p><span>    </span>The server MUST
remove all values for all properties specified in the input parameter <i>pPropTags</i>
from the object specified by the field <b>CurrentRec</b> in the input parameter
<i>pStat</i>.</p>
</li><li><p><span>    </span>The server MUST
remove all values for all properties specified in the input parameter <i>pRow</i>
from the object specified by the field <b>CurrentRec</b> in the input parameter
<i>pStat</i>.</p>
</li><li><p><span>  </span>The server MUST add all
values for all properties specified in the input parameter <i>pRow</i> to the
object specified by the field <b>CurrentRec</b> in the input parameter <i>pStat</i>.</p>
</li><li><p><span>  </span>If the server is unable to
apply the modifications specified for any other reason, the server MUST return
the value AccessDenied.</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>