<div class="content"><p> </p><p>The NspiModLinkAtt method modifies the values of a specific
property of a specific row in the address book.</p><dl>
<dd>
<div><pre> long NspiModLinkAtt(
   [in] NSPI_HANDLE hRpc,
   [in] DWORD dwFlags,
   [in] DWORD ulPropTag,
   [in] DWORD dwMId,
   [in] BinaryArray_r* lpEntryIds
 );
</pre></div>
</dd></dl><p><b>hRpc: </b>An <span><a href="1b8009c5-72bc-41da-bbab-612b31da4410#gt_8a7f6700-8311-45bc-af10-82e10accd331" data-linktype="relative-path">RPC</a></span> context handle
as specified in section <span><a href="67195f6a-2002-4d81-b279-ba8b0aefb4af" data-linktype="relative-path">2.3.9</a></span>.</p><p><b>dwFlags: </b>A <span><a href="../ms-dtyp/262627d8-3418-4627-9218-4ffe110850b2" data-linktype="relative-path">DWORD</a></span>
value containing a set of bit flags. The server MUST ignore values other than
the bit flag fDelete.</p><p><b>ulPropTag: </b>A DWORD value. Contains the <span><a href="1b8009c5-72bc-41da-bbab-612b31da4410#gt_7eb84614-827d-4b68-a71c-dd94eb0ad27f" data-linktype="relative-path">proptag</a></span>
of the property that the client wishes to modify.</p><p><b>dwMId: </b> A DWORD value containing the <span><a href="1b8009c5-72bc-41da-bbab-612b31da4410#gt_42ecf4ed-a7e5-4044-a1f0-f67ca58fb4b6" data-linktype="relative-path">MId</a></span>
of the address book row that the client wishes to modify.</p><p><b>lpEntryIds: </b>A <b>BinaryArray</b> value.
Contains a list of Entry IDs to be used to modify the requested property on the
requested address book row. These Entry IDs can be either <span><a href="1b8009c5-72bc-41da-bbab-612b31da4410#gt_5a44d162-70af-46a6-a40a-b544e6861e21" data-linktype="relative-path">Ephemeral
Entry IDs</a></span> or <span><a href="1b8009c5-72bc-41da-bbab-612b31da4410#gt_8cfe7d12-6482-4e5b-8ac2-5d6057eeeb39" data-linktype="relative-path">Permanent Entry IDs</a></span>
or both.</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 <span><a href="../ms-rpce/290c38b1-92fe-4229-91e6-4fc376610c15" data-linktype="relative-path">[MS-RPCE]</a></span>.</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 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 <span><a href="39bcbcd7-fa18-4eb2-a2ae-c598b6683185" data-linktype="relative-path">Security (section 5)</a></span>.
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 <span><a href="36c0f768-1fdd-4709-9875-6c387b107560" data-linktype="relative-path">5.1</a></span>
for more information.</p>
</li><li><p><span>    </span>If the input
parameter <i>ulPropTag</i> does not specify a proptag the server recognizes,
the server MUST return NotFound.</p>
</li><li><p><span>    </span>If the server is
unable to locate the object specified by the input parameter <i>dwMId</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 <span><a href="1b8009c5-72bc-41da-bbab-612b31da4410#gt_09ba95e7-c783-4c4b-880a-eac356f54878" data-linktype="relative-path">display type</a></span>, the
server MUST NOT modify any properties of any objects in the address book, and
the server MUST return the value Success.</p>
</li><li><p><span>    </span>If the input
parameter <i>dwFlags</i> contains the bit value fDelete, the server MUST remove
all values specified by the input parameter <i>lpEntryIDs</i> from the property
specified by ulPropTag for the object specified by input parameter <i>dwMId</i>.
The server MUST ignore any values specified by <i>lpEntryIDs</i> that are not
present on the object specified by <i>dwMId</i>.</p>
</li><li><p><span>    </span>If the input
parameter <i>dwFlags</i> does not contain the bit value fDelete, the server
MUST add all values specified by the input parameter <i>lpEntryIDs</i> to the
property specified by <i>ulPropTag</i> for the object specified by the input
parameter <i>dwMId</i>. The server MUST ignore any values specified by <i>lpEntryIDs</i>
that are already present on the object specified by <i>dwMId</i>.</p>
</li><li><p><span>    </span>If the server is
unable to apply the modifications specified, 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>