3.1.4.14 NspiModProps (Opnum 11)

The NspiModProps method is used to modify the properties of an object in the address book.

 long NspiModProps(
   [in] NSPI_HANDLE hRpc,
   [in] DWORD Reserved,
   [in] STAT* pStat,
   [in, unique] PropertyTagArray_r* pPropTags,
   [in] PropertyRow_r* pRow
 );

hRpc:  An RPC context handle as specified in section 2.3.9.

Reserved: A DWORD value reserved for future use.

pStat:  A reference to a STAT block describing a logical position in a specific address book container.

pPropTags: The value NULL or a reference to a PropertyTagArray_r. Contains list of the proptags of the columns that client requests all values to be removed from.

pRow: A PropertyRow_r value. Contains an address book row.

Return Values: The server returns a long value specifying the return status of the method.

Exceptions Thrown

No exceptions are thrown beyond those thrown by the underlying RPC protocol, as specified in [MS-RPCE].

Server Processing Rules

Upon receiving this message, the server MUST process the data from the message subject to the following constraints:

  1. If the CodePage field of the input parameter pStat contains the value CP_WINUNICODE, 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.

  2. If the server returns any return value other than Success, the server MUST NOT modify any properties of any objects in the address book.

  3. The server MAY make additional validations as described in Security (section 5). 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 5.1 for more information.

  4. If the reserved input parameter Reserved contains any value other than 0, the server MUST return the value CallFailed.

  5. If the input parameter pPropTags is NULL, the server MUST return the value InvalidParameter.

  6. If the server is unable to locate the object specified by the CurrentRec field of the input parameter pStat, the server MUST return the value InvalidParameter.

  7. If the server is able to locate the object, but will not allow modifications to the object due to its display type, the server MUST return the value InvalidObject.

  8. The server MUST remove all values for all properties specified in the input parameter pPropTags from the object specified by the field CurrentRec in the input parameter pStat.

  9. The server MUST remove all values for all properties specified in the input parameter pRow from the object specified by the field CurrentRec in the input parameter pStat.

  10. The server MUST add all values for all properties specified in the input parameter pRow to the object specified by the field CurrentRec in the input parameter pStat.

  11. If the server is unable to apply the modifications specified for any other reason, the server MUST return the value AccessDenied.

  12. If no other return values have been specified by these constraints, the server MUST return the return value Success.