Listview V15
Dimitrie O. Paun
dpaun at rogers.com
Mon Oct 21 09:51:35 CDT 2002
ChangeLog
Updated header documentation to the latest, and greatest.
--- dlls/comctl32/listview.c.V14 Mon Oct 21 01:32:22 2002
+++ dlls/comctl32/listview.c Mon Oct 21 10:38:58 2002
@@ -22,29 +22,94 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* NOTES
- * Listview control implementation.
*
+ * This code was audited for completeness against the documented features
+ * of Comctl32.dll version 6.0 on Oct. 21, 2002, by Dimitrie O. Paun.
+ *
+ * Unless otherwise noted, we belive this code to be complete, as per
+ * the specification mentioned above.
+ * If you discover missing features, or bugs, please note them below.
+ *
* TODO:
* -- Hot item handling.
* -- Expand large item in ICON mode when the cursor is flying over the icon or text.
* -- Support CustonDraw options for _WIN32_IE >= 0x560 (see NMLVCUSTOMDRAW docs)
- *
+ * -- work areas
+ * -- tilemode
+ * -- groups
+ * -- FIXMEs (search for them)
+ *
+ * States
+ * -- LVIS_ACTIVATING (not currently supported my comctl32.dll version 6.0)
+ * -- LVIS_CUT
+ * -- LVIS_DROPHILITED
+ * -- LVIS_OVERLAYMASK
+ *
+ * Styles
+ * -- LVS_NOLABELWRAP
+ * -- LVS_NOSCROLL (see Q137520)
+ * -- LVS_SORTASCENDING, LVS_SORTDESCENDING
+ *
+ * Extended Styles
+ * -- LVS_EX_BORDERSELECT
+ * -- LVS_EX_CHECKBOXES
+ * -- LVS_EX_FLATSB
+ * -- LVS_EX_GRIDLINES
+ * -- LVS_EX_HEADERDRAGDROP
+ * -- LVS_EX_INFOTIP
+ * -- LVS_EX_LABELTIP
+ * -- LVS_EX_MULTIWORKAREAS
+ * -- LVS_EX_ONECLICKACTIVATE
+ * -- LVS_EX_REGIONAL
+ * -- LVS_EX_SIMPLESELECT
+ * -- LVS_EX_SUBITEMIMAGES
+ * -- LVS_EX_TRACKSELECT
+ * -- LVS_EX_TWOCLICKACTIVATE
+ * -- LVS_EX_UNDERLINECOLD
+ * -- LVS_EX_UNDERLINEHOT
+ *
* Notifications:
- * LISTVIEW_Notify : most notifications from editbox
- *
- * Data structure:
- * LISTVIEW_SetItemCount : not completed for non OWNERDATA
- *
- * Advanced functionality:
- * LISTVIEW_GetNumberOfWorkAreas : not implemented
- * LISTVIEW_GetISearchString : not implemented
- * LISTVIEW_GetBkImage : not implemented
- * LISTVIEW_SetBkImage : not implemented
- * LISTVIEW_GetColumnOrderArray : simple hack only
- * LISTVIEW_SetColumnOrderArray : simple hack only
- * LISTVIEW_Arrange : empty stub
- * LISTVIEW_ApproximateViewRect : incomplete
- * LISTVIEW_Update : not completed
+ * -- LVN_BEGINDRAG, LVN_BEGINRDRAG
+ * -- LVN_BEGINSCROLL, LVN_ENDSCROLL
+ * -- LVN_GETINFOTIP
+ * -- LVN_HOTTRACK
+ * -- LVN_MARQUEEBEGIN
+ * -- LVN_ODFINDITEM
+ * -- LVN_ODSTATECHANGED
+ * -- LVN_SETDISPINFO
+ * -- NM_HOVER
+ *
+ * Messages:
+ * -- LVM_CANCELEDITLABEL
+ * -- LVM_CREATEDRAGIMAGE
+ * -- LVM_ENABLEGROUPVIEW
+ * -- LVM_GETBKIMAGE, LVM_SETBKIMAGE
+ * -- LVM_GETGROUPINFO, LVM_SETGROUPINFO
+ * -- LVM_GETGROUPMETRICS, LVM_SETGROUPMETRICS
+ * -- LVM_GETINSERTMARK, LVM_SETINSERTMARK
+ * -- LVM_GETINSERTMARKCOLOR, LVM_SETINSERTMARKCOLOR
+ * -- LVM_GETINSERTMARKRECT
+ * -- LVM_GETNUMBEROFWORKAREAS
+ * -- LVM_GETOUTLINECOLOR, LVM_SETOUTLINECOLOR
+ * -- LVM_GETSELECTEDCOLUMN, LVM_SETSELECTEDCOLUMN
+ * -- LVM_GETISEARCHSTRINGW, LVM_GETISEARCHSTRINGA
+ * -- LVM_GETTILEINFO, LVM_SETTILEINFO
+ * -- LVM_GETTILEVIEWINFO, LVM_SETTILEVIEWINFO
+ * -- LVM_GETTOOLTIPS, LVM_SETTOOLTIPS
+ * -- LVM_GETUNICODEFORMAT, LVM_SETUNICODEFORMAT
+ * -- LVM_GETVIEW, LVM_SETVIEW
+ * -- LVM_GETWORKAREAS, LVM_SETWORKAREAS
+ * -- LVM_HASGROUP, LVM_INSERTGROUP, LVM_REMOVEGROUP, LVM_REMOVEALLGROUPS
+ * -- LVM_INSERTGROUPSORTED
+ * -- LVM_INSERTMARKHITTEST
+ * -- LVM_ISGROUPVIEWENABLED
+ * -- LVM_MAPIDTOINDEX, LVM_MAPINDEXTOID
+ * -- LVM_MOVEGROUP
+ * -- LVM_MOVEITEMTOGROUP
+ * -- LVM_SETINFOTIP
+ * -- LVM_SETTILEWIDTH
+ * -- LVM_SORTGROUPS
+ * -- LVM_SORTITEMSEX
*
* Known differences in message stream from native control (not known if
* these differences cause problems):
@@ -54,7 +119,6 @@
* processing for "USEDOUBLECLICKTIME".
*/
-
#include "config.h"
#include "wine/port.h"
@@ -8129,7 +8193,7 @@
case LVM_ARRANGE:
return LISTVIEW_Arrange(infoPtr, (INT)wParam);
-/* case LVN_CANCELEDITLABEL */
+/* case LVM_CANCELEDITLABEL: */
/* case LVM_CREATEDRAGIMAGE: */
@@ -8148,7 +8212,7 @@
case LVM_EDITLABELA:
return (LRESULT)LISTVIEW_EditLabelT(infoPtr, (INT)wParam, FALSE);
- /* case LVN_ENABLEGROUPVIEW: */
+ /* case LVM_ENABLEGROUPVIEW: */
case LVM_ENSUREVISIBLE:
return LISTVIEW_EnsureVisible(infoPtr, (INT)wParam, (BOOL)lParam);
@@ -8188,6 +8252,10 @@
case LVM_GETEXTENDEDLISTVIEWSTYLE:
return infoPtr->dwLvExStyle;
+ /* case LVM_GETGROUPINFO: */
+
+ /* case LVM_GETGROUPMETRICS: */
+
case LVM_GETHEADER:
return (LRESULT)infoPtr->hwndHeader;
@@ -8203,11 +8271,11 @@
case LVM_GETIMAGELIST:
return (LRESULT)LISTVIEW_GetImageList(infoPtr, (INT)wParam);
- /* case LVN_GETINSERTMARK: */
+ /* case LVM_GETINSERTMARK: */
- /* case LVN_GETINSERTMARKCOLOR: */
+ /* case LVM_GETINSERTMARKCOLOR: */
- /* case LVN_GETINSERTMARKRECT: */
+ /* case LVM_GETINSERTMARKRECT: */
case LVM_GETISEARCHSTRINGA:
case LVM_GETISEARCHSTRINGW:
@@ -8253,7 +8321,7 @@
LISTVIEW_GetOrigin(infoPtr, (LPPOINT)lParam);
return TRUE;
- /* case LVN_GETOUTLINECOLOR: */
+ /* case LVM_GETOUTLINECOLOR: */
/* case LVM_GETSELECTEDCOLUMN: */
@@ -8278,9 +8346,9 @@
case LVM_GETTEXTCOLOR:
return infoPtr->clrText;
- /* case LVN_GETTILEINFO: */
+ /* case LVM_GETTILEINFO: */
- /* case LVN_GETTILEVIEWINFO: */
+ /* case LVM_GETTILEVIEWINFO: */
case LVM_GETTOOLTIPS:
FIXME("LVM_GETTOOLTIPS: unimplemented\n");
@@ -8293,6 +8361,8 @@
FIXME("LVM_GETUNICODEFORMAT: unimplemented\n");
return FALSE;*/
+ /* case LVM_GETVIEW: */
+
case LVM_GETVIEWRECT:
return LISTVIEW_GetViewRect(infoPtr, (LPRECT)lParam);
@@ -8300,7 +8370,7 @@
FIXME("LVM_GETWORKAREAS: unimplemented\n");
return FALSE;
- /* case LVN_HASGROUP: */
+ /* case LVM_HASGROUP: */
case LVM_HITTEST:
return LISTVIEW_HitTest(infoPtr, (LPLVHITTESTINFO)lParam, FALSE, FALSE);
@@ -8311,9 +8381,9 @@
case LVM_INSERTCOLUMNW:
return LISTVIEW_InsertColumnT(infoPtr, (INT)wParam, (LPLVCOLUMNW)lParam, TRUE);
- /* case LVN_INSERTGROUP: */
+ /* case LVM_INSERTGROUP: */
- /* case LVN_INSERTGROUPSORTED: */
+ /* case LVM_INSERTGROUPSORTED: */
case LVM_INSERTITEMA:
return LISTVIEW_InsertItemT(infoPtr, (LPLVITEMW)lParam, FALSE);
@@ -8321,24 +8391,24 @@
case LVM_INSERTITEMW:
return LISTVIEW_InsertItemT(infoPtr, (LPLVITEMW)lParam, TRUE);
- /* case LVN_INSERTMARKHITTEST: */
+ /* case LVM_INSERTMARKHITTEST: */
- /* case LVN_ISGROUPVIEWENABLED: */
+ /* case LVM_ISGROUPVIEWENABLED: */
- /* case LVN_MAPIDTOINDEX: */
+ /* case LVM_MAPIDTOINDEX: */
- /* case LVN_INEDXTOID: */
+ /* case LVM_MAPINDEXTOID: */
- /* case LVN_MOVEGROUP: */
+ /* case LVM_MOVEGROUP: */
- /* case LVN_MOVEITEMTOGROUP: */
+ /* case LVM_MOVEITEMTOGROUP: */
case LVM_REDRAWITEMS:
return LISTVIEW_RedrawItems(infoPtr, (INT)wParam, (INT)lParam);
- /* case LVN_REMOVEALLGROUPS: */
+ /* case LVM_REMOVEALLGROUPS: */
- /* case LVN_REMOVEGROUP: */
+ /* case LVM_REMOVEGROUP: */
case LVM_SCROLL:
return LISTVIEW_Scroll(infoPtr, (INT)wParam, (INT)lParam);
@@ -8367,9 +8437,9 @@
case LVM_SETEXTENDEDLISTVIEWSTYLE:
return LISTVIEW_SetExtendedListViewStyle(infoPtr, (DWORD)wParam, (DWORD)lParam);
- /* case LVN_SETGROUPINFO: */
+ /* case LVM_SETGROUPINFO: */
- /* case LVN_SETGROUPMETRICS: */
+ /* case LVM_SETGROUPMETRICS: */
case LVM_SETHOTCURSOR:
return (LRESULT)LISTVIEW_SetHotCursor(infoPtr, (HCURSOR)lParam);
@@ -8386,11 +8456,11 @@
case LVM_SETIMAGELIST:
return (LRESULT)LISTVIEW_SetImageList(infoPtr, (INT)wParam, (HIMAGELIST)lParam);
- /* case LVN_SETINFOTIP: */
+ /* case LVM_SETINFOTIP: */
- /* case LVN_SETINSERTMARK: */
+ /* case LVM_SETINSERTMARK: */
- /* case LVN_SETINSERTMARKCOLOR: */
+ /* case LVM_SETINSERTMARKCOLOR: */
case LVM_SETITEMA:
return LISTVIEW_SetItemT(infoPtr, (LPLVITEMW)lParam, FALSE);
@@ -8420,9 +8490,9 @@
case LVM_SETITEMTEXTW:
return LISTVIEW_SetItemTextT(infoPtr, (INT)wParam, (LPLVITEMW)lParam, TRUE);
- /* case LVN_SETOUTLINECOLOR: */
+ /* case LVM_SETOUTLINECOLOR: */
- /* case LVN_SETSELECTEDCOLUMN: */
+ /* case LVM_SETSELECTEDCOLUMN: */
case LVM_SETSELECTIONMARK:
return LISTVIEW_SetSelectionMark(infoPtr, (INT)lParam);
@@ -8433,25 +8503,27 @@
case LVM_SETTEXTCOLOR:
return LISTVIEW_SetTextColor(infoPtr, (COLORREF)lParam);
- /* case LVN_SETTILEINFO: */
+ /* case LVM_SETTILEINFO: */
- /* case LVN_SETTILEVIEWINFO: */
+ /* case LVM_SETTILEVIEWINFO: */
- /* case LVN_SETTILEWIDTH: */
+ /* case LVM_SETTILEWIDTH: */
/* case LVM_SETTOOLTIPS: */
/* case LVM_SETUNICODEFORMAT: */
- /* case LVN_SETVIEW: */
+ /* case LVM_SETVIEW: */
/* case LVM_SETWORKAREAS: */
- /* case LVN_SORTGROUPS: */
+ /* case LVM_SORTGROUPS: */
case LVM_SORTITEMS:
return LISTVIEW_SortItems(infoPtr, (PFNLVCOMPARE)lParam, (LPARAM)wParam);
+ /* LVM_SORTITEMSEX: */
+
case LVM_SUBITEMHITTEST:
return LISTVIEW_HitTest(infoPtr, (LPLVHITTESTINFO)lParam, TRUE, FALSE);
More information about the wine-patches
mailing list