Geoff Chappell - Software Analyst
IID_IFilterCondition | {FCA2857D-1760-4AD3-8C63-C9B602FCBAEA} |
The IFilterCondition methods are (as ordered in the virtual function table after the IPersistStream methods):
Offset | Method |
---|---|
0x20 | GetFilterName |
0x24 | GetTypeFlags |
0x28 | GetPropertyKey |
0x2C | GetCondition |
with prototypes:
HRESULT GetFilterName (FC_FILTERNAME, PWSTR *);
HRESULT GetTypeFlags (INT *);
HRESULT GetPropertyKey (PROPERTYKEY *);
HRESULT GetCondition (ICondition **);
in which FC_FILTERNAME is invented as a typedef for an undocumented enumeration:
typedef enum tagFC_FILTERNAME FC_FILTERNAME;
The only known implementations are in SHELL32.DLL and PROPSYS.DLL from Windows Vista. Microsoft’s published symbol files confirm that the code is linked into both executables from the one library, named PROPSYS_SHELL32.LIB. The implementation in SHELL32 is the more public, most notably for being accessible through the exported functions SHCreateFilter and SHLoadFilterFromStream.
The IFilterCondition interface is implemented in the SHELL32.DLL version 6.00 from Windows Vista, and higher.