ISubItemCallback

IID_ISubItemCallback {11A66240-5489-42C2-AEBF-286FC831524C}

The ISubItemCallback methods are (as ordered in the virtual function table after the IUnknown methods):

Offset Method
0x0C GetSubItemTitle
0x10 GetSubItemControl
0x14 BeginSubItemEdit
0x18 EndSubItemEdit
0x1C BeginGroupEdit
0x20 EndGroupEdit
0x24 OnInvokeVerb

with prototypes:

HRESULT GetSubItemTitle (INT, PWSTR, INT);
HRESULT GetSubItemControl (INT, INT, REFIID, PVOID *);
HRESULT BeginSubItemEdit (INT, INT, INT, REFIID, PVOID *);
HRESULT EndSubItemEdit (INT, INT, INT, IPropertyControl *);
HRESULT BeginGroupEdit (INT, REFIID, PVOID *);
HRESULT EndGroupEdit (INT, INT, IPropertyControl *);
HRESULT OnInvokeVerb (INT, PCWSTR);

Implementation

The one known purpose of the ISubItemCallback 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 List-View control, pass the address of the ISubItemCallback interface as the argument to the SetSubItemCallback method of the control’s IListView interface.

Thus, COMCTL32 supports the interface for someone else to implement. The only known implementation is in SHELL32.

Availability

The ISubItemCallback interface is supported by COMCTL32 versions 6.10 and higher.

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.