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

Title Description
_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

Title Description
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.
FormatForDisplay Gets a formatted, Unicode string representation of a property value.
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.
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 imbedded 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.
PSGetItemPropertyHandlerWithCreateObject Retrieves a property handler for a Shell item.
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.
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.
RegisterPropertySchema Informs the schema subsystem of the addition of a property description schema file.
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

Title Description
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.
IPropertyDescription2 Exposes methods that enumerate and retrieve individual property description details.
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 retrives 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.

Structures

Title Description
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.