Windows Property System

Overview of the Windows Property System technology.

To develop Windows Property System, you need these headers:

For programming guidance for this technology, see:

Enumerations

 
_PROPERTYUI_FLAGS

Specifies property features.
GETPROPERTYSTOREFLAGS

Indicates flags that modify the property store object retrieved by methods that create a property store, such as IShellItem2::GetPropertyStore or IPropertyStoreFactory::GetPropertyStore.
PDOPSTATUS

Provides operation status flags.
PKA_FLAGS

Describes property change array behavior.
PLACEHOLDER_STATES

Specifies the states that a placeholder file can have. Retrieve this value through the System.FilePlaceholderStatus (PKEY_FilePlaceholderStatus) property.
PROPDESC_AGGREGATION_TYPE

Describes how property values are displayed when multiple items are selected.
PROPDESC_COLUMNINDEX_TYPE

Indicates whether or how a property can be indexed.
PROPDESC_CONDITION_TYPE

Describes the condition type to use when displaying the property in the query builder UI in Windows Vista, but not in Windows 7 and later.
PROPDESC_ENUMFILTER

Describes the filtered list of property descriptions that is returned.
PROPDESC_FORMAT_FLAGS

Used by property description helper functions, such as PSFormatForDisplay, to indicate the format of a property string.
PROPDESC_RELATIVEDESCRIPTION_TYPE

Describes the relative description type for a property description, as determined by the relativeDescriptionType attribute of the displayInfo element.
PROPDESC_SEARCHINFO_FLAGS

Determines whether and how a property is indexed by Windows Search.
PROPDESC_TYPE_FLAGS

Describes attributes of the typeInfo element in the property's .propdesc file.
PROPDESC_VIEW_FLAGS

These flags describe properties in property description list strings.
PROPVAR_COMPARE_UNIT

These flags are associated with certain PROPVARIANT structure comparisons.
PSC_STATE

Specifies the state of a property. They are set manually by the code that is hosting the in-memory property store cache.
SYNC_ENGINE_STATE_FLAGS

Specifies values used by any sync engine to expose their internal engine states to the Property Store's PKEY_StorageProviderStatus value in the File Indexer To update the property, first call IShellItem2::GetPropertyStore with the GPS_EXTRINSICPROPERTIES flag. Next, call the IPropertyStore::SetValue method of the returned object, specifying the PKEY_StorageProviderStatus key, to set the property's bitmask value using these SYNC_ENGINE_STATE_FLAGS.
SYNC_TRANSFER_STATUS

Specifies possible status values used in the System.SyncTransferStatus property.

Functions

 
Append

Inserts a change operation at the end of an array.
AppendOrReplace

Replaces the first occurrence of a change that affects the same property key as the provided change. If the property key is not already in the array, this method appends the change to the end of the array.
ApplyToPropVariant

Applies a change to a property value.
ClearPropVariantArray

Frees the memory and references used by an array of PROPVARIANT structures stored in an array.
ClearVariantArray

Frees the memory and references used by an array of VARIANT structures stored in an array.
CoerceToCanonicalValue

Coerces the value to the canonical value, according to the property description.
EnumeratePropertyDescriptions

Gets an instance of the subsystem object that implements IPropertyDescriptionList, to obtain either the entire or a partial list of property descriptions in the system.
FindMatchingIndex

Compares the specified property value against the enumerated values in a list and returns the matching index.
FormatForDisplay

Gets a formatted, Unicode string representation of a property value. (IPropertyDescription.FormatForDisplay)
FormatForDisplay

Gets a formatted, Unicode string representation of a property value. (IPropertySystem.FormatForDisplay)
FormatForDisplay

Developers should use IPropertyDescription instead. Gets a formatted, Unicode string representation of a property value.
FormatForDisplayAlloc

Gets a string representation of a property value to an allocated memory buffer.
FreePropVariantArray

Frees the memory and references used by an array of PROPVARIANT structures.
GetAdditionalSortByAliases

Gets the address of a pointer to the IPropertyDescriptionList interface, which contains additional sort column values.
GetAggregationType

Gets a value that describes how the property values are displayed when multiple items are selected in the UI.
GetAt

Gets the change operation at a specified array index.
GetAt

Gets the property description at the specified index in a property description list.
GetAt

Gets the IPropertyEnumType object at the specified index in the list.
GetCanonicalName

Gets the case-sensitive name by which a property is known to the system, regardless of its localized name.
GetColumnIndexType

Determines the how the current property is indexed.
GetColumnState

Gets the column state flag, which describes how the property should be treated by interfaces or APIs that use this flag.
GetConditionAt

Not supported.Gets the condition at the specified index.
GetConditionType

Gets the condition type and default condition operation to use when displaying the property in the query builder UI. This influences the list of predicate conditions (for example, equals, less than, and contains) that are shown for this property.
GetCount

Gets the number of change operations in the array.
GetCount

Gets the number of properties included in the property list.
GetCount

Gets the number of elements in the list.
GetDefaultColumnWidth

Gets the default column width of the property in a list view.
GetDefaultWidth

Developers should use IPropertyDescription instead. Gets the width of the property description.
GetDisplayName

Gets the display name of the property as it is shown in any UI.
GetDisplayName

Developers should use IPropertyDescription instead. Gets a string specifying the name of the property suitable for display to users.
GetDisplayText

Gets display text from an enumeration information structure.
GetDisplayType

Gets the current data type used to display the property.
GetEditInvitation

Gets the text used in edit controls hosted in various dialog boxes.
GetEnumType

Gets an enumeration type from an enumeration information structure.
GetEnumTypeList

Gets an instance of an IPropertyEnumTypeList, which can be used to enumerate the possible values for a property.
GetFlags

Developers should use IPropertyDescription instead. Gets property feature flags for a specified property.
GetGroupingRange

Gets the grouping method to be used when a view is grouped by a property, and retrieves the grouping type.
GetHelpInfo

Developers should use IPropertyDescription instead. (IPropertyUI.GetHelpInfo)
GetImageReference

Retrieves the image reference associated with a property enumeration.
GetImageReferenceForValue

Gets the image reference associated with a property value.
GetMaxSize

Gets the maximum size value from the property schema's searchInfo element.
GetProjectionString

Returns a pointer to a string containing the canonical name of the item.
GetPropertyDescription

Gets an instance of the subsystem object that implements IPropertyDescription, to obtain the property description for a given PROPERTYKEY.
GetPropertyDescription

Developers should use IPropertyDescription instead. Gets the property description of a specified property.
GetPropertyDescriptionByName

Gets an instance of the subsystem object that implements IPropertyDescription, to obtain the property description for a given canonical name.
GetPropertyDescriptionListFromString

Gets an instance of the subsystem object that implements IPropertyDescriptionList, to obtain an ordered collection of property descriptions, based on the provided string.
GetPropertyKey

Gets a structure that acts as a property's unique identifier.
GetPropertyStore

Gets an IPropertyStore object that corresponds to the supplied flags.
GetPropertyStoreForKeys

Gets an IPropertyStore object, given a set of property keys. This provides an alternative, possibly faster, method of getting an IPropertyStore object compared to calling IPropertyStoreFactory::GetPropertyStore.
GetPropertyType

Gets the variant type of the property.
GetRangeMinValue

Gets a minimum value from an enumeration information structure.
GetRangeSetValue

Gets a set value from an enumeration information structure.
GetRelatedProperty

Retrieves an IPropertyDescription object that represents the related property.
GetRelativeDescription

Compares two property values in the manner specified by the property description. Returns two display strings that describe how the two properties compare.
GetRelativeDescriptionType

Gets the relative description type for a property description.
GetSearchInfoFlags

Gets the PROPDESC_SEARCHINFO_FLAGS associated with the property.
GetSortByAlias

Gets the address of a pointer to the IPropertyDescription interface containing the primary sort column.
GetSortDescription

Gets the current sort description flags for the property, which indicate the particular wordings of sort offerings.
GetSortDescriptionLabel

Gets the localized display string that describes the current sort order.
GetState

Gets the state of a specified property key.
GetTypeFlags

Gets a set of flags that describe the uses and capabilities of the property.
GetValue

Gets a value from an enumeration information structure.
GetValueAndState

Gets value and state data for a property key.
GetViewFlags

Gets the current set of flags governing the property's view.
InitPropVariantFromBoolean

Initializes a given PROPVARIANT structure as a VT_BOOL using a specified Boolean value.
InitPropVariantFromBooleanVector

Initializes a PROPVARIANT structure from a specified Boolean vector.
InitPropVariantFromBuffer

Initializes a PROPVARIANT structure using the contents of a buffer.
InitPropVariantFromCLSID

Initializes a PROPVARIANT structure based on a class identifier (CLSID).
InitPropVariantFromDouble

Initializes a PROPVARIANT structure based on a specified double value.
InitPropVariantFromDoubleVector

Initializes a PROPVARIANT structure based on a specified vector of double values.
InitPropVariantFromFileTime

Initializes a PROPVARIANT structure based on information stored in a FILETIME structure.
InitPropVariantFromFileTimeVector

Initializes a PROPVARIANT structure from a specified vector of FILETIME values.
InitPropVariantFromGUIDAsBuffer

Initializes a PROPVARIANT structure based on a GUID. The structure is initialized as VT_VECTOR
VT_UI1.
InitPropVariantFromGUIDAsString

Initializes a PROPVARIANT structure based on a GUID. The structure is initialized as VT_LPWSTR.
InitPropVariantFromInt16

Initializes a PROPVARIANT structure based on a 16-bit integer value.
InitPropVariantFromInt16Vector

Initializes a PROPVARIANT structure based on a specified vector of 16-bit integer values.
InitPropVariantFromInt32

Initializes a PROPVARIANT structure based on a 32-bit integer value.
InitPropVariantFromInt32Vector

Initializes a PROPVARIANT structure based on a vector of 32-bit integer values.
InitPropVariantFromInt64

Initializes a PROPVARIANT structure based on a specified Int64 value.
InitPropVariantFromInt64Vector

Initializes a PROPVARIANT structure based on a vector of Int64 values.
InitPropVariantFromPropVariantVectorElem

Initializes a PROPVARIANT structure based on a specified PROPVARIANT vector element.
InitPropVariantFromResource

Initializes a PROPVARIANT structure based on a string resource embedded in an executable file.
InitPropVariantFromString

Initializes a PROPVARIANT structure based on a specified string.
InitPropVariantFromStringAsVector

Initializes a PROPVARIANT structure from a specified string. The string is parsed as a semi-colon delimited list (for example:_"A;B;C").
InitPropVariantFromStringVector

Initializes a PROPVARIANT structure from a specified string vector.
InitPropVariantFromStrRet

Initializes a PROPVARIANT structure based on a string stored in a STRRET structure.
InitPropVariantFromUInt16

Initializes a PROPVARIANT structure based on a 16-bit unsigned integer value.
InitPropVariantFromUInt16Vector

Initializes a PROPVARIANT structure based on a vector of 16-bit unsigned integer values.
InitPropVariantFromUInt32

Initializes a PROPVARIANT structure based on a 32-bit unsigned integer value.
InitPropVariantFromUInt32Vector

Initializes a PROPVARIANT structure based on a vector of 32-bit unsigned integer values.
InitPropVariantFromUInt64

Initializes a PROPVARIANT structure with a 64-bit unsigned integer value.
InitPropVariantFromUInt64Vector

Initializes a PROPVARIANT structure based on a vector of 64-bit unsigned integers.
InitPropVariantVectorFromPropVariant

Initializes a vector element in a PROPVARIANT structure with a value stored in another PROPVARIANT.
InitVariantFromBoolean

Initializes a VARIANT structure with a Boolean value.
InitVariantFromBooleanArray

Initializes a VARIANT structure from an array of Boolean values.
InitVariantFromBuffer

Initializes a VARIANT structure with the contents of a buffer.
InitVariantFromDispatch

Initializes a VARIANT structure based on an instance of an IDispatch object.
InitVariantFromDosDateTime

Initializes a VARIANT structure with a date and time given in the format used by Microsoft MS-DOS. The date and time values are converted to the format used to store date and time in a VARIANT.
InitVariantFromDouble

Initializes a VARIANT structure with a value of type DOUBLE.
InitVariantFromDoubleArray

Initializes a VARIANT structure with an array of values of type DOUBLE.
InitVariantFromFileTime

Initializes a VARIANT structure with the contents of a FILETIME structure.
InitVariantFromFileTimeArray

Initializes a VARIANT structure with an array of FILETIME structures.
InitVariantFromGUIDAsBuffer

Initializes a VARIANT structure based on a GUID. The structure is initialized as VT_ARRAY
VT_UI1.
InitVariantFromGUIDAsString

Initializes a VARIANT structure based on a GUID. The structure is initialized as a VT_BSTR type.
InitVariantFromInt16

Initializes a VARIANT structure with a 16-bit integer value.
InitVariantFromInt16Array

Initializes a VARIANT structure with an array of 16-bit integer values.
InitVariantFromInt32

Initializes a VARIANT structure with a 32-bit integer value.
InitVariantFromInt32Array

Initializes a VARIANT structure with an array of 32-bit integer values.
InitVariantFromInt64

Initializes a VARIANT structure with a 64-bit integer value.
InitVariantFromInt64Array

Initializes a VARIANT structure with an array of 64-bit integer values.
InitVariantFromResource

Initializes a VARIANT structure based on a string resource embedded in an executable file.
InitVariantFromString

Initializes a VARIANT structure with a string.
InitVariantFromStringArray

Initializes a VARIANT structure with an array of strings.
InitVariantFromStrRet

Initializes a VARIANT structure with a string stored in a STRRET structure.
InitVariantFromUInt16

Initializes a VARIANT structure with an unsigned 16-bit integer value.
InitVariantFromUInt16Array

Initializes a VARIANT structure with an array of unsigned 16-bit integer values.
InitVariantFromUInt32

Initializes a VARIANT structure with an unsigned 32-bit integer value.
InitVariantFromUInt32Array

Initializes a VARIANT structure with an array of unsigned 32-bit integer values.
InitVariantFromUInt64

Initializes a VARIANT structure with an unsigned 64-bit integer value.
InitVariantFromUInt64Array

Initializes a VARIANT structure with an array of unsigned 64-bit integer values.
InitVariantFromVariantArrayElem

Initializes a VARIANT structure with a value stored in another VARIANT structure.
InsertAt

Inserts a change operation into an array at the specified position.
IsKeyInArray

Specifies whether a particular property key exists in the change array.
IsPropertyWritable

Queries whether the property handler allows a specific property to be edited in the UI by the user.
IsPropVariantString

Specifies whether a specified PROPVARIANT structure is a string type.
IsPropVariantVector

Specifies whether a PROPVARIANT structure has a vector type.
IsValueCanonical

Gets a value that indicates whether a property is canonical according to the definition of the property description.
IsVariantArray

Specifies whether a variant is an array.
IsVariantString

Specifies whether a variant is a string.
IsVarTypeFloat

Returns whether a VARTYPE is a float.
IsVarTypeInteger

Returns whether a VARTYPE is an integer.
IsVarTypeNumber

Specifies whether VARTYPE is a number.
IsVarTypeSignedInteger

Returns whether a VARTYPE is a signed integer.
IsVarTypeUnsignedInteger

Returns whether a VARTYPE is an unsigned integer.
ParsePropertyName

Developers should use IPropertyDescription instead. Reads the characters of the specified property name and identifies the FMTID and PROPID of the property.
PifMgr_CloseProperties

Closes application properties that were opened with PifMgr_OpenProperties.
PifMgr_GetProperties

Returns a specified block of data from a .pif file.
PifMgr_OpenProperties

Opens the .pif file associated with a Microsoft MS-DOS application, and returns a handle to the application's properties.
PifMgr_SetProperties

Assigns values to a block of data from a .pif file.
PropVariantChangeType

Coerces a value stored as a PROPVARIANT structure to an equivalent value of a different variant type.
PropVariantClear

Clears a PROPVARIANT structure.
PropVariantCompare

Compares two PROPVARIANT structures, based on default comparison units and settings.
PropVariantCompareEx

Extends PropVariantCompare by allowing the caller to compare two PROPVARIANT structures based on specified comparison units and flags.
PropVariantCopy

Creates a copy of a PROPVARIANT structure.
PropVariantGetBooleanElem

Extracts a single Boolean element from a PROPVARIANT structure of type VT_BOOL, VT_VECTOR
VT_BOOL, or VT_ARRAY VT_BOOL.
PropVariantGetDoubleElem

Extracts a single double element from a PROPVARIANT structure of type VT_R8, VT_VECTOR
VT_R8, or VT_ARRAY VT_R8.
PropVariantGetElem

Initializes a PROPVARIANT structure based on a specified element in another PROPVARIANT structure.
PropVariantGetElementCount

Retrieves the element count of a PROPVARIANT structure.
PropVariantGetFileTimeElem

Extracts a single FILETIME element from a PROPVARIANT structure of type VT_FILETIME, VT_VECTOR
VT_FILETIME, or VT_ARRAY VT_FILETIME.
PropVariantGetInt16Elem

Extracts a single Int16 element from a PROPVARIANT structure of type VT_I2, VT_VECTOR
VT_I2, or VT_ARRAY VT_I2.
PropVariantGetInt32Elem

Extracts a single Int32 element from a PROPVARIANT of type VT_I4, VT_VECTOR
VT_I4, or VT_ARRAY VT_I4.
PropVariantGetInt64Elem

Extracts a single Int64 element from a PROPVARIANT structure of type VT_I8, VT_VECTOR
VT_I8, or VT_ARRAY VT_I8.
PropVariantGetStringElem

Extracts a single Unicode string element from a PROPVARIANT structure of type VT_LPWSTR, VT_BSTR, VT_VECTOR
VT_LPWSTR, VT_VECTOR VT_BSTR, or VT_ARRAY VT_BSTR.
PropVariantGetUInt16Elem

Extracts a single unsigned Int16 element from a PROPVARIANT structure of type VT_U12, VT_VECTOR
VT_U12, or VT_ARRAY VT_U12.
PropVariantGetUInt32Elem

Extracts a single unsigned Int32 element from a PROPVARIANT structure of type VT_UI4, VT_VECTOR
VT_UI4, or VT_ARRAY VT_UI4.
PropVariantGetUInt64Elem

Extracts a single unsigned Int64 element from a PROPVARIANT structure of type VT_UI8, VT_VECTOR
VT_UI8, or VT_ARRAY VT_UI8.
PropVariantToBoolean

Extracts a Boolean property value of a PROPVARIANT structure. If no value can be extracted, then a default value is assigned.
PropVariantToBooleanVector

Extracts a Boolean vector from a PROPVARIANT structure.
PropVariantToBooleanVectorAlloc

Extracts data from a PROPVARIANT structure into a newly allocated Boolean vector.
PropVariantToBooleanWithDefault

Extracts the Boolean property value of a PROPVARIANT structure. If no value exists, then the specified default value is returned.
PropVariantToBSTR

Extracts the BSTR property value of a PROPVARIANT structure.
PropVariantToBuffer

Extracts the buffer value from a PROPVARIANT structure of type VT_VECTOR
VT_UI1 or VT_ARRRAY VT_UI1.
PropVariantToCLSID

Extracts class identifier (CLSID) property value of a PROPVARIANT structure.
PropVariantToDouble

Extracts double value from a PROPVARIANT structure.
PropVariantToDoubleVector

Extracts a vector of doubles from a PROPVARIANT structure.
PropVariantToDoubleVectorAlloc

Extracts data from a PROPVARIANT structure into a newly-allocated double vector.
PropVariantToDoubleWithDefault

Extracts a double property value of a PROPVARIANT structure. If no value exists, then the specified default value is returned.
PropVariantToFileTime

Extracts the FILETIME structure from a PROPVARIANT structure.
PropVariantToFileTimeVector

Extracts data from a PROPVARIANT structure into a FILETIME vector.
PropVariantToFileTimeVectorAlloc

Extracts data from a PROPVARIANT structure into a newly-allocated FILETIME vector.
PropVariantToGUID

Extracts a GUID value from a PROPVARIANT structure.
PropVariantToInt16

Extracts an Int16 property value of a PROPVARIANT structure.
PropVariantToInt16Vector

Extracts a vector of Int16 values from a PROPVARIANT structure.
PropVariantToInt16VectorAlloc

Extracts data from a PROPVARIANT structure into a newly allocated Int16 vector.
PropVariantToInt16WithDefault

Extracts the Int16 property value of a PROPVARIANT structure. If no value currently exists, then specified default value is returned.
PropVariantToInt32

Extracts the Int32 property value of a PROPVARIANT structure. If no value can be extracted, then a default value is assigned.
PropVariantToInt32Vector

Extracts a vector of long values from a PROPVARIANT structure.
PropVariantToInt32VectorAlloc

Extracts data from a PROPVARIANT structure into a newly-allocated Int32 vector.
PropVariantToInt32WithDefault

Extracts an Int32 value from a PROPVARIANT structure. If no value currently exists, then the specified default value is returned.
PropVariantToInt64

Extracts a LONGLONG value from a PROPVARIANT structure. If no value can be extracted, then a default value is assigned.
PropVariantToInt64Vector

Extracts data from a PROPVARIANT structure into an Int64 vector.
PropVariantToInt64VectorAlloc

Extracts data from a PROPVARIANT structure into a newly-allocated LONGLONG vector.
PropVariantToInt64WithDefault

Extracts the Int64 property value of a PROPVARIANT structure. If no value exists, then specified default value is returned.
PropVariantToString

Extracts a string value from a PROPVARIANT structure.
PropVariantToStringAlloc

Extracts a string property value from a PROPVARIANT structure.
PropVariantToStringVector

Extracts a vector of strings from a PROPVARIANT structure.
PropVariantToStringVectorAlloc

Extracts data from a PROPVARIANT structure into a newly allocated strings in a newly allocated vector.
PropVariantToStringWithDefault

Extracts the string property value of a PROPVARIANT structure. If no value exists, then the specified default value is returned.
PropVariantToStrRet

Extracts a string from a PROPVARIANT structure and places it into a STRRET structure.
PropVariantToUInt16

Extracts a unsigned short value from a PROPVARIANT structure. If no value can be extracted, then a default value is assigned.
PropVariantToUInt16Vector

Extracts data from a PROPVARIANT structure into an unsigned short vector.
PropVariantToUInt16VectorAlloc

Extracts data from a PROPVARIANT structure into a newly-allocated unsigned short vector.
PropVariantToUInt16WithDefault

Extracts an unsigned short value from a PROPVARIANT structure. If no value exists, then the specified default value is returned.
PropVariantToUInt32

Extracts an ULONG value from a PROPVARIANT structure. If no value can be extracted, then a default value is assigned.
PropVariantToUInt32Vector

Extracts data from a PROPVARIANT structure into an ULONG vector.
PropVariantToUInt32VectorAlloc

Extracts data from a PROPVARIANT structure into a newly-allocated ULONG vector.
PropVariantToUInt32WithDefault

Extracts a ULONG value from a PROPVARIANT structure. If no value exists, then a specified default value is returned.
PropVariantToUInt64

Extracts a UInt64 value from a PROPVARIANT structure. If no value can be extracted, then a default value is assigned.
PropVariantToUInt64Vector

Extracts data from a PROPVARIANT structure into a ULONGLONG vector.
PropVariantToUInt64VectorAlloc

Extracts data from a PROPVARIANT structure into a newly-allocated ULONGLONG vector.
PropVariantToUInt64WithDefault

Extracts ULONGLONG value from a PROPVARIANT structure. If no value exists, then the specified default value is returned.
PropVariantToVariant

Converts the contents of a PROPVARIANT structure to a VARIANT structure.
PropVariantToWinRTPropertyValue

Extracts data from a PROPVARIANT structure into a Windows Runtime property value.
PSCoerceToCanonicalValue

Converts the value of a property to the canonical value, according to the property description.
PSCreateAdapterFromPropertyStore

Creates an adapter from an IPropertyStore.
PSCreateDelayedMultiplexPropertyStore

Creates a read-only, delayed-binding property store that contains multiple property stores.
PSCreateMemoryPropertyStore

Creates an in-memory property store.
PSCreateMultiplexPropertyStore

Creates a read-only property store that contains multiple property stores, each of which must support either IPropertyStore or IPropertySetStorage.
PSCreatePropertyChangeArray

Creates a container for a set of IPropertyChange objects. This container can be used with IFileOperation to apply a set of property changes to a set of files.
PSCreatePropertyStoreFromObject

Accepts the IUnknown interface of an object that supports IPropertyStore or IPropertySetStorage. If the object supports IPropertySetStorage, it is wrapped so that it supports IPropertyStore.
PSCreatePropertyStoreFromPropertySetStorage

Wraps an IPropertySetStorage interface in an IPropertyStore interface.
PSCreateSimplePropertyChange

Creates a simple property change.
PSEnumeratePropertyDescriptions

A wrapper API that calls the schema subsystem's IPropertySystem::EnumeratePropertyDescriptions.
PSFormatForDisplay

Gets a formatted, Unicode string representation of a property value stored in a PROPVARIANT structure. The caller is responsible for allocating the output buffer.
PSFormatForDisplayAlloc

Gets a formatted, Unicode string representation of a property value stored in a PROPVARIANT structure. This function allocates memory for the output string.
PSFormatPropertyValue

Gets a formatted, Unicode string representation of a property value stored in a property store. This function allocates memory for the output string.
PSGetImageReferenceForValue

Gets an instance of a property description interface for a specified property.
PSGetItemPropertyHandler

Retrieves a property handler for a Shell item. (PSGetItemPropertyHandler)
PSGetItemPropertyHandlerWithCreateObject

Retrieves a property handler for a Shell item. (PSGetItemPropertyHandlerWithCreateObject)
PSGetNamedPropertyFromPropertyStorage

Gets a value from serialized property storage by property name.
PSGetNameFromPropertyKey

Retrieves the canonical name of the property, given its PROPERTYKEY.
PSGetPropertyDescription

Gets an instance of a property description interface for a property specified by a PROPERTYKEY structure.
PSGetPropertyDescriptionByName

Gets an instance of a property description interface for a specified property name.
PSGetPropertyDescriptionListFromString

Gets an instance of a property description list interface for a specified property list.
PSGetPropertyFromPropertyStorage

Gets the value of a property as stored in serialized property storage.
PSGetPropertyKeyFromName

Gets the property key for a canonical property name.
PSGetPropertySystem

Gets an instance of the subsystem object that implements IPropertySystem.
PSGetPropertyValue

Gets a property value from a property store.
PSLookupPropertyHandlerCLSID

Gets the class identifier (CLSID) of a per-computer, registered file property handler.
PSPropertyBag_Delete

Deletes a property from a property bag.
PSPropertyBag_ReadBOOL

Reads the BOOL data value of a property in a property bag.
PSPropertyBag_ReadBSTR

Reads a BSTR data value from a property in a property bag.
PSPropertyBag_ReadDWORD

Reads a DWORD data value from property in a property bag.
PSPropertyBag_ReadGUID

Reads the GUID data value from a property in a property bag.
PSPropertyBag_ReadInt

Reads an int data value from a property in a property bag.
PSPropertyBag_ReadLONG

Reads a LONG data value from a property in a property bag.
PSPropertyBag_ReadPOINTL

Retrieves the property coordinates stored in a POINTL structure of a specified property bag.
PSPropertyBag_ReadPOINTS

Retrieves the property coordinates stored in a POINTS structure of a specified property bag.
PSPropertyBag_ReadPropertyKey

Reads the property key of a property in a specified property bag.
PSPropertyBag_ReadRECTL

Retrieves the coordinates of a rectangle stored in a property contained in a specified property bag.
PSPropertyBag_ReadSHORT

Reads the SHORT data value of a property in a property bag.
PSPropertyBag_ReadStr

Reads the string data value of a property in a property bag.
PSPropertyBag_ReadStrAlloc

Reads a string data value from a property in a property bag and allocates memory for the string that is read.
PSPropertyBag_ReadStream

Reads the data stream stored in a given property contained in a specified property bag.
PSPropertyBag_ReadType

Reads the type of data value of a property that is stored in a property bag.
PSPropertyBag_ReadULONGLONG

Reads a ULONGLONG data value from a property in a property bag.
PSPropertyBag_ReadUnknown

Reads a given property of an unknown data value in a property bag.
PSPropertyBag_WriteBOOL

Sets the BOOL value of a property in a property bag.
PSPropertyBag_WriteBSTR

Sets the BSTR value of a property in a property bag.
PSPropertyBag_WriteDWORD

Sets the DWORD value of a property in a property bag.
PSPropertyBag_WriteGUID

Sets the GUID value of a property in a property bag.
PSPropertyBag_WriteInt

Sets the int value of a property in a property bag.
PSPropertyBag_WriteLONG

Sets the LONG value of a property in a property bag.
PSPropertyBag_WritePOINTL

Stores the property coordinates in aPOINTL structure of a specified property bag.
PSPropertyBag_WritePOINTS

Stores the property coordinates in aPOINTS structure of a specified property bag.
PSPropertyBag_WritePropertyKey

Sets the property key value of a property in a property bag.
PSPropertyBag_WriteRECTL

Stores the coordinates of a rectangle in a property in a property bag.
PSPropertyBag_WriteSHORT

Sets the SHORT value of a property in a property bag.
PSPropertyBag_WriteStr

Sets the string value of a property in a property bag.
PSPropertyBag_WriteStream

Writes a data stream to a property in a property bag.
PSPropertyBag_WriteULONGLONG

Sets the ULONGLONG value of a property in a property bag.
PSPropertyBag_WriteUnknown

Writes a property of an unknown data value in a property bag.
PSPropertyKeyFromString

Converts a string to a PROPERTYKEY structure.
PSRefreshPropertySchema

Not supported.It is valid to call this function, but it is not implemented to perform any function so there is no reason to do so.
PSRegisterPropertySchema

Informs the schema subsystem of the addition of a property description schema file. (PSRegisterPropertySchema)
PSSetPropertyValue

Sets the value of a property in a property store.
PSStringFromPropertyKey

Creates a string that identifies a property from that property's key.
PSUnregisterPropertySchema

Informs the schema subsystem of the removal of a property description schema file.
RefreshPropertySchema

Not supported. (IPropertySystem.RefreshPropertySchema)
RegisterPropertySchema

Informs the schema subsystem of the addition of a property description schema file. (IPropertySystem.RegisterPropertySchema)
RemoveAt

Removes a specified change.
SetValueAndState

Sets value and state data for a property key.
SHAddDefaultPropertiesByExt

Adds default properties to the property store as registered for the specified file extension.
SHGetPropertyStoreForWindow

Retrieves an object that represents a specific window's collection of properties, which allows those properties to be queried or set.
SHGetPropertyStoreFromIDList

Retrieves an object that supports IPropertyStore or related interfaces from a pointer to an item identifier list (PIDL).
SHGetPropertyStoreFromParsingName

Returns a property store for an item, given a path or parsing name.
SHPropStgCreate

Ensures proper handling of code page retrieval or assignment for the requested property set operation.
SHPropStgReadMultiple

Wraps the IPropertyStorage::ReadMultiple function to ensure that ANSI and Unicode translations are handled properly for deprecated property sets.
SHPropStgWriteMultiple

Wraps the IPropertyStorage::WriteMultiple function to ensure that ANSI and Unicode translations are handled properly for deprecated property sets.
UnregisterPropertySchema

Informs the schema subsystem of the removal of a property description schema (.propdesc) file, using a file path to the .propdesc file on the local machine.
VariantCompare

Compares two variant structures, based on default comparison rules.
VariantGetBooleanElem

Extracts a single Boolean element from a variant structure.
VariantGetDoubleElem

Extracts one double element from a variant structure.
VariantGetElem

Initializes a VARIANT structure from a specified variant element.
VariantGetElementCount

Retrieves the element count of a variant structure.
VariantGetInt16Elem

Extracts a single Int16 element from a variant structure.
VariantGetInt32Elem

Extracts a single Int32 element from a variant structure.
VariantGetInt64Elem

Extracts a single Int64 element from a variant structure.
VariantGetStringElem

Extracts a single wide string element from a variant structure.
VariantGetUInt16Elem

Extracts a single unsigned Int16 element from a variant structure.
VariantGetUInt32Elem

Extracts a single unsigned Int32 element from a variant structure.
VariantGetUInt64Elem

Extracts a single unsigned Int64 element from a variant structure.
VariantToBoolean

Extracts the value of a Boolean property from a VARIANT structure. If no value can be extracted, then a default value is assigned.
VariantToBooleanArray

Extracts an array of Boolean values from a VARIANT structure.
VariantToBooleanArrayAlloc

Allocates an array of BOOL values then extracts data from a VARIANT structure into that array.
VariantToBooleanWithDefault

Extracts a BOOL value from a VARIANT structure. If no value exists, then the specified default value is returned.
VariantToBuffer

Extracts the contents of a buffer stored in a VARIANT structure of type VT_ARRRAY
VT_UI1.
VariantToDosDateTime

Extracts a date and time value in Microsoft MS-DOS format from a VARIANT structure.
VariantToDouble

Extracts a DOUBLE value from a VARIANT structure. If no value can be extracted, then a default value is assigned.
VariantToDoubleArray

Extracts an array of DOUBLE values from a VARIANT structure.
VariantToDoubleArrayAlloc

Allocates an array of DOUBLE values then extracts data from a VARIANT structure into that array.
VariantToDoubleWithDefault

Extracts a DOUBLE value from a VARIANT structure. If no value exists, then the specified default value is returned.
VariantToFileTime

Extracts a FILETIME structure from a variant structure.
VariantToGUID

Extracts a GUID property value of a variant structure.
VariantToInt16

Extracts the Int16 property value of a variant structure. If no value can be extracted, then a default value is assigned by this function.
VariantToInt16Array

Extracts data from a vector structure into an Int16 array.
VariantToInt16ArrayAlloc

Extracts data from a vector structure into a newly-allocated Int16 array.
VariantToInt16WithDefault

Extracts an Int16 property value of a variant structure. If no value exists, then the specified default value is returned.
VariantToInt32

Extracts an Int32 property value of a variant structure. If no value can be extracted, then a default value is assigned.
VariantToInt32Array

Extracts data from a vector structure into an Int32 array.
VariantToInt32ArrayAlloc

Extracts data from a vector structure into a newly-allocated Int32 array.
VariantToInt32WithDefault

Extracts an Int32 property value of a variant structure. If no value exists, then the specified default value is returned.
VariantToInt64

Extracts an Int64 property value of a variant structure. If no value can be extracted, then a default value is assigned.
VariantToInt64Array

Extracts data from a vector structure into an Int64 array.
VariantToInt64ArrayAlloc

Extracts data from a vector structure into a newly-allocated Int64 array.
VariantToInt64WithDefault

Extracts an Int64 property value of a variant structure. If no value exists, then the specified default value is returned.
VariantToPropVariant

Copies the contents of a VARIANT structure to a PROPVARIANT structure.
VariantToString

Extracts the variant value of a variant structure to a string. If no value can be extracted, then a default value is assigned.
VariantToStringAlloc

Extracts the variant value of a variant structure to a newly-allocated string. If no value can be extracted, then a default value is assigned.
VariantToStringArray

Extracts data from a vector structure into a String array.
VariantToStringArrayAlloc

Extracts data from a vector structure into a newly-allocated String array.
VariantToStringWithDefault

Extracts the string property value of a variant structure. If no value exists, then the specified default value is returned.
VariantToStrRet

If the source variant is a VT_BSTR, extracts string and places it into a STRRET structure.
VariantToUInt16

Extracts an unsigned Int16 property value of a variant structure. If no value can be extracted, then a default value is assigned by this function.
VariantToUInt16Array

Extracts data from a vector structure into an unsigned Int16 array.
VariantToUInt16ArrayAlloc

Extracts data from a vector structure into a newly-allocated unsigned Int16 array.
VariantToUInt16WithDefault

Extracts an unsigned Int16 property value of a variant structure. If no value exists, then the specified default value is returned.
VariantToUInt32

Extracts unsigned Int32 property value of a variant structure. If no value can be extracted, then a default value is assigned.
VariantToUInt32Array

Extracts data from a vector structure into an unsigned Int32 array.
VariantToUInt32ArrayAlloc

Extracts data from a vector structure into a newly-allocated unsigned Int32 array.
VariantToUInt32WithDefault

Extracts an unsigned Int32 property value of a variant structure. If no value currently exists, then the specified default value is returned.
VariantToUInt64

Extracts unsigned Int64 property value of a variant structure. If no value can be extracted, then a default value is assigned.
VariantToUInt64Array

Extracts data from a vector structure into an unsigned Int64 array.
VariantToUInt64ArrayAlloc

Extracts data from a vector structure into a newly-allocated unsigned Int64 array.
VariantToUInt64WithDefault

Extracts an unsigned Int64 property value of a variant structure. If no value currently exists, then the specified default value is returned.
WinRTPropertyValueToPropVariant

Copies the content from a Windows runtime property value to a PROPVARIANT structure.

Interfaces

 
IPropertyChange

Exposes a method that encapsulates a change to a single property.
IPropertyChangeArray

Exposes methods for several multiple change operations that may be passed to IFileOperation.
IPropertyDescription

Exposes methods that enumerate and retrieve individual property description details. (IPropertyDescription)
IPropertyDescription2

Exposes methods that enumerate and retrieve individual property description details. (IPropertyDescription2)
IPropertyDescriptionAliasInfo

Exposes methods to get the "sort by" columns properties for an item. This interface is used by UI objects that want to retrieve the primary or secondary sort columns for a given property.
IPropertyDescriptionList

Exposes methods that extract information from a collection of property descriptions presented as a list.
IPropertyDescriptionRelatedPropertyInfo

Provides a method that retrieves an IPropertyDescription interface.
IPropertyDescriptionSearchInfo

Exposes search-related information for a property.
IPropertyEnumType

Exposes methods that extract data from enumeration information. IPropertyEnumType gives access to the enum and enumRange elements in the property schema in a programmatic way at run time.
IPropertyEnumType2

Exposes methods that extract data from enumeration information. IPropertyEnumType2 extends IPropertyEnumType.
IPropertyEnumTypeList

Exposes methods that enumerate the possible values for a property.
IPropertyStoreCache

Exposes methods that allow a handler to manage various states for each property.
IPropertyStoreCapabilities

Exposes a method that determines whether a property can be edited in the UI by the user.
IPropertyStoreFactory

Exposes methods to get an IPropertyStore object.
IPropertySystem

Exposes methods that get property descriptions, register and unregister property schemas, enumerate property descriptions, and format property values in a type-strict way.
IPropertyUI

Developers should use IPropertyDescription instead. (IPropertyUI)

Structures

 
PROPERTYKEY

Specifies the FMTID/PID identifier that programmatically identifies a property. Replaces SHCOLUMNID.
PROPPRG

This structure contains information from a .pif file. It is used by PifMgr_GetProperties.