IPropertyControl

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

Offset

Method

0x40

GetValue

0x44

Create

0x48

SetPosition

0x4C

IsModified

0x50

SetModified

0x54

ValidationFailed

0x58

GetState

with prototypes:

HRESULT GetValue (REFIID, PVOID *);

HRESULT Create (HWND, RECT const *, RECT const *, INT);

HRESULT SetPosition (RECT const *, RECT const *);

HRESULT IsModified (BOOL *);

HRESULT SetModified (BOOL);

HRESULT ValidationFailed (PCWSTR);

HRESULT GetState (INT *);

Implementation

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

One known purpose of the IPropertyControl
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 edited, COMCTL32 calls the
ISubItemCallback interface’s
BeginSubItemEdit or BeginGroupEdit methods,
asking for an IPropertyControl interface for the
subitem.

Availability

The IPropertyControl 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.