List-View Messages

The following table shows all the window messages that seem ever to have been defined specifically for List-View controls. For each message, a quick attempt has been made to determine the range of applicable COMCTL32 versions.

The description of the early history is complicated by the separate treatment of builds for Windows and NT. Some messages that date from a version 4.00 supplied with Internet Explorer 3.00 for Windows NT are not found in the version 4.00 from the original Windows 95, but become common to both Windows and NT builds of version 4.70 and higher. Builds of COMCTL32 for Windows, as opposed to NT, were for many years not just natively ANSI but exclusively ANSI, so that many messages have both ANSI and Unicode forms as early as version 3.51 for NT but do not have Unicode forms in the Windows builds until version 5.80.

More than a handful of messages, especially among recent additions, are highlighted. These are not documented in the January 2007 edition of the Software Development Kit (SDK) for Windows Vista, nor are they defined in the COMMCTRL.H header from that SDK. The names given here for these messages are invented, Microsoft’s names being not known.

Message Symbolic Name Applicable Versions Remarks
0x1000 LVM_GETBKCOLOR 3.50 and higher returns indirect result of GetBackgroundColor method
0x1001 LVM_SETBKCOLOR 3.50 and higher passes lParam to SetBackgroundColor method;
returns TRUE for success, else FALSE
0x1002 LVM_GETIMAGELIST 3.50 and higher  
0x1003 LVM_SETIMAGELIST 3.50 and higher  
0x1004 LVM_GETITEMCOUNT 3.50 and higher returns indirect result of GetItemCount method
0x1005 LVM_GETITEMA 3.50 and higher  
0x1006 LVM_SETITEMA 3.50 and higher  
0x1007 LVM_INSERTITEMA 3.50 and higher  
0x1008 LVM_DELETEITEM 3.50 and higher passes wParam to DeleteItem method;
returns TRUE for success, else FALSE
0x1009 LVM_DELETEALLITEMS 3.50 and higher calls DeleteAllItems method;
returns TRUE for success, else FALSE
0x100A LVM_GETCALLBACKMASK 3.50 and higher returns indirect result of GetCallbackMask method
0x100B LVM_SETCALLBACKMASK 3.50 and higher passes wParam to SetCallbackMask method;
returns TRUE
0x100C LVM_GETNEXTITEM 3.50 and higher translates to GetNextItem method
0x100D LVM_FINDITEMA 3.50 and higher  
0x100E LVM_GETITEMRECT 3.50 and higher translates to GetItemRect method
0x100F LVM_SETITEMPOSITION 3.50 and higher  
0x1010 LVM_GETITEMPOSITION 3.50 and higher  
0x1011 LVM_GETSTRINGWIDTHA 3.50 and higher  
0x1012 LVM_HITTEST 3.50 and higher  
0x1013 LVM_ENSUREVISIBLE 3.50 and higher translates to EnsureItemVisible method
0x1014 LVM_SCROLL 3.50 and higher passes wParam and lParam to ScrollView method;
returns TRUE for success, else FALSE
0x1015 LVM_REDRAWITEMS 3.50 and higher passes wParam and lParam to RedrawItems method;
returns TRUE for success, else FALSE
0x1016 LVM_ARRANGE 3.50 and higher passes wParam to ArrangeItems method;
returns TRUE for success, else FALSE
0x1017 LVM_EDITLABELA 3.50 and higher  
0x1018 LVM_GETEDITCONTROL 3.50 and higher returns indirect result of GetEditControl method
0x1019 LVM_GETCOLUMNA 3.50 and higher  
0x101A LVM_SETCOLUMNA 3.50 and higher  
0x101B LVM_INSERTCOLUMNA 3.50 and higher  
0x101C LVM_DELETECOLUMN 3.50 and higher passes wParam to DeleteColumn method;
returns TRUE for success, else FALSE
0x101D LVM_GETCOLUMNWIDTH 3.50 and higher  
0x101E LVM_SETCOLUMNWIDTH 3.50 and higher passes wParam and lParam (sign-extended from 16 bits) to SetColumnWidth method;
returns TRUE for success, else FALSE
0x101F LVM_GETHEADER 4.70 and higher  
0x1021 LVM_CREATEDRAGIMAGE 3.50 and higher passes wParam and lParam to CreateDragImage method;
returns indirect result
0x1022 LVM_GETVIEWRECT 3.50 and higher passes lParam to GetViewRect method;
returns TRUE for success, else FALSE
0x1023 LVM_GETTEXTCOLOR 3.50 and higher returns indirect result of GetTextColor method
0x1024 LVM_SETTEXTCOLOR 3.50 and higher passes lParam to SetTextColor method
0x1025 LVM_GETTEXTBKCOLOR 3.50 and higher returns indirect result of GetTextBackgroundColor method
0x1026 LVM_SETTEXTBKCOLOR 3.50 and higher passes lParam to SetTextBackgroundColor method;
returns TRUE
0x1027 LVM_GETTOPINDEX 3.50 and higher returns indirect result of GetTopIndex method
0x1028 LVM_GETCOUNTPERPAGE 3.50 and higher returns indirect result of GetCountPerPage method
0x1029 LVM_GETORIGIN 3.50 and higher passes lParam to GetOrigin method;
returns TRUE for success, else FALSE
0x102A LVM_UPDATE 3.50 and higher passes wParam to UpdateItem method;
returns TRUE
0x102B LVM_SETITEMSTATE 3.50 and higher translates to SetItemState method
0x102C LVM_GETITEMSTATE 3.50 and higher translates to GetItemState method
0x102D LVM_GETITEMTEXTA 3.50 and higher  
0x102E LVM_SETITEMTEXTA 3.50 and higher  
0x102F LVM_SETITEMCOUNT 3.50 and higher passes wParam and lParam to SetItemCount method;
returns TRUE for success, else FALSE
0x1030 LVM_SORTITEMS 3.50 and higher passes FALSE, wParam and lParam to SortItems method;
returns TRUE for success, else FALSE
0x1031 LVM_SETITEMPOSITION32 3.50 and higher passes wParam and lParam to SetItemPosition method;
returns TRUE for success, else FALSE;
fails trivially if lParam is NULL
0x1032 LVM_GETSELECTEDCOUNT 3.50 and higher returns indirect result of GetSelectedCount method
0x1033 LVM_GETITEMSPACING 3.50 and higher passes wParam to GetItemSpacing method;
returns indirect results composed into one DWORD
0x1034 LVM_GETISEARCHSTRINGA 3.50 and higher  
0x1035 LVM_SETICONSPACING 4.00 (NT) and higher passes 16-bit components of lParam to SetIconSpacing method;
returns indirect results composed into one DWORD
0x1036 LVM_SETEXTENDEDLISTVIEWSTYLE 4.00 (NT) and higher passes wParam and lParam to SetExtendedStyle method;
returns indirect result
0x1037 LVM_GETEXTENDEDLISTVIEWSTYLE 4.00 (NT) and higher returns indirect result of GetExtendedStyle method
0x1038 LVM_GETSUBITEMRECT 4.00 (NT) and higher translates to GetSubItemRect method
0x1039 LVM_SUBITEMHITTEST 4.00 (NT) and higher  
0x103A LVM_SETCOLUMNORDERARRAY 4.00 (NT) and higher passes wParam and lParam to SetColumnOrderArray method;
returns TRUE for success, else FALSE
0x103B LVM_GETCOLUMNORDERARRAY 4.00 (NT) and higher passes wParam and lParam to GetColumnOrderArray method;
returns TRUE for success, else FALSE
0x103C LVM_SETHOTITEM 4.70 and higher translates to SetHotItem method
0x103D LVM_GETHOTITEM 4.70 and higher returns iItem member from indirect result of GetHotItem method
0x103E LVM_SETHOTCURSOR 4.70 and higher passes lParam to SetHotCursor method;
returns indirect result
0x103F LVM_GETHOTCURSOR 4.70 and higher returns indirect result of GetHotCursor method
0x1040 LVM_APPROXIMATEVIEWRECT 4.70 and higher translates to ApproximateViewRect method
0x1041 LVM_SETWORKAREAS 4.70 and higher passes wParam and lParam to SetWorkAreas method;
returns zero
0x1042 LVM_GETSELECTIONMARK 4.71 and higher returns iItem member from indirect result of GetSelectionMark method
0x1043 LVM_SETSELECTIONMARK 4.71 and higher translates to SetSelectionMark method
0x1044 LVM_SETBKIMAGEA 4.71 and higher  
0x1045 LVM_GETBKIMAGEA 4.71 and higher  
0x1046 LVM_GETWORKAREAS 4.71 and higher passes wParam and lParam to GetWorkAreas method;
returns zero
0x1047 LVM_SETHOVERTIME 4.71 and higher passes lParam to SetHoverTime method;
returns indirect result
0x1048 LVM_GETHOVERTIME 4.71 and higher returns indirect result of GetHoverTime method
0x1049 LVM_GETNUMBEROFWORKAREAS 4.71 and higher passes lParam to GetWorkAreaCount method;
returns zero
0x104A LVM_SETTOOLTIPS 4.71 and higher passes wParam to SetToolTip method;
returns indirect result
0x104B LVM_GETITEMW 3.51 and higher (NT);
5.80 and higher (Windows)
passes lParam to GetItem method;
returns TRUE for success, else FALSE
0x104C LVM_SETITEMW 3.51 and higher (NT);
5.80 and higher (Windows)
passes lParam to SetItem method;
returns TRUE for success, else FALSE
0x104D LVM_INSERTITEMW 3.51 and higher (NT);
5.80 and higher (Windows)
passes lParam to InsertItem method;
returns indirect result
0x104E LVM_GETTOOLTIPS 4.71 and higher returns indirect result of GetToolTip method
0x104F LVM_GETHOTLIGHTCOLOR 4.71 and higher returns indirect result of GetHotLightColor method
0x1050 LVM_SETHOTLIGHTCOLOR 4.71 and higher passes lParam to SetHotLightColor method;
returns TRUE
0x1051 LVM_SORTITEMSEX 5.80 and higher passes TRUE, wParam and lParam to SortItems method;
returns TRUE for success, else FALSE
0x1052 LVM_SETRANGEOBJECT 5.80 and higher passes wParam and lParam to SetRangeObject method;
returns TRUE for success, else FALSE
0x1053 LVM_FINDITEMW 3.51 and higher (NT);
5.80 and higher (Windows)
translates to FindItem method
0x1054 LVM_RESETEMPTYTEXT 5.80 and higher calls ResetEmptyText method;
returns TRUE
0x1055 LVM_SETFROZENITEM 6.00 and higher passes wParam and lParam to SetFrozenItem method;
returns TRUE for success, else FALSE
0x1056 LVM_GETFROZENITEM 6.00 and higher returns indirect result of GetFrozenItem method
0x1057 LVM_GETSTRINGWIDTHW 3.51 and higher (NT);
5.80 and higher (Windows)
passes lParam to GetStringWidth method;
returns indirect result
0x1058 LVM_SETFROZENSLOT 6.00 and higher passes wParam and lParam to SetFrozenSlot method;
returns TRUE for success, else FALSE
0x1059 LVM_GETFROZENSLOT 6.00 and higher passes lParam to GetFrozenSlot method;
returns TRUE for success, else FALSE
0x105A LVM_SETVIEWMARGIN 6.00 and higher passes lParam to SetViewMargin method;
returns TRUE for success, else FALSE
0x105B LVM_GETVIEWMARGIN 6.00 and higher passes lParam to GetViewMargin method;
returns TRUE for success, else FALSE
0x105C LVM_GETGROUPSTATE 6.10 and higher passes wParam and lParam to GetGroupState method;
returns indirect result
0x105D LVM_GETFOCUSEDGROUP 6.10 and higher returns indirect result of GetFocusedGroup method
0x105E LVM_EDITGROUPLABEL 6.10 and higher passes wParam to EditGroupLabel method;
returns TRUE for success, else FALSE
0x105F LVM_GETCOLUMNW 3.51 and higher (NT);
5.80 and higher (Windows)
passes wParam and lParam to GetColumn method;
returns TRUE for success, else FALSE
0x1060 LVM_SETCOLUMNW 3.51 and higher (NT);
5.80 and higher (Windows)
passes wParam and lParam to SetColumn method;
returns TRUE for success, else FALSE
0x1061 LVM_INSERTCOLUMNW 3.51 and higher (NT);
5.80 and higher (Windows)
passes wParam and lParam to InsertColumn method;
returns indirect result
0x1062 LVM_GETGROUPRECT 6.10 and higher translates to GetGroupRect method
0x1073 LVM_GETITEMTEXTW 3.51 and higher (NT);
5.80 and higher (Windows)
 
0x1074 LVM_SETITEMTEXTW 3.51 and higher (NT);
5.80 and higher (Windows)
translates to SetItemText method
0x1075 LVM_GETISEARCHSTRINGW 3.51 and higher (NT);
5.80 and higher (Windows)
 
0x1076 LVM_EDITLABELW 3.51 and higher (NT);
5.80 and higher (Windows)
 
0x108A LVM_SETBKIMAGEW 4.71 and higher (NT) ;
5.80 and higher (Windows)
passes lParam to SetBackgroundImage method;
returns TRUE for success, else FALSE
0x108B LVM_GETBKIMAGEW 4.71 and higher (NT) ;
5.80 and higher (Windows)
passes lParam to GetBackgroundImage method;
returns TRUE for success, else FALSE
0x108C LVM_SETSELECTEDCOLUMN 6.00 and higher passes wParam to SetSelectedColumn method;
returns TRUE for success, else FALSE
0x108E LVM_SETVIEW 6.00 and higher passes wParam (zero-extended from 16 bits) to SetView method;
returns 1 for success, else -1
0x108F LVM_GETVIEW 6.00 and higher returns indirect result of GetView method
0x1091 LVM_INSERTGROUP 6.00 and higher passes wParam and lParam to InsertGroup method;
returns indirect result
0x1093 LVM_SETGROUPINFO 6.00 and higher  
0x1095 LVM_GETGROUPINFO 6.00 and higher  
0x1096 LVM_REMOVEGROUP 6.00 and higher  
0x1098 LVM_GETGROUPCOUNT 6.10 and higher returns indirect result of GetGroupCount method
0x1099 LVM_GETGROUPINFOBYINDEX 6.10 and higher  
0x109B LVM_SETGROUPMETRICS 6.00 and higher passes lParam to SetGroupMetrics method;
return TRUE
0x109C LVM_GETGROUPMETRICS 6.00 and higher passes lParam to GetGroupMetrics method;
return TRUE
0x109D LVM_ENABLEGROUPVIEW 6.00 and higher  
0x109E LVM_SORTGROUPS 6.00 and higher passes wParam and lParam to SortGroups method;
returns TRUE for success, else FALSE
0x109F LVM_INSERTGROUPSORTED 6.00 and higher passes wParam to InsertGroupSorted method;
returns indirect result
0x10A0 LVM_REMOVEALLGROUPS 6.00 and higher  
0x10A1 LVM_HASGROUP 6.00 and higher passes wParam to HasGroup method;
returns indirect result
0x10A2 LVM_SETTILEVIEWINFO 6.00 and higher passes lParam to SetTileViewInfo method;
returns TRUE for success, else FALSE
0x10A3 LVM_GETTILEVIEWINFO 6.00 and higher passes lParam to GetTileViewInfo method;
returns TRUE for success, else FALSE
0x10A4 LVM_SETTILEINFO 6.00 and higher passes lParam to SetTileInfo method;
returns TRUE for success, else FALSE
0x10A5 LVM_GETTILEINFO 6.00 and higher passes lParam to GetTileInfo method;
returns TRUE for success, else FALSE
0x10A6 LVM_SETINSERTMARK 6.00 and higher passes lParam to SetInsertMark method;
returns TRUE for success, else FALSE
0x10A7 LVM_GETINSERTMARK 6.00 and higher passes lParam to GetInsertMark method;
returns TRUE for success, else FALSE
0x10A8 LVM_INSERTMARKHITTEST 6.00 and higher passes wParam and lParam to HitTestInsertMark method;
returns TRUE for success, else FALSE;
fails trivially if wParam or lParam is NULL
0x10A9 LVM_GETINSERTMARKRECT 6.00 and higher passes lParam to GetInsertMarkRect method;
returns TRUE for success, else FALSE
0x10AA LVM_SETINSERTMARKCOLOR 6.00 and higher passes lParam to SetInsertMarkColor method;
returns indirect result
0x10AB LVM_GETINSERTMARKCOLOR 6.00 and higher returns indirect result of GetInsertMarkColor method
0x10AD LVM_SETINFOTIP 6.00 and higher passes lParam to SetInfoTip method;
returns TRUE for success, else FALSE
0x10AE LVM_GETSELECTEDCOLUMN 6.00 and higher returns indirect result of GetSelectedColumn method
0x10AF LVM_ISGROUPVIEWENABLED 6.00 and higher returns indirect result of IsGroupViewEnabled method
0x10B0 LVM_GETOUTLINECOLOR 6.00 and higher returns indirect result of GetOutlineColor method
0x10B1 LVM_SETOUTLINECOLOR 6.00 and higher passes lParam to SetOutlineColor method;
returns indirect result
0x10B2 LVM_SETKEYBOARDSELECTED 6.00 and higher translates to SetKeyboardSelected method
0x10B3 LVM_CANCELEDITLABEL 6.00 and higher calls CancelEditLabel method;
returns TRUE
0x10B4 LVM_MAPINDEXTOID 6.00 and higher passes wParam to MapIndexToId method;
returns indirect result
0x10B5 LVM_MAPIDTOINDEX 6.00 and higher passes wParam to MapIdToIndex method;
returns indirect result
0x10B6 LVM_ISITEMVISIBLE 6.00 and higher translates to IsItemVisible method
0x10B7 LVM_EDITSUBITEM 6.10 and higher translates to EditSubItem method
0x10B8 LVM_ENSURESUBITEMVISIBLE 6.10 and higher translates to EnsureSubItemVisible method
0x10B9 LVM_GETCLIENTRECT 6.10 and higher passes FALSE and lParam to GetClientRect method;
returns TRUE
0x10BA LVM_GETFOCUSEDCOLUMN 6.10 and higher returns indirect result of GetFocusedColumn method
0x10BB LVM_SETOWNERDATACALLBACK 6.10 and higher passes wParam to SetOwnerDataCallback method;
returns TRUE
0x10BC LVM_RECOMPUTEITEMS 6.10 and higher passes lParam to RecomputeItems method;
returns TRUE
0x10BD LVM_QUERYINTERFACE 6.10 and higher passes wParam and lParam to QueryInterface method;
returns TRUE for success, else FALSE
0x10BE LVM_SETGROUPSUBSETCOUNT 6.10 and higher passes lParam to SetGroupSubsetCount method;
returns TRUE for success, else FALSE;
fails trivially if wParam is non-zero
0x10BF LVM_GETGROUPSUBSETCOUNT 6.10 and higher returns indirect result of GetGroupSubsetCount method;
returns zero trivially if wParam or lParam is non-zero
0x10C0 LVM_ORDERTOINDEX 6.10 and higher  
0x10C1 LVM_GETACCVERSION 6.10 and higher  
0x10C2 LVM_MAPACCIDTOACCINDEX 6.10 and higher  
0x10C3 LVM_MAPACCINDEXTOACCID 6.10 and higher  
0x10C4 LVM_GETOBJECTCOUNT 6.10 and higher  
0x10C5 LVM_GETOBJECTRECT 6.10 and higher  
0x10C6 LVM_ACCHITTEST 6.10 and higher  
0x10C7 LVM_GETFOCUSEDOBJECT 6.10 and higher  
0x10C8 LVM_GETOBJECTROLE 6.10 and higher  
0x10C9 LVM_GETOBJECTSTATE 6.10 and higher  
0x10CA LVM_ACCNAVIGATE 6.10 and higher  
0x10CB LVM_INVOKEDEFAULTACTION 6.10 and higher  
0x10CC LVM_GETEMPTYTEXT 6.10 and higher  
0x10CD LVM_GETFOOTERRECT 6.10 and higher  
0x10CE LVM_GETFOOTERINFO 6.10 and higher  
0x10CF LVM_GETFOOTERITEMRECT 6.10 and higher  
0x10D0 LVM_GETFOOTERITEM 6.10 and higher  
0x10D1 LVM_GETITEMINDEXRECT 6.10 and higher translates to GetSubItemRect method
0x10D2 LVM_SETITEMINDEXSTATE 6.10 and higher translates to SetItemState method
0x10D3 LVM_GETNEXTITEMINDEX 6.10 and higher translates to GetNextItem method
0x10D4 LVM_SETPRESERVEALPHA 6.10 and higher  

Microsoft’s documentation of LVM_GETGROUPCOUNT would have the desired number of groups being returned indirectly through a pointer passed in wParam. The documentation is incorrect, as might anyway be inferred from COMMCTRL.H where it defines the ListView_GetGroupCount macro. The number of groups is returned as the result of the message.