treeview: Initialize iImage and iSelectedImage with zero.
diff --git a/dlls/comctl32/tests/treeview.c b/dlls/comctl32/tests/treeview.c
index adf0ea4..ba14dd6 100644
--- a/dlls/comctl32/tests/treeview.c
+++ b/dlls/comctl32/tests/treeview.c
@@ -70,6 +70,7 @@
static void FillRoot(void)
{
TVINSERTSTRUCTA ins;
+ TVITEM tvi;
static CHAR root[] = "Root",
child[] = "Child";
@@ -82,6 +83,13 @@
hRoot = TreeView_InsertItem(hTree, &ins);
assert(hRoot);
+ /* UMLPad 1.15 depends on this being not -1 (I_IMAGECALLBACK) */
+ tvi.hItem = hRoot;
+ tvi.mask = TVIF_IMAGE | TVIF_SELECTEDIMAGE;
+ SendMessage( hTree, TVM_GETITEM, 0, (LPARAM)&tvi );
+ ok(tvi.iImage == 0, "tvi.iImage=%d\n", tvi.iImage);
+ ok(tvi.iSelectedImage == 0, "tvi.iSelectedImage=%d\n", tvi.iSelectedImage);
+
AddItem('B');
ins.hParent = hRoot;
ins.hInsertAfter = TVI_FIRST;
diff --git a/dlls/comctl32/treeview.c b/dlls/comctl32/treeview.c
index aefce78..4fb2a32 100644
--- a/dlls/comctl32/treeview.c
+++ b/dlls/comctl32/treeview.c
@@ -1010,8 +1010,12 @@
if (!newItem)
return NULL;
- newItem->iImage = -1;
- newItem->iSelectedImage = -1;
+ /* I_IMAGENONE would make more sense but this is neither what is
+ * documented (MSDN doesn't specify) nor what Windows actually does
+ * (it sets it to zero)... and I can so imagine an application using
+ * inc/dec to toggle the images. */
+ newItem->iImage = 0;
+ newItem->iSelectedImage = 0;
if (DPA_InsertPtr(infoPtr->items, INT_MAX, newItem) == -1)
{