SPropValue

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.

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;

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)

    l

    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:

  • An identifier in the high-order 16 bits.

  • A type in the low-order 16 bits.

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 make sure 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 MAPI Property Type Overview and Updating MAPI Properties.

See Also

Concepts

MAPI Structures