Geoff Chappell - Software Analyst
IID_IShellFolder3 | {2EC06C64-1296-4F53-89E5-ECCE4EFC2189} |
The IShellFolder3 methods are (as ordered in the virtual function table after the IShellFolder2 methods):
Offset | Method |
---|---|
0x50 | CreateFilteredIDList |
0x54 | GetFilteredIDListType |
0x58 | ModifyFilteredIDList |
0x5C | ReparentFilteredIDList |
0x60 | CreateStackedIDList |
0x64 | GetStackedKey |
0x68 | EnumObjectsEx |
0x6C | GetConditions |
0x70 | GetAutoListFlags |
with prototypes:
HRESULT CreateFilteredIDList (IFilterCondition *, FILTERIDLISTTYPE, IPropertyStore *, PITEMID_CHILD *);
HRESULT GetFilteredIDListType (PCITEMID_CHILD, FILTERIDLISTTYPE *);
HRESULT ModifyFilteredIDList (PCITEMID_CHILD, IFilterCondition *, PITEMID_CHILD *);
HRESULT ReparentFilteredIDList (PCIDLIST_RELATIVE, PIDLIST_RELATIVE *);
HRESULT CreateStackedIDList (PROPERTYKEY const &, PIDLIST_ABSOLUTE *);
HRESULT GetStackedKey (PROPERTYKEY *);
HRESULT EnumObjectsEx (HWND, IBindCtx *, ULONG, IItemFilter *, IEnumIDList **);
HRESULT GetConditions (PROPERTYKEY const &, IQueryUnit *, REFIID, PVOID *);
HRESULT GetAutoListFlags (ULONG *);
in which IFilterCondition, IItemFilter and IQueryUnit are undocumented interfaces and FILTERIDLISTTYPE is invented as a typedef for an undocumented enumeration:
typedef enum tagFILTERIDLISTTYPE FILTERIDLISTTYPE;
The only known implementations are in SHELL32.DLL and TWEXT.DLL from Windows Vista, for the creatable classes:
CLSID_DBFolder | {B2952B16-0E07-4E5A-B993-58C52CB94CAE} | shell32.dll |
CLSID_TimeWarpFolder | {9DB7A13C-F208-4981-8353-73CC61AE2783} | twext.dll |
Neither is documented.