Property Types

Applies to: Outlook 2013 | Outlook 2016

MAPI supports both single-value and multiple-value properties. With a single-value property, there is one value of the base type for the property. With a multiple-value property, there are multiple values of the base type.

The single-value and multiple-value property types that MAPI supports are described in the following table. For each single-value type that has a corresponding multiple-value type, the multiple-value type appears in parentheses after the single-value type.

Property Type Hex Value Description
PT_UNSPECIFIED
0000
Indicates that the property type is unknown. This property type is reserved for use with interface methods.
PT_NULL
0001
Indicates no property value. This property type is reserved for use with interface methods and is the same as the OLE type VT_NULL.
PT_I2 (PT_MV_I2)
0002
Signed 16-bit (2-byte) integer. This property type is the same as PT_SHORT (PT_MV_SHORT) and the OLE type VT_I2.
PT_I4 (PT_MV_I4)
0003
Signed 32-bit (4-byte) integer. This property type is the same as PT_LONG (PT_MV_LONG) and the OLE type VT_I4.
PT_FLOAT (PT_MV_FLOAT)
0004
32-bit (8-byte) floating point value. This property type is the same as PT_R4 (PT_MV_R4) and the OLE type VT_R4.
PT_DOUBLE (PT_MV_DOUBLE)
0005
64-bit (8-byte) floating point value. This property type is the same as PT_R8 and the OLE types VT_R8 and VT_DOUBLE.
PT_CURRENCY (PT_MV_CURRENCY )
0006
64-bit (8-byte) integer interpreted as decimal. This property type is compatible with the Microsoft Visual Basic CURRENCY type and is the same as the OLE type VT_CY.
PT_APPTIME (PT_MV_APPTIME)
0007
Double value that is interpreted as date and time. The integer part is the date and the fraction part is the time. This property type is the same as the OLE type VT_DATE and is compatible with the Microsoft Visual Basic time representation.
PT_ERROR
000A
SCODE value; 32-bit (4-byte) unsigned integer. This property type is the same as the OLE type VT_ERROR.
PT_BOOLEAN (PT_MV_12)
000B
16-bit (2-byte) Boolean value where zero equals false and non-zero equals true. This property type is the same as the OLE type VT_BOOL.
PT_OBJECT
000D
Pointer to an object that implements the IUnknown interface. This property type is similar to several OLE types such as VT_UNKNOWN.
PT_I8 (PT_MV_I8)
0014
Signed 64-bit (8-byte) integer that uses the LARGE_INTEGER structure. This property type is the same as PT_I8 and the OLE type VT_I8.
PT_STRING8 (PT_MV_STRING8)
001E
Null-terminated 8-bit (2-byte) character string. This property type is the same as the OLE type VT_LPSTR.
PT_TSTRING (PT_MV_TSTRING)
001F
Null-terminated 16-bit (2-byte) character string. Properties with this type have the property type reset to PT_UNICODE when compiling with the UNICODE symbol and to PT_STRING8 when not compiling with the UNICODE symbol. This property type is the same as the OLE type VT_LPSTR for resulting PT_STRING8 properties and VT_LPWSTR for PT_UNICODE properties
PT_SYSTIME (PT_MV_SYSTIME)
0040
64-bit (8-byte) integer data and time value in the form of a FILETIME structure. This property type is the same as the OLE type VT_FILETIME.
PT_CLSID (PT_MV_CLSID)
0048
CLSID structure value. This property type is the same as the OLE type VT_CLSID.
PT_SVREID
00FB
Variable size, a 16-bit (2-byte) COUNT followed by a structure.
PT_SRESTRICT
00FD
Variable size, a byte array representing one or more Restriction structures.
PT_ACTIONS
00FE
Variable size, a 16-bit (2-byte) COUNT of actions (not bytes) followed by that many Rule Action structures.
PT_BINARY (PT_MV_BINARY)
0102
SBinary structure value, a counted byte array.

Note

To determine the Hex value for the multi-valued property type, OR the PT_MV flag (0x00001000) to the Hex value for the property type. For example, the Hex value for PT_MV_UNICODE is 0x101F and the Hex value for PT_MV_BINARY is 0x1102.

MAPI shares the value type numbers with [OLE variants]. However, not all OLE types are specified for MAPI. In particular, unsigned types such as VT_UI4 have no counterpart in MAPI. Comparison of PT_I2/I4/I8 property values, e.g. during the evaluation of [restrictions] (filters), are performed as a signed comparison.