The COMPAREITEMSTRUCT structure supplies the identifiers and application-supplied data for two items in a sorted, owner-drawn list box or combo box.
typedef struct tagCOMPAREITEMSTRUCT {
    UINT   CtlType;
    UINT   CtlID;
    HWND   hwndItem;
    UINT   itemID1;
    DWORD  itemData1;
    UINT   itemID2;
    DWORD  itemData2;
} COMPAREITEMSTRUCT;
Parameters
- CtlType 
 ODT_LISTBOX (which specifies an owner-draw list box) or ODT_COMBOBOX (which specifies an owner-draw combo box).
- CtlID 
 The control ID for the list box or combo box.
- hwndItem 
 The window handle of the control.
- itemID1 
 The index of the first item in the list box or combo box being compared.
- itemData1 
 Application-supplied data for the first item being compared. This value was passed in the call that added the item to the combo or list box.
- itemID2 
 Index of the second item in the list box or combo box being compared.
- itemData2 
 Application-supplied data for the second item being compared. This value was passed in the call that added the item to the combo or list box.
Remarks
Whenever an application adds a new item to an owner-drawn list box or combo box created with the CBS_SORT or LBS_SORT style, Windows sends the owner a WM_COMPAREITEM message. The lParam parameter of the message contains a long pointer to a COMPAREITEMSTRUCT structure. Upon receiving the message, the owner compares the two items and returns a value indicating which item sorts before the other.
Requirements
Header: winuser.h