Geoff Chappell - Software Analyst
IID_IPropertyControlBase | {6E71A510-732A-4557-9596-A827E36DAF8F} |
The IPropertyControlBase methods are (as ordered in the virtual function table after the IUnknown methods):
Offset | Method |
---|---|
0x0C | Initialize |
0x10 | GetSize |
0x14 | SetWindowTheme |
0x18 | SetFont |
0x1C | SetTextColor |
0x20 | GetFlags |
0x24 | SetFlags |
0x28 | AdjustWindowRectPCB |
0x2C | SetValue |
0x30 | InvokeDefaultAction |
0x34 | Destroy |
0x38 | SetFormatFlags |
0x3C | GetFormatFlags |
with prototypes:
HRESULT Initialize (IUnknown *, PROPDESC_CONTROL_TYPE);
HRESULT GetSize (PROPCTL_RECT_TYPE, HDC, SIZE const *, SIZE *);
HRESULT SetWindowTheme (PCWSTR, PCWSTR);
HRESULT SetFont (HFONT);
HRESULT SetTextColor (ULONG);
HRESULT GetFlags (INT *);
HRESULT SetFlags (INT, INT);
HRESULT AdjustWindowRectPCB (HWND, RECT *, RECT const *, INT);
HRESULT SetValue (IUnknown *);
HRESULT InvokeDefaultAction (VOID);
HRESULT Destroy (VOID);
HRESULT SetFormatFlags (INT);
HRESULT GetFormatFlags (INT *);
in which the following type definitions are presumed for the undocumented enumerations:
typedef enum tagPROPDESC_CONTROL_TYPE PROPDESC_CONTROL_TYPE;
typedef enum tagPROPCTL_RECT_TYPE PROPCTL_RECT_TYPE;
The only known implementations are as bases for the IPropertyControl and IDrawPropertyControl interfaces, and only then by SHELL32.
The IPropertyControlBase interface is supported by SHELL32 version 6.00 for Windows Vista.
Though new for Windows Vista, this interface is not documented by Microsoft in the January 2007 edition of the Software Development Kit (SDK) for Windows Vista.