IFilterCondition

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;

Implementation

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.

Availability

The IFilterCondition interface is implemented in the SHELL32.DLL version 6.00 from Windows Vista, and higher.