IPropData::HrGetPropAccess

The IPropData::HrGetPropAccess method retrieves the access level and status for one or more of the object's properties.

Quick Info

See IPropData : IMAPIProp.

HRESULT HrGetPropAccess(
  LPSPropTagArray FAR * lppPropTagArray,   
  ULONG FAR * FAR * lprgulAccess           
);
 

Parameters

lppPropTagArray
[in, out] On input, contains either an array of property tags indicating the properties for which to retrieve access levels and status or a pointer to NULL, indicating that HrGetPropAccess should retrieve access levels and status for all properties.

On output, contains an array of property tags for which access and status flags were retrieved. The flags are stored in the array pointed to by lprgulAccess.

lprgulAccess
[out] Pointer to an array of bitmasks of flags. Each bitmask indicates the access levels and/or status for each of the properties identified in the array pointed to by lppPropTagArray. The two arrays are positional in that the first bitmask pointed to by lprgulAccess describes the first property pointed to by lppPropTagArray and so on.

For each property tag, the following flags can be set:
Access level flag Status flag
IPROP_READONLY, indicating that the property cannot be modified IPROP_CLEAN, indicating that the property has not been modified.
IPROP_READWRITE, indicating that the property can be modified. IPROP_DIRTY, indicating that the property has been modified.

Return Values

S_OK
The access level and status flags for the properties were successfully returned.

Remarks

The IPropData::HrGetPropAccess method retrieves a set of flags indicating the access level and status for one or more properties.

Notes to Callers:

HrGetPropAccess can be used:

If one of the properties in the property tag array pointed to by lppPropTagArray has been deleted, HrGetPropAccess sets the array entry to zero on output. If you set lppPropTagArray to NULL and one of the object's properties has been deleted, the deleted property is returned in the array.

If a property has been modified, its IPROP_DIRTY flag is set in the corresponding entry in the array pointed to by lprgulAccess. Neither IPROP_READONLY or IPROP_READWRITE will be set.

If a property has not been modified or deleted, only an access level flag will be set: IPROP_READONLY or IPROP_READWRITE.

See Also

SPropTagArray