Geoff Chappell - Software Analyst
This function obtains an interface to a property description list for a given property of a given association.
HRESULT AssocGetPropListForExt ( PCWSTR pszAssoc, PROPERTYKEY *pkey, REFIID riid, PVOID *ppv);
The pszAssoc argument describes the association.
The pkey argument is the address of the property key for the property that is being queried.
The riid argument provides the IID of a desired interface to the property description list.
The ppv argument provides the address of a variable that is to receive a pointer to the desired interface.
The function returns zero for success, else an error code.
If the given property is not supported, the function fails (returning E_FAIL).
The function creates a QueryAssociations object (using the AssocCreate function) and initialises it for the given association. The resulting object is an ordered list of association elements with a star element as the last. Failure to create this association list is failure for the function.
To each property, there corresponds a registry value, or exceptionally two, whose string data is the property list. Each association element has a registry key which may have that registry value and thus provide a property list for that property. The association’s property list is that of the first element that has a property list. If the property supports two values, the association’s property list is sought for one value and then for the other. If no property list is found for the association, the function fails.
Having got a property list as string data, the function creates a property description list object (with the PSGetPropertyDescriptionListFromString function) and queries for the desired interface (through which the caller may then access the properties).
The following are the supported properties and their corresponding registry values in the SHELL32 version 6.00 from Windows Vista. Those highlighted yellow seem to be undocumented. The others are defined in PROPKEY.H from the Windows Vista SDK.
Property Key | Registry Value |
---|---|
PKEY_PropList_ConflictPrompt | ConflictPrompt |
PKEY_PropList_ExtendedTileInfo | ExtendedTileInfo |
PKEY_PropList_FileOperationPrompt | FileOperationPrompt |
PKEY_PropList_FullDetails | FullDetails |
PKEY_PropList_InfoTip | InfoTip |
PKEY_NewMenuAllowedTypes | NewMenuAllowedTypes |
PKEY_NewMenuPreferredTypes | NewMenuPreferredTypes |
PKEY_PropList_NonPersonal | NonPersonal |
PKEY_PropList_PreviewDetails | PreviewDetails Details |
PKEY_PropList_PreviewTitle | PreviewTitle |
PKEY_PropList_QuickTip | QuickTip |
PKEY_PropList_SetDefaultsFor | SetDefaultsFor |
PKEY_PropList_TileInfo | TileInfo |
The AssocGetPropListForExt function is exported from SHELL32.DLL as ordinal 778 in the version 6.00 from Windows Vista, and higher.
This function was not documented by Microsoft for the January 2007 edition of the Windows Vista Software Development Kit (SDK).