ExtendedFieldURI

The ExtendedFieldURI element identifies an extended MAPI property.

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

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.

IMPORTANT: 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.

NOTE: 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
Address
Identifies the address property set ID by name.
Appointment
Identifies the appointment property set ID by name.
CalendarAssistant
Identifies the calendar assistant property set ID by name.
Common
Identifies the common property set ID by name.
InternetHeaders
Identifies the Internet headers property set ID by name.
Meeting
Identifies the meeting property set ID by name.
Sharing

PublicStrings
Identifies the public strings property set ID by name.
Task
Identifies the task 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 MicrosoftExchange 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="http://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

Element Example
Namespace
https://schemas.microsoft.com/exchange/services/2006/types
Schema Name
Types schema
Validation File
Types.xsd
Can be Empty
False

See also