ExtendedFieldURI

Topic Last Modified: 2007-07-31

The ExtendedFieldURI element identifies an extended MAPI property.

Syntax

<ExtendedFieldURI DistinguishedPropertySetId="" PropertySetId="" PropertyTag="" PropertyName="" PropertyId="" PropertyType="" />

Type

PathToExtendedFieldType

Attributes and Elements

The following sections describe attributes, child elements, and parent elements.

Attributes

Attribute Description

DistinguishedPropertySetId

Defines the well-known property set IDs for extended MAPI properties.

If this attribute is used, the PropertySetId and PropertyTag attributes cannot be used. This attribute must be used with either the PropertyId or PropertyName attribute, and the PropertyType attribute.

The DistinguishedPropertySetId Attribute table later in this topic lists the possible values for this attribute.

This attribute is optional.

PropertySetId

Identifies a MAPI extended property set or namespace by its identifying GUID.

If this attribute is used, the DistinguishedPropertySetId and PropertyTag attribute cannot be used. This attribute must be used with either the PropertyId or PropertyName attribute, and the PropertyType attribute.

This attribute is optional.

PropertyTag

Identifies the property tag without the type part of the tag. The PropertyTag can be represented as either a hexadecimal or a short integer.

The range between 0x8000 and 0xFFFE represents the custom range of properties. When a mailbox database encounters a custom property for the first time, it assigns that custom property a property tag within the custom property range of 0x8000-0xFFFE. A given custom property tag will most likely differ across databases. Therefore, a custom property request by property tag can return different properties on different databases. The use of the PropertyTag attribute is prohibited for custom properties. Instead, use the PropertySetId attribute and the PropertyName or PropertyId attribute.

Aa564843.note(en-us,EXCHG.80).gifImportant:
Access any custom property between 0x8000 and 0xFFFE by using the GUID + name/ID.

If the PropertyTag attribute is used, the DistinguishedPropertySetId, PropertySetId, PropertyName, and PropertyId attributes cannot be used.

This attribute is optional.

Aa564843.note(en-us,EXCHG.80).gifNote:
You cannot use a property tag attribute for properties within the custom range 0x8000-0xFFFE. You must use a named property in this case.

PropertyName

Identifies an extended property by its name. This property must be coupled with either DistinguishedPropertySetId or PropertySetId.

If this attribute is used, the PropertyId and PropertyTag attributes cannot be used.

This attribute is optional.

PropertyId

Identifies an extended property by its dispatch ID. The dispatch ID can be identified in either decimal or hexadecimal formats. This property must be coupled with either DistinguishedPropertySetId or PropertySetId.

If this attribute is used, the PropertyName and PropertyTag attributes cannot be used.

This attribute is optional.

PropertyType

Represents the property type of a property tag. This corresponds to the least significant word in a property tag.

The PropertyType Attribute table later in this topic contains the possible values for this attribute.

This attribute is required.

DistinguishedPropertySetId Attribute

Value Description

Meeting

Identifies the meeting property set ID by name.

Appointment

Identifies the appointment property set ID by name.

Common

Identifies the common property set ID by name.

PublicStrings

Identifies the public strings property set ID by name.

Address

Identifies the address property set ID by name.

InternetHeaders

Identifies the Internet headers property set ID by name.

CalendarAssistant

Identifies the calendar assistant property set ID by name.

UnifiedMessaging

Identifies the unified messaging property set ID by name.

PropertyType Attribute

Value Description

ApplicationTime

A double value that is interpreted as a date and time. The integer part is the date and the fraction part is the time.

ApplicationTimeArray

An array of double values that are interpreted as a date and time.

Binary

A Base64-encoded binary value.

BinaryArray

An array of Base64-encoded binary values.

Boolean

A Boolean true or false.

CLSID

A GUID string.

CLSIDArray

An array of GUID strings.

Currency

A 64-bit integer that is interpreted as the number of cents.

CurrencyArray

An array of 64-bit integers that are interpreted as the number of cents.

Double

A 64-bit floating-point value.

DoubleArray

An array of 64-bit floating-point values.

Error

SCODE value; 32-bit unsigned integer.

Not used for restrictions or for getting/setting values. This exists only for reporting.

Float

A 32-bit floating-point value.

FloatArray

An array of 32-bit floating-point values.

Integer

A signed 32-bit (Int32) integer.

IntegerArray

An array of signed 32-bit (Int32) integers.

Long

A signed or unsigned 64-bit (Int64) integer.

LongArray

An array of signed or unsigned 64-bit (Int64) integers.

Null

Indicates no property value.

Not used for restrictions or for getting/setting values. This exists only for reporting.

Object

A pointer to an object that implements the IUnknown interface.

Not used for restrictions or for getting/setting values. This exists only for reporting.

ObjectArray

An array of pointers to objects that implement the IUnknown interface.

Not used for restrictions or for getting/setting values. This exists only for reporting.

Short

A signed 16-bit integer.

ShortArray

An array of signed 16-bit integers.

SystemTime

A 64-bit integer data and time value in the form of a FILETIME structure.

SystemTimeArray

An array of 64-bit integer data and time values in the form of a FILETIME structure.

String

A Unicode string.

StringArray

An array of Unicode strings.

Child Elements

None.

Parent Elements

Element Description

ExtendedProperty

Identifies extended properties on folders and items.

AdditionalProperties

Identifies additional properties.

The following are the XPath expressions to this element:

  • /FindFolder/FolderShape/AdditionalProperties
  • /GetFolder/FolderShape/AdditionalProperties
  • /SyncFolderHierarchy/FolderShape/AdditionalProperties
  • /GetItem/ItemShape/AdditionalProperties
  • /FindItem/ItemShape/AdditionalProperties
  • /SyncFolderItems/ItemShape/AdditionalProperties
  • /GetAttachment/AttachmentShape/AdditionalProperties

SetItemField

Represents an update to a single property of an item in an UpdateItem Operation.

SetFolderField

Represents an update to a single property on a folder in an UpdateFolder Operation.

DeleteItemField

Represents a delete operation for deleting a given property from an item during an UpdateItem Operation.

DeleteFolderField

Represents a delete operation for deleting a given property from a folder during an UpdateFolder call.

AppendToItemField

Identifies data to append to a single property of an item during an UpdateItem Operation.

AppendToFolderField

Specifies data to append to a folder property during an UpdateFolder Operation.

Exists

Represents a search expression that returns true if the supplied property exists on an item.

FieldURIOrConstant

Represents either a property or a constant value to be used when comparing with another property.

IsEqualTo

Represents a search expression that compares a property with either a constant value or another property and evaluates to true if they are equal.

IsGreaterThan

Represents a search expression that compares a property with either a constant value or another property and returns true if the first property is greater.

IsGreaterThanOrEqualTo

Represents a search expression that compares a property with either a constant value or another property and returns true if the first property is greater than or equal to the second.

IsLessThan

Represents a search expression that compares a property with either a constant value or another property and returns true if the first property is less than the second.

IsLessThanOrEqualTo

Represents a search expression that compares a property with either a constant value or another property and returns true if the first property is less than the second.

IsNotEqualTo

Represents a search expression that compares a property with either a constant value or another property and returns true if the values are not the same.

Excludes

Performs a bitwise mask of the properties.

Contains

Represents a search expression that determines whether a given property contains the supplied constant string value.

FieldOrder

Represents a single field by which to sort results and indicates the direction for the sort.

Remarks

Some attributes cannot be used in combination with other attributes. Any request that comes in with an invalid combination of extended property attributes will generate an error message.

The schema that describes this element is located in the EWS virtual directory of the computer that is running Microsoft Exchange Server 2007 that has the Client Access server role installed.

Note

In Microsoft .NET, a Long is a 64-bit signed integer, while in MAPI and COM, a Long is a 32-bit integer. Most developers will use the Microsoft.NET Framework to develop Exchange Web Services client applications. Therefore, the .NET naming is used instead of the MAPI naming. For example, the PR_MESSAGE_FLAGS MAPI property, 0x0E07, is a PT_LONG type. In .NET, this is considered an integer. An extended property for PR_MESSAGE_FLAGS is defined as <t:ExtendedFieldURI PropertyTag="0x0E07" PropertyType="Integer"/>.

Example

The following example of a request creates an item that has two custom properties. The first custom property is named IsMyHouse with a Boolean value set to true. The second custom extended property is named HousePrices. It contains an array of Currency values.

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
               xmlns:xsd="http://www.w3.org/2001/XMLSchema"
               xmlns:soap="https://schemas.xmlsoap.org/soap/envelope/"
               xmlns:t="https://schemas.microsoft.com/exchange/services/2006/types">
  <soap:Body>
    <CreateItem xmlns="https://schemas.microsoft.com/exchange/services/2006/messages" 
                  xmlns:t="https://schemas.microsoft.com/exchange/services/2006/types"
    MessageDisposition="SaveOnly">
      <SavedItemFolderId>
        <t:DistinguishedFolderId Id="inbox"/>
      </SavedItemFolderId>
      <Items>
        <t:Item>
          <t:ItemClass>IPM.Note</t:ItemClass>
          <t:Subject>Create an extended property</t:Subject>
          <t:Body BodyType="Text">Added info to extended props</t:Body>
          <t:ExtendedProperty>
            <t:ExtendedFieldURI DistinguishedPropertySetId="PublicStrings" 
                                PropertyName="IsMyHouse" 
                                PropertyType="Boolean"/>
            <t:Value>true</t:Value>
          </t:ExtendedProperty>
          <t:ExtendedProperty>
            <t:ExtendedFieldURI DistinguishedPropertySetId="PublicStrings" 
                                PropertyName="HousePrices" 
                                PropertyType="CurrencyArray"/>
            <t:Values>
              <t:Value>30000000</t:Value>
              <t:Value>40000000</t:Value>
              <t:Value>50000000</t:Value>
            </t:Values>
          </t:ExtendedProperty>
        </t:Item>
      </Items>
    </CreateItem>
  </soap:Body>
</soap:Envelope>

Element Information

Namespace

https://schemas.microsoft.com/exchange/services/2006/types

Schema Name

Types schema

Validation File

Types.xsd

Can be Empty

False