SPropValue

The SPropValue structure describes a MAPI property.

Quick Info

Header file: MAPIDEFS.H
Related macros: CHANGE_PROP_TYPE
MVI_PROP
PROP_ID
PROP_TAG
PROP_TYPE

typedef struct _SPropValue 
{ 
     ULONG     ulPropTag; 
     ULONG     dwAlignPad; 
     union _PV  Value; 
} SPropValue, FAR *LPSPropValue; 
 

Members

ulPropTag
Property tag for the property. Property tags are 32-bit unsigned integers consisting of the property's unique identifier in the high-order 16 bits and the property's type in the low-order 16 bits.
dwAlignPad
Reserved for MAPI; do not use.
Value
Union of data values, the specific value dictated by the property type. The following table lists for each property type, the member of the union that should be used and its associated data type.
Property type Value Data type of Value
PT_I2 or PT_SHORT i short int
PT_I4 or PT_LONG (signed) I LONG
PT_I4 or PT_LONG (unsigned) ul ULONG
PT_R4 or PT_FLOAT flt float
PT_R8 or PT_DOUBLE dbl double
PT_BOOLEAN b unsigned short int
PT_CURRENCY cur CURRENCY
PT_APPTIME at double
PT_SYSTIME ft FILETIME
PT_STRING8 lpszA LPSTR
PT_BINARY bin BYTE [array]
PT_UNICODE lpszW LPWSTR
PT_CLSID lpguid LPGUID
PT_I8 or PT_LONGLONG li LARGE_INTEGER
PT_MV_I2 MVi SShortArray
PT_MV_LONG MVI SLongArray
PT_MV_R4 MVflt SRealArray
PT_MV_DOUBLE MVdbl SDoubleArray
PT_MV_CURRENCY MVcur SCurrencyArray
PT_MV_APPTIME MVat SAppTimeArray
PT_MV_SYSTIME MVft SDateTimeArray
PT_MV_BINARY MVbin SBinaryArray
PT_MV_STRING8 MVszA SLPSTRArray
PT_MV_UNICODE MVszW SWStringArray
PT_MV_CLSID MVguid SGuidArray
PT_MV_I8 MVli SLargeIntegerArray
PT_ERROR err SCODE
PT_NULL or PT_OBJECT x LONG

Remarks

The ulPropTag member is made up of two parts:

The identifier is a numeric value within a particular range. MAPI defines ranges for identifiers to describe what the property is used for and who is responsible for maintaining it. MAPI defines constraints for each of the property tags that it supports in the MAPITAGS.H header file.

The type indicates the format for the property's value. MAPI defines constants for each of the property types that it supports in the MAPIDEFS.H header file.

For a complete list of the valid property ranges for identifiers and property types, see the Property Identifiers and Types appendix.

The dwAlignPad member is used as padding to ensure proper alignment on computers that require 8-byte alignment for 8-byte values. Developers who write code on such computers should use memory allocation routines that allocate the SPropValue arrays on 8-byte boundaries.

For more information, see About Property Types and Updating Properties.

See Also

Property Structures