Property Types

Applies to: Office 2010 | Outlook 2010 | Visual Studio

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 or unsigned 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 or unsigned 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.