Property Types

This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This page may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.

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

Description

PT_APPTIME (PT_MV_APPTIME)

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 Visual Basic time representation.

PT_BINARY (PT_MV_BINARY)

SBinary structure value, a counted byte array.

PT_BOOLEAN (PT_MV_12)

16-bit Boolean value where zero equals FALSE and non-zero equals TRUE. This property type is the same as the OLE type VT_BOOL.

PT_CLSID (PT_MV_CLSID)

CLSID structure value. This property type is the same as the OLE type VT_CLSID.

PT_CURRENCY (PT_MV_CURRENCY )

64-bit integer intepreted as decimal. This property type is compatible with the Visual Basic CURRENCY type and is the same as the OLE type VT_CY.

PT_DOUBLE (PT_MV_DOUBLE)

Double value; 64-bit floating point value. This property type is the same as PT_R8 and the OLE type VT_R8.

PT_ERROR

SCODE value; 32-bit unsigned integer. This property type is the same as the OLE type VT_ERROR.

PT_FLOAT (PT_MV_FLOAT)

32-bit floating point value. This property type is the same as PT_R4 and the OLE type VT_R4.

PT_I2 (PT_MV_I2)

Signed 16-bit integer. This property type is the same as PT_SHORT and the OLE type VT_I2.

PT_I4 (PT_MV_I4)

Signed or unsigned 32-bit integer. This property type is the same as PT_LONG and the OLE type VT_I4.

PT_I8 (PT_MV_I8)

Signed or unsigned 64-bit integer that uses the LARGE_INTEGER structure. This property type is the same as the OLE type VT_I8.

PT_LONG (PT_MV_LONG)

Signed or unsigned 32-bit integer. This property type is the same as PT_I4 and the OLE type VT_I4.

PT_LONGLONG (PT_MV_LONGLONG)

Signed or unsigned 64-bit integer. This property type is the same as PT_I8 and the OLE type VT_I8.

PT_NULL

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_OBJECT

Pointer to an object that implements the IUnknown interface. This property type is similar to several OLE types such as VT_UNKNOWN.

PT_R4 (PT_MV_R4)

4-byte floating point value. This property type is the same as the OLE type VT_R4.

PT_R8 (PT_MV_R8)

8-byte floating point value. This property type is the same as the OLE type VT_DOUBLE.

PT_SHORT (PT_MV_SHORT)

Signed 16-bit integer. This property type is the same as PT_SHORT and the OLE type VT_I2.

PT_STRING8 (PT_MV_STRING8)

Null-terminated 8-bit character string. This property type is the same as the OLE type VT_LPSTR.

PT_SYSTIME (PT_MV_SYSTIME)

64-bit 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_TSTRING (PT_MV_TSTRING)

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_UNSPECIFIED

Indicates that the property type is unknown. This property type is reserved for use with interface methods.