If there are multiple elements, the last one is used. If no typeInfo element is provided, then the default attribute settings are applied to the property description.
| Attribute | Description |
|---|
| type | Public. Optional. Default is "Any". Indicates the type of the property. The following are valid types and their associated variant types are retrieved by GetPropertyType.| Value | Meaning |
|---|
| Any | Default. The property subsystem will not enforce or coerce the property value. GetPropertyType returns VT_NULL. Independent software vendors (ISVs) are strongly encouraged to provide a type rather than fall back on this default. | | Null | There is no value for this property. GetPropertyType returns VT_NULL. | | String | The value must be a VT_LPWSTR, which is a Unicode string terminated by a null reference. | | Boolean | The value must be a VT_BOOL, which is a boolean. | | Byte | The value must be a VT_UI1, which is a byte. | | Buffer | The value must be a VT_UI1 | VT_VECTOR buffer of bytes. | | Int16 | The value must be a VT_I2, which is a 16-bit integer. | | UInt16 | The value must be a VT_UI2, which is a 16-bit unsigned integer. | | Int32 | The value must be a VT_I4, which is a 32-bit integer. | | UInt32 | The value must be a VT_UI4, which is a 32-bit unsigned integer. | | Int64 | The value must be a VT_I8, which is a 64-bit integer. | | UInt64 | The value must be a VT_UI8, which is a 64-bit unsigned integer. | | Double | The value must be a VT_R8, which is a double. | | DateTime | The value must be a VT_FILETIME, which is a FILETIME. | | Guid | The value must be a VT_CLSID, which is a class identifier (CLSID). | | Blob | The value must be a VT_BLOB, which are length-prefixed bytes. | | Stream | The value must be a VT_STREAM, which is an object that implements IStream. | | Clipboard | The value must be a VT_CF, which is a clipboard format. | | Object | The value must be a VT_UNKNOWN, which is an object that implements IUnknown. |
|
| groupingRange | Optional. Default is "Discrete". Specifies how the property is displayed when a view is grouped by this property. Once set here, these values are retrieved by GetGroupingRange. The following are valid types.| Value | Meaning |
|---|
| Discrete | Default. Displays individual values. | | Alphanumeric | Displays static alphanumeric ranges for values. | | Size | Displays static size ranges for values. | | Date | Displays month/year groups. Default for properties of type="DateTime". | | TimeRelative | Displays in time-relative groups. | | Dynamic | Displays dynamically created ranges for the values. | | Percent | Displays percent buckets. |
|
| isInnate | Public. Optional. Default is "false". Specifies whether the property is considered innate. An innate property is one which is either calculated from the content of a file, or from other resources or systems. For example, System.Size is an innate property provided by the file system; changing the value of the property in and of itself does nothing. Other examples are System.Image.Dimensions and System.Document.PageCount, which are calculated by programs based upon the content of the file, not based upon a user-changeable setting. Setting isInnate="true" means the user cannot edit this property directly via a property control. This value maps to the PDTF_ISINNATE flag defined in PROPDESC_TYPE_FLAGS and used in GetTypeFlags. |
| canBePurged | Windows Vista with Service Pack 1 (SP1) and later only. Public. Optional. When set to "true", allows an innate property to be deleted. Innate properties, which are calculated from other properties, are read-only by definition. The default value for this attribute depends on the isInnate value.| isInnate | canBePurged Default Value |
|---|
| true | false | | false | true |
Note A property whose isInnate value is "false" (meaning that the property is read/write) cannot also set the canBePurged value to "false". This restriction is enforced by the operating system. Although this attribute was introduced in Windows Vista with Service Pack 1 (SP1), a .propdesc file that includes this attribute is compatible with Windows Vista prior to Windows Vista with SP1. The canBePurged attribute is simply ignored in that situation. |
| multipleValues | Public. Optional. Default is "false". Specifies whether this property can have multiple values. This value maps to the PDTF_MULTIPLEVALUES flag defined in PROPDESC_TYPE_FLAGS and used in GetTypeFlags. This also influences whether VT_VECTOR is OR'd to the VARTYPE of the property value. |
| isGroup | Public. Optional. Default is "false". Specifies whether the property is a group heading. A group heading is strictly used in proplists, has no value, is never stored in a file, and should also have <typeInfo type="Null">. Some user interface (UI) in the system use proplists to indicate the sequence of the properties to display. These proplists may include references to group headings (eg, System.PropGroup.Camera), which tell the UI to start a new group section (eg, "Camera Settings"). A property description with isGroup="true" should specify a <labelInfo label="Some localized label">, otherwise it isn’t a useful property. This value maps to the PDTF_ISGROUP flag defined in PROPDESC_TYPE_FLAGS and used in GetTypeFlags. |
| aggregationType | Public. Optional. Default is "Default". Specifies how aggregate properties are displayed when multiple items are selected. Once set here, these values are retrieved by GetAggregationType as an PROPDESC_AGGREGATION_TYPE. The following are valid types.| Value | Meaning |
|---|
| Default | Default. Displays a Multiple Values placeholder in the UI. This is the default if the type is incompatible with the specified aggregationType. | | First | Displays the property value of the first item in the selection or collection. | | Sum | Displays the sum of the numerical values. Useful for properties such as System.Media.Duration or System.Size. This value is not compatible with non-numeric types. | | Average | Displays the average of the numerical values. Useful for properties such as System.Rating. This value is not compatible with non-numeric types. | | DateRange | Displays a range of dates. Useful for properties like System.Photo.DateTaken. This value is not compatible with anything except type="DateTime" and is the default for properties of that type. | | Union | Displays a union of all the values in the selection or collection. The order in which the values are shown is undefined. This value is the default for properties of type="String" and multipleValues="true". | | Maximum | Displays the maximum value in the collection. Useful for properties like System.DateModified. Not compatible with non-numeric or non-date types. | | Minimum | Displays the minimum value in the collection. Not compatible with non-numeric or non-date types. |
|
| isTreeProperty | Public. Optional. Default value is "false". |
| isViewable | Public. Optional. Default value is "false". Specifies whether this property is intended to be viewable to the user. For example, the Column Chooser UI only shows the properties that have isViewable="true". The exception is UI that is driven by a proplist, which will always show the property. If you have a property that is only meant to shuttle data between two objects, and never intended to be viewed by the user, this attribute should be false. This value maps to the PDTF_ISVIEWABLE flag defined in PROPDESC_TYPE_FLAGS and used in GetTypeFlags. |
| isQueryable | Public. Optional. Default value is "false". Specifies whether this property is intended to be available in the Search Query Builder UI. A property must have isViewable="true" before isQueryable="true" is respected. This value maps to the PDTF_ISQUERYABLE flag defined in PROPDESC_TYPE_FLAGS and used in GetTypeFlags. |
| includeInFullTextQuery | Public. Optional. Default value is "false". |
| conditionType | Public. Optional. Default is "String". Specifies a hint to the Search Query Builder UI so that it can determine the list of possible condition operators inside a predicate. The following are recognized values.
| Value | Meaning |
|---|
| String | Default. The following operators will be used: "is", "is not", "<", ">", "<=", ">=", "starts with", "ends with", "contains", "doesn't contain", "is like". | | Number | Default for numeric properties. The following operators will be used: "equals", "doesn't equal", "is less than", "is greater than", "is less than or equal to", "is greater than or equal to". | | DateTime | Default for properties of type="DateTime". The following operators will be used: "is", "is not", "is before", "is after", "is before but includes", "is after but includes". | | Boolean | Default for properties of type="Boolean". Same as Number. | | Size | Same as Number. |
|
| defaultOperation | Public. Optional. Default is "Equal". Specifies a hint to the Search Query Builder tool so that it can determine the default operator. The possible values are as follows:| Value | Meaning |
|---|
| Equal | Default. Indicates equivalent. | | NotEqual | Indicates not equivalent. | | LessThan | Indicates less than. | | GreaterThan | Default for properties of conditionType="Size". Indicates greater than. | | Contains | Default for properties of conditionType="String". Indicates inclusion. |
|