The SPropValue structure describes a MAPI property.
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;
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 |
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.