IDrawPropertyControl

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 *);

Implementation

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.

Availability

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.