IID_IDrawPropertyControl {E6DFF6FD-BCD5-4162-9C65-A3B18C616FDB}

The IDrawPropertyControl methods are (as ordered in the virtual function table after the IPropertyControlBase methods):

Offset Method
0x40 GetDrawFlags
0x44 WindowlessDraw
0x48 HasVisibleContent
0x4C GetDisplayText
0x50 GetTooltipInfo

with prototypes:

HRESULT GetDrawFlags (INT *);
HRESULT WindowlessDraw (HDC, RECT const *, INT);
HRESULT HasVisibleContent (VOID);
HRESULT GetDisplayText (PWSTR *);
HRESULT GetTooltipInfo (HDC, SIZE const *, INT *);


The only known implementations of the IDrawPropertyControl interface are by SHELL32.

One known purpose of the IDrawPropertyControl interface is to provide a set of callback functions for a List-View control. The interface is implemented by any component that has access to a List-View control and wants to participate in the handling of subitems. To register this set of callback functions for a subitem, first provide the List-View control with an ISubItemCallback interface, by giving it as the argument to the SetSubItemCallback method of the List-View control’s IListView interface. When a subitem is to be drawn, COMCTL32 calls the ISubItemCallback interface’s GetSubItemControl method, asking for an IDrawPropertyControl interface for the subitem.


The IDrawPropertyControl interface is supported by SHELL32 version 6.00, in the build for Windows Vista. The use with List-View controls requires COMCTL32 version 6.10.

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.