IPropertyControlBase

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;

Implementation

The only known implementations are as bases for the IPropertyControl and IDrawPropertyControl interfaces, and only then by SHELL32.

Availability

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.