49#define expect(expected, got) ok(got == expected, "Expected %d, got %d\n", expected, got)
50#define expect2(expected1, expected2, got1, got2) ok(expected1 == got1 && expected2 == got2, \
51 "expected (%d,%d), got (%d,%d)\n", expected1, expected2, got1, got2)
54 {
'L',
'i',
's',
't',
'v',
'i',
'e',
'w',
' ',
't',
'e',
's',
't',
' ',
'p',
'a',
'r',
'e',
'n',
't',
'W', 0};
87#define X(f) p##f = (void*)GetProcAddress(hComCtl32, #f);
98 { WM_NOTIFYFORMAT,
sent },
190 { WM_STYLECHANGING,
sent },
191 { WM_STYLECHANGED,
sent },
471 static LONG defwndproc_counter = 0;
516 "text limit %d, expected 259\n",
len);
531 ok(
IsWindow(edit),
"expected valid edit control handle\n");
558 static const WCHAR testW[] = {
'T',
'E',
'S',
'T',0};
587 case WM_NOTIFYFORMAT:
595 defwndproc_counter++;
600 defwndproc_counter--;
642 static const WCHAR nameW[] = {
't',
'e',
's',
't',
'p',
'a',
'r',
'e',
'n',
't',
'n',
'a',
'm',
'e',
'W',0};
659 "Listview test parent window",
671 static LONG defwndproc_counter = 0;
684 defwndproc_counter++;
686 defwndproc_counter--;
754 static LONG defwndproc_counter = 0;
766 defwndproc_counter++;
768 defwndproc_counter--;
788 static LONG defwndproc_counter = 0;
808 defwndproc_counter++;
810 defwndproc_counter--;
844 ok_(__FILE__,
line)(lpht.
iSubItem == 10,
"Expected subitem not overwrited\n");
852 else if (broken_flags)
854 "Expected flags %x, got %x\n",
flags, lpht.
flags);
859#define test_lvm_hittest(a,b,c,d,e,f,g,h) test_lvm_hittest_(a,b,c,d,e,f,g,h,__LINE__)
886#define test_lvm_subitemhittest(a,b,c,d,e,f,g,h,i) test_lvm_subitemhittest_(a,b,c,d,e,f,g,h,i,__LINE__)
898 himl = pImageList_Create(40, 40, 0, 4, 4);
899 ok(
himl !=
NULL,
"failed to create imagelist\n");
902 ok(
hbmp !=
NULL,
"failed to create bitmap\n");
905 ok(
r == 0,
"should be zero\n");
909 ok(
hwnd !=
NULL,
"failed to create listview window\n");
914 ok(
r == 0,
"should return zero\n");
917 ok(
r == 0,
"should return zero\n");
920 ok(
r != 0,
"got 0\n");
925 ok(
r == 0,
"should be zero items\n");
933 ok(
r == -1,
"should fail\n");
938 ok(
r == 0,
"should not fail\n");
945 ok(
r ==
TRUE,
"should not fail\n");
950 ok(
r == 0,
"should not fail\n");
972 ok(
hwnd !=
NULL,
"failed to create listview window\n");
976 item.stateMask = 0xffff;
986 item.stateMask = 0xffff;
989 ok(
item.state == 0xfccc,
"state %x\n",
item.state);
993 item.stateMask = 0xffff;
1003 item.stateMask = 0xffff;
1006 ok(
item.state == 0,
"state %x\n",
item.state);
1014 item.stateMask = 0xffff;
1017 if (
item.state != 0x1ccc)
1019 win_skip(
"LVS_EX_CHECKBOXES style is unavailable. Skipping.\n");
1028 item.pszText = text2;
1034 item.stateMask = 0xffff;
1037 ok(
item.state == 0x1000,
"state %x\n",
item.state);
1042 item.stateMask = 0xffff;
1043 item.state = 0x2aaa;
1044 item.pszText = text3;
1050 item.stateMask = 0xffff;
1053 ok(
item.state == 0x1aaa,
"state %x\n",
item.state);
1058 item.stateMask = 0xf000;
1059 item.state = 0x2000;
1065 item.stateMask = 0xffff;
1068 ok(
item.state == 0x2aaa,
"state %x\n",
item.state);
1075 item.stateMask = 0xf000;
1076 item.state = 0xffff;
1079 ok(
item.state == 0x2000,
"state %x\n",
item.state);
1087 item.stateMask = 0xffff;
1090 ok(
item.state == 0x2aaa,
"state %x\n",
item.state);
1098 item.stateMask = 0xffff;
1101 ok(
item.state == 0x2aaa,
"state %x\n",
item.state);
1109 item.stateMask = 0xffff;
1112 ok(
item.state == 0x1aaa,
"state %x\n",
item.state);
1126 item.stateMask = 0xffff;
1129 ok(
item.state == 0x1aab,
"state %x\n",
item.state);
1138 item.stateMask = 0xffff;
1141 ok(
item.state == 0x2aab,
"state %x\n",
item.state);
1150 item.stateMask = 0xffff;
1153 ok(
item.state == 0x1aab,
"state %x\n",
item.state);
1190 const LPARAM lparamTest = 0x42;
1199 ok(
hwnd !=
NULL,
"failed to create listview window\n");
1230 ok(
r,
"got %d\n",
r);
1253 ok(
r,
"got %d\n",
r);
1276 ok(
r,
"got %d\n",
r);
1283 item.lParam = lparamTest;
1294 ok(
item.lParam == lparamTest,
"got lParam %lx, expected %lx\n",
item.lParam, lparamTest);
1308 item.pszText = buffA;
1309 item.cchTextMax =
sizeof(buffA);
1326 item.pszText = buffA;
1328 item.cchTextMax =
sizeof(buffA);
1331 ok(
item.pszText[0] == 0,
"got %p\n",
item.pszText);
1346 item.pszText = buffA;
1348 item.cchTextMax =
sizeof(buffA);
1361 ok(
item.lParam == lparamTest,
"got lParam %lx, expected %lx\n",
item.lParam, lparamTest);
1368 item.lParam = lparamTest+1;
1379 ok(
item.lParam == lparamTest,
"got lParam %lx, expected %lx\n",
item.lParam, lparamTest);
1399 item.stateMask = -1;
1440 "check callback text comparison rule",
FALSE);
1456 ok(
hwnd !=
NULL,
"failed to create listview window\n");
1462 ok(rc == 0,
"got %d\n", rc);
1471 ok(
hwnd !=
NULL,
"failed to create listview window\n");
1474 ok(!rc,
"got %d\n", rc);
1477 ok(!rc,
"got %d\n", rc);
1483 ok(rc == 0,
"Inserting column with no mask failed with %d\n", rc);
1487 ok(rc == 10,
"Inserting column with no mask failed to set width to 10 with %d\n", rc);
1509 ok(
order[0] == 0,
"Expected order 0, got %d\n",
order[0]);
1510 ok(
order[1] == 1,
"Expected order 1, got %d\n",
order[1]);
1546 "get subitem text after column added",
FALSE);
1570#define TEST_NO_HEADER(a) test_header_presence_(a, FALSE, __LINE__)
1571#define TEST_HEADER_EXPECTED(a) test_header_presence_(a, TRUE, __LINE__)
1572#define TEST_NO_HEADER2(a, b) test_header_presence_(a, b, __LINE__)
1592 static const WCHAR testtextW[] = {
't',
'e',
's',
't',
' ',
't',
'e',
'x',
't',0};
1606 win_skip(
"Skipping some tests on XP.\n");
1612 ok(
r,
"Failed to get class info.\n");
1617 ok(
class,
"Failed to register class.\n");
1620 hList =
CreateWindowA(
"MyListView32",
"Test",
WS_VISIBLE, 0, 0, 100, 100,
NULL,
NULL,
GetModuleHandleA(
NULL), 0);
1628 hList =
CreateWindowA(
WC_LISTVIEWA,
"Test",
WS_VISIBLE, 0, 0, 100, 100,
NULL,
NULL,
GetModuleHandleA(
NULL), 0);
1757 ok(
r == 1,
"Unexpected ret value %d.\n",
r);
1759 ok(
rect.bottom >= 0,
"Unexpected rectangle.\n");
1769 "created with LVS_OWNERDRAWFIXED|LVS_REPORT - parent seq",
FALSE);
1775 ok(
hList !=
NULL,
"Failed to create ListView window.\n");
1783 ok(
hList !=
NULL,
"Failed to create ListView window.\n");
1790 ok(
r,
"Failed to unregister test class.\n");
1821 ok(
r == 1,
"Expected not zero result\n");
1823 "forward WM_ERASEBKGND on CLR_NONE",
FALSE);
1832 "don't forward WM_ERASEBKGND on non-CLR_NONE",
FALSE);
1844 "forward WM_ERASEBKGND on CLR_NONE",
FALSE);
1853 "don't forward WM_ERASEBKGND on non-CLR_NONE",
FALSE);
1900 ok(clr == c0ffee,
"clr=%.8x\n", clr);
1981 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
2024 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
2028 for (
i = 0;
i < 4;
i++)
2060 ok(
rect.right == 0 &&
rect.bottom == 0,
"got update rectangle\n");
2070 ok(
rect.right == 0 &&
rect.bottom == 0,
"got update rectangle\n");
2080 ok(
rect.right == 0 &&
rect.bottom == 0,
"got update rectangle\n");
2100 static CHAR item0text[] =
"item0";
2101 static CHAR item1text[] =
"item1";
2102 static CHAR item2text[] =
"item2";
2105 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
2137 item1.pszText = item1text;
2145 item2.pszText = item2text;
2201 static CHAR item0text[] =
"item0";
2202 static CHAR item1text[] =
"item1";
2203 static CHAR item2text[] =
"item2";
2206 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
2222 item1.pszText = item1text;
2230 item2.pszText = item2text;
2250 expect2(20, 20, position.
x, position.
y);
2266 position.
x = position.
y = 0;
2269 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
2278 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
2287 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
2296 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
2307 typedef struct t_select_task
2319 static const int items=5;
2326 static struct t_select_task
task_list[] = {
2327 {
"using VK_DOWN", 0,
VK_DOWN, -1, -1 },
2328 {
"using VK_UP", -1,
VK_UP, -1, -1 },
2329 {
"using VK_END", 0,
VK_END, 1, -1 },
2330 {
"using VK_HOME", -1,
VK_HOME, 1, -1 }
2342 ok(
r == -1,
"got %d\n",
r);
2345 ok(
r == -1,
"got %d\n",
r);
2348 ok(
r == 0,
"got %d\n",
r);
2352 ok(
r == 0,
"got %d\n",
r);
2355 ok(
r == 0,
"got %d\n",
r);
2358 ok(
r == 0,
"got %d\n",
r);
2361 ok(
r == 0,
"got %d\n",
r);
2364 DWORD selected_count;
2373 ok(
r,
"got %d\n",
r);
2378 ok(
r,
"got %d\n",
r);
2383 ok(
r,
"got %d\n",
r);
2386 ok(selected_count == 1,
"expected 1, got %d\n", selected_count);
2393 for (
j=1;
j<=(task.count == -1 ? item_count : task.count);
j++) {
2402 ok((task.result == -1 ? item_count : task.result) == selected_count,
2403 "Failed multiple selection %s. There should be %d selected items (is %d)\n",
2404 task.descr, item_count, selected_count);
2429 ok(
r,
"got %d\n",
r);
2439 "select all notification",
FALSE);
2456 "select all notification 2",
FALSE);
2464 ok(
r,
"got %d\n",
r);
2467 "deselect all notification",
FALSE);
2491 "set state all notification 3",
FALSE);
2494 ok(
r,
"got %d\n",
r);
2495 for (
i = 0;
i < 3;
i++) {
2499 ok(
r,
"got %d\n",
r);
2521 ok(
r == -1,
"got %d\n",
r);
2527 ok(
r,
"got %d\n",
r);
2548 ok(
r == -1,
"got %d\n",
r);
2711 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
2769 ok(
r,
"got %d\n",
r);
2805 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
2842 arr[0] = 1; arr[1] = 0; arr[2] = 2;
2864 ok(
rect2.
top > 0,
"expected positive item height\n");
2893 if (
first == second)
return 0;
2894 return (
first > second ? 1 : -1);
2903 static CHAR names[][5] = {
"A",
"B",
"C",
"D",
"0"};
2907 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
2957 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
3077 static char test_str[] =
"test";
3087 win_skip(
"set LVS_OWNERDATA after creation leads to crash on < 5.80\n");
3092 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
3099 ok(
ret ==
style,
"Expected set GWL_STYLE to succeed\n");
3101 "try to switch to LVS_OWNERDATA seq",
FALSE);
3110 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
3117 ok(
ret ==
style,
"Expected set GWL_STYLE to succeed\n");
3119 "try to switch to LVS_OWNERDATA seq",
FALSE);
3125 win_skip(
"remove LVS_OWNERDATA after creation leads to crash on < 5.80\n");
3130 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
3137 ok(
ret ==
style,
"Expected set GWL_STYLE to succeed\n");
3139 "try to switch to LVS_OWNERDATA seq",
FALSE);
3147 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
3165 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
3178 item.pszText = test_str;
3185 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
3198 "ownerdata select notification",
TRUE);
3209 "ownerdata focus notification",
TRUE);
3234 "ownerdata select all notification",
FALSE);
3253 "ownerdata select all notification",
FALSE);
3272 "ownerdata deselect all notification",
TRUE);
3305 "ownerdata select all notification",
TRUE);
3329 "ownerdata focus all notification",
FALSE);
3352 "ownerdata remove focus all notification",
TRUE);
3371 "ownerdata cut all notification",
FALSE);
3390 "ownerdata cut all notification #2",
FALSE);
3397 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
3410 "ownerdata getitem selected state 1",
FALSE);
3425 "ownerdata getitem selected state 2",
FALSE);
3437 "ownerdata getitem selected state 2",
FALSE);
3443 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
3453 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
3462 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
3472 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
3486 "ownerdata setitemcount",
FALSE);
3503 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
3543 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
3572 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
3590 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
3616 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
3666 "redraw after WM_SETREDRAW (FALSE)",
FALSE);
3674 "redraw after WM_SETREDRAW (FALSE) with CLR_NONE bkgnd",
FALSE);
3682 "WM_SETREDRAW: not forwarded to header",
FALSE);
3693 static CHAR text[] =
"1234567890ABCDEFGHIJKLMNOPQRST";
3701 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
3722 ok(bounds.
bottom - bounds.
top > 0,
"Expected non zero item height\n");
3723 ok(bounds.
right - bounds.
left > 0,
"Expected non zero item width\n");
3727 "Vertical spacing inconsistent (%d != %d)\n", bounds.
bottom - bounds.
top, vert);
3760 y = bounds.
top - vert;
3806 himl = pImageList_Create(16, 16, 0, 4, 4);
3807 ok(
himl !=
NULL,
"failed to create imagelist\n");
3809 ok(
hbmp !=
NULL,
"failed to create bitmap\n");
3811 ok(
r == 0,
"should be zero\n");
3813 ok(
hbmp !=
NULL,
"failed to create bitmap\n");
3815 ok(
r == 1,
"should be one\n");
3851 ok(himl2 ==
himl,
"should return handle\n");
3874 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
3887 ok(!
r,
"got %d\n",
r);
3911 ok(
rect.bottom > 0,
"Expected positive bottom value, got %d\n",
rect.bottom);
3912 ok(
rect.right > 0,
"Expected positive right value, got %d\n",
rect.right);
3925 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
3950 ok(
r,
"got %d\n",
r);
3965 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
4004 ok((
rect.right /
rect.bottom) >= 5,
"got right %d, bottom %d\n",
rect.right,
rect.bottom);
4008 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
4096 himl = pImageList_Create(16, 16, 0, 2, 2);
4097 ok(
himl !=
NULL,
"failed to create imagelist\n");
4099 ok(
hbm !=
NULL,
"failed to create bitmap\n");
4103 ok(
hbm !=
NULL,
"failed to create bitmap\n");
4134 ok(himl_ret ==
himl,
"got %p, expected %p\n", himl_ret,
himl);
4142 item.stateMask = ~0;
4216 static CHAR testitemA[] =
"testitem";
4217 static CHAR testitem1A[] =
"testitem_quitelongname";
4218 static CHAR testitem2A[] =
"testITEM_quitelongname";
4225 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
4231 item.pszText = testitemA;
4242 "edit box WM_COMMAND (EN_SETFOCUS), no edit created",
FALSE);
4250 "edit box WM_COMMAND (EN_SETFOCUS), no edit created #2",
FALSE);
4256 ok(
IsWindow(hwndedit),
"Expected Edit window to be created\n");
4285 ok(
strcmp(
buffer, testitem1A) == 0,
"Expected item text to change\n");
4290 ok(
IsWindow(hwndedit),
"Expected Edit window to be created\n");
4292 ok(
GetFocus() == hwndedit,
"Expected Edit window to be focused\n");
4294 ok(
IsWindow(hwndedit2),
"Expected Edit window to be created\n");
4299 todo_wine ok(hwndedit ==
NULL,
"Expected Edit window not to be created\n");
4303 item.pszText = testitemA;
4311 ok(
IsWindow(hwndedit),
"Expected Edit window to be created\n");
4327 ok(
strcmp(
buffer, testitem1A) == 0,
"Expected item text to change\n");
4328 ok(!
IsWindow(hwndedit),
"Expected Edit window to be freed\n");
4333 ok(
IsWindow(hwndedit),
"Expected Edit window to be created\n");
4350 ok(!
IsWindow(hwndedit),
"Expected Edit window to be freed\n");
4359 "edit box - end edit, no change, escape",
TRUE);
4367 "edit box - end edit, no change, return",
TRUE);
4376 ok(
strcmp(
buffer, testitem2A) == 0,
"Expected item text to change\n");
4380 ok(hwndedit ==
NULL,
"Expected Edit window not to be created\n");
4383 ok(hwndedit ==
NULL,
"Expected Edit window not to be created\n");
4385 ok(
IsWindow(hwndedit),
"Expected Edit window to be created\n");
4387 ok(
GetFocus() == hwndedit,
"Expected Edit to be focused\n");
4389 ok(hwndedit2 ==
NULL,
"Expected Edit window not to be created\n");
4390 ok(!
IsWindow(hwndedit),
"Expected Edit window to be destroyed\n");
4394 ok(
IsWindow(hwndedit),
"Expected Edit window to be created\n");
4395 ok(
GetFocus() == hwndedit,
"Expected Edit to be focused\n");
4397 ok(hwndedit2 ==
NULL,
"Expected Edit window not to be created\n");
4398 ok(!
IsWindow(hwndedit),
"Expected Edit window to be destroyed\n");
4402 ok(
IsWindow(hwndedit),
"Expected Edit window to be created\n");
4403 ok(
GetFocus() == hwndedit,
"Expected Edit to be focused\n");
4406 ok(hwndedit2 ==
NULL,
"Expected Edit window not to be created\n");
4407 ok(!
IsWindow(hwndedit),
"Expected Edit window to be destroyed\n");
4415 ok(
IsWindow(hwndedit),
"Expected Edit window to be created\n");
4418 "edit box create - sizing",
FALSE);
4423 ok(
IsWindow(hwndedit),
"Expected Edit window to be created\n");
4428 "edit box WM_COMMAND (EN_KILLFOCUS)",
TRUE);
4439 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
4450 ok(
r == 1,
"Unexpected return value %d.\n",
r);
4461 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
4467 ok(
r == 1,
"Expected 1, got %d\n",
r );
4469 ok(
r != 0,
"Expected valid format\n");
4477 ok(
r == 1,
"Expected 1, got %d\n",
r );
4485 ok(
r == 1,
"Expected 1, got %d\n",
r );
4495 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
4506 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
4517 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
4528 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
4539 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
4558 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
4575 "get indent dispinfo",
FALSE);
4591 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
4609 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
4663 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
4672 "cancel edit label without edit",
FALSE);
4677 ok(
IsWindow(hwndedit),
"Expected edit control to be created\n");
4680 ok(!
IsWindow(hwndedit),
"Expected edit control to be destroyed\n");
4683 memset(&itema, 0,
sizeof(itema));
4689 ok(
IsWindow(hwndedit),
"Expected edit control to be created\n");
4694 ok(!
IsWindow(hwndedit),
"Expected edit control to be destroyed\n");
4695 memset(&itema, 0,
sizeof(itema));
4712 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
4719 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
4776 himl40 = pImageList_Create(40, 40, 0, 4, 4);
4777 ok(himl40 !=
NULL,
"failed to create imagelist\n");
4778 himl80 = pImageList_Create(80, 80, 0, 4, 4);
4779 ok(himl80 !=
NULL,
"failed to create imagelist\n");
4823 if (
sizeof(
void*) == 8)
4846 pImageList_Destroy(himl80);
4864 pImageList_Destroy(himl40);
4940 memset(&itema, 0,
sizeof(itema));
4971 "scroll notify 1",
TRUE);
4977 "scroll notify 2",
TRUE);
4983 "scroll notify 3",
TRUE);
5000 LVS_EX_TRANSPARENTBKGND);
5005 win_skip(
"LVS_EX_TRANSPARENTBKGND unsupported\n");
5014 ok(!(
ret & LVS_EX_TRANSPARENTBKGND),
"Expected LVS_EX_TRANSPARENTBKGND to unset\n");
5018 LVS_EX_TRANSPARENTBKGND);
5025 "LVS_EX_TRANSPARENTBKGND parent",
FALSE);
5034 static CHAR test[] =
"abracadabra, a very long item label";
5035 DWORD item_width, item_height, header_height;
5036 static CHAR column_header[] =
"Header";
5037 unsigned const column_width = 100;
5047 himl = pImageList_Create(40, 40, 0, 4, 4);
5048 ok(
himl !=
NULL,
"failed to create imagelist\n");
5050 ok(
hbmp !=
NULL,
"failed to create bitmap\n");
5064 ok(
ret != 0,
"Unexpected return value %#x.\n",
ret);
5070 ok(
ret != 0,
"got 0\n");
5124 item_height =
HIWORD(
ret) - header_height;
5132 ok(
HIWORD(
ret) == header_height,
"Unexpected height.\n");
5140 col.
cx = column_width;
5142 ok(
ret == 0,
"Unexpected return value %d.\n",
ret);
5158 item_height =
HIWORD(
ret) - header_height;
5172 for (item_count = 1; item_count <= 2; ++item_count)
5179 ok(
ret == 0,
"Unexpected return value %d.\n",
ret);
5191 ok(
HIWORD(
ret) > header_height,
"Unexpected height %d. item %d.\n",
HIWORD(
ret), item_count - 1);
5193 item_height =
HIWORD(
ret) - header_height;
5202 ok(
HIWORD(
ret) == header_height + item_count * item_height,
"Unexpected height %d.\n",
HIWORD(
ret));
5237 memset(&fi, 0,
sizeof(fi));
5320 LVS_EX_HEADERINALLVIEWS);
5325 win_skip(
"LVS_EX_HEADERINALLVIEWS unsupported\n");
5352 LVS_EX_HEADERINALLVIEWS);
5359 LVS_EX_HEADERINALLVIEWS);
5366 LVS_EX_HEADERINALLVIEWS);
5382 skip(
"Window is not in the foreground. Skipping hover tests.\n");
5413 ok(
hwnd !=
NULL,
"failed to create listview window\n");
5421 ok(
hwnd !=
NULL,
"failed to create listview window\n");
5428 ok(
hwnd !=
NULL,
"failed to create listview window\n");
5439 static char textA[] =
"newtext";
5448 ok(
list !=
NULL,
"failed to create listview window\n");
5450 memset(&col, 0,
sizeof(col));
5467 "header notify, listview",
FALSE);
5469 "header notify, parent",
FALSE);
5498 static char textA[] =
"newtext";
5505 struct message parent_header_notify_seq[] = {
5511 ok(
list !=
NULL,
"failed to create listview window\n");
5513 memset(&col, 0,
sizeof(col));
5541 "header notify, parent",
TRUE);
5550 "header notify, parent",
TRUE);
5560 "header notify, parent",
FALSE);
5567 "header notify, parent",
FALSE);
5574 "header notify, parent",
TRUE);
5581 "header notify, parent",
FALSE);
5589 "header notify, parent",
FALSE);
5597 "header notify, parent",
FALSE);
5604 "header notify, parent",
FALSE);
5611 "header notify, parent",
FALSE);
5619 "header notify, parent",
FALSE);
5620 parent_header_notify_seq[0].
flags &= ~optional;
5626 "header notify, parent",
FALSE);
5632 "header notify, parent",
FALSE);
5638 "header notify, parent",
FALSE);
5644 "header notify, parent",
FALSE);
5658 ok(
list !=
NULL,
"failed to create listview window\n");
5668 pImageList_Destroy(
himl);
5675 static const char testA[] =
"TEST";
5682 ok(
hwnd !=
NULL,
"failed to create listview window\n");
5699 "got %s, expected %s\n",
item.pszText,
testA);
5706 static char testA[] =
"TEST";
5712 ok(
hwnd !=
NULL,
"failed to create listview window\n");
5725 item.cchTextMax = 0;
5746 ok(
list !=
NULL,
"failed to create listview window\n");
5783 himl1 = pImageList_Create(40, 40, 0, 4, 4);
5784 himl2 = pImageList_Create(40, 40, 0, 4, 4);
5785 himl3 = pImageList_Create(40, 40, 0, 4, 4);
5786 ok(himl1 !=
NULL,
"Failed to create imagelist\n");
5787 ok(himl2 !=
NULL,
"Failed to create imagelist\n");
5788 ok(himl3 !=
NULL,
"Failed to create imagelist\n");
5802 "set normal image list",
FALSE);
5809 "set state image list",
TRUE);
5819 "set small image list",
FALSE);
5832 "set normal image list",
FALSE);
5839 "set state image list",
FALSE);
5846 "set small image list",
FALSE);
5987 ok(proc1 == proc2,
"got %p, expected %p\n", proc1, proc2);
5997 int min_timeout = 100;
6011 char item1[] =
"item1";
6020 ok(
hwnd !=
NULL,
"failed to create listview window\n");
6022 ok(
r == 0,
"should return zero\n");
6029 skip(
"Window is not in the foreground. Skipping oneclickactivate tests.\n");
6040 ok(
r == 0,
"should not fail\n");
6049 track.
cbSize =
sizeof(track);
6051 p_TrackMouseEvent(&track);
6090 ok(
mask == 0,
"Unexpected callback mask %#x.\n",
mask);
6093 ok(
ret,
"Failed to set callback mask, %d\n",
ret);
6099 ok(
ret,
"Failed to set item count.\n");
6102 ok(
ret == -1,
"Unexpected selection mark, %d\n",
ret);
6107 ok(
ret,
"Failed to set item state.\n");
6113 ok(
ret == 0,
"Unexpected focused item, ret %d\n",
ret);
6117 ok(
ret == 0,
"Unexpected selection mark, %d\n",
ret);
6120 ok(
ret,
"Failed to set item count.\n");
6123 ok(
ret == -1,
"Unexpected focused item, ret %d\n",
ret);
6126 ok(
ret == -1,
"Unexpected selection mark, %d\n",
ret);
6129 ok(
ret,
"Failed to set item count.\n");
6132 ok(
ret == -1,
"Unexpected focused item, ret %d\n",
ret);
6138 ok(
ret,
"Failed to set callback mask, %d\n",
ret);
6141 ok(
ret,
"Failed to set item count.\n");
6144 ok(
ret == -1,
"Unexpected selection mark, %d\n",
ret);
6149 ok(
ret,
"Failed to set item state.\n");
6152 ok(
ret == 0,
"Unexpected selection mark, %d\n",
ret);
6157 ok(
ret == 0,
"Unexpected focused item, ret %d\n",
ret);
6160 ok(
ret,
"Failed to set item count.\n");
6163 ok(
ret == -1,
"Unexpected focused item, ret %d\n",
ret);
6167 ok(
ret == -1,
"Unexpected selection mark, %d\n",
ret);
6170 ok(
ret,
"Failed to set item count.\n");
6173 ok(
ret == -1,
"Unexpected focused item, ret %d\n",
ret);
6181 ok(
ret,
"Failed to set item count.\n");
6184 ok(
ret,
"Failed to set item state.\n");
6187 ok(
ret == 0,
"Unexpected focused item, ret %d\n",
ret);
6190 ok(
ret,
"Failed to set item count.\n");
6193 ok(
ret == 0,
"Unexpected focused item, ret %d\n",
ret);
6196 "parent seq, owner data/focus 3",
TRUE);
6203 static const DWORD styles[] =
6214 static char text[] =
"Item";
6215 static char subtext[] =
"Subitem";
6230 item.lParam = 123456;
6232 ok(
r == 0,
"Failed to insert an item.\n");
6240 ok(
r,
"Failed to set item state.\n");
6245 item.pszText = subtext;
6247 ok(
r,
"Failed to set subitem text.\n");
6250 item.stateMask = ~0
u;
6256 ok(
r,
"Failed to get item state.\n");
6258 "Unexpected item state %#x.\n",
item.state);
6259 ok(
item.lParam == 123456,
"Unexpected lParam %ld.\n",
item.lParam);
6262 item.stateMask = ~0
u;
6267 ok(
r,
"Failed to get subitem state.\n");
6271 item.stateMask = ~0
u;
6277 ok(
r,
"Failed to get subitem state.\n");
6278 ok(
item.state == 0,
"Unexpected state %#x.\n",
item.state);
6279 ok(
item.lParam == 123456,
"Unexpected lParam %ld.\n",
item.lParam);
6287 ok(
r,
"Failed to get subitem state.\n");
6288 ok(
item.state == 0,
"Unexpected state %#x.\n",
item.state);
6291 item.stateMask = ~0
u;
6296 ok(
r,
"Failed to get subitem state.\n");
6298 ok(
item.state == 0,
"Unexpected state %#x.\n",
item.state);
6306 ok(
r,
"Failed to get subitem text %d.\n",
r);
6320 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
6327 ok(
ret,
"Failed to set column width.\n");
6334 ok(
ret == 0,
"Unexpected previous extended style.\n");
6337 ok(
ret,
"Failed to set column width.\n");
6340 ok(width2 > 0,
"Unexpected column width %d.\n", width2);
6341 ok(width2 >
width,
"Expected increased column width.\n");
6348 ok(
ret,
"Failed to set column width.\n");
6351 ok(
width > 0,
"Unexpected column width %d.\n", width2);
6352 ok(width2 >
width,
"Expected reduced column width.\n");
6375 ok(hwndedit !=
NULL,
"Failed to get edit control.\n");
6378 ok(
ret,
"Failed to set edit text.\n");
6388 ok(hwndedit !=
NULL,
"Failed to get edit control.\n");
6391 ok(
ret,
"Failed to set edit text.\n");
6400 "Label edit, kill focus",
FALSE);
6427 ok(
ret,
"Failed to get class info.\n");
6432 ok(
class,
"Failed to register class.\n");
6436 static char text[] =
"item text";
6441 ok(
hwnd !=
NULL,
"Failed to create listview window.\n");
6449 for (
j = 0;
j < 10;
j++)
6458 ok(
count == count2,
"%u: unexpected count %u.\n",
i, count2);
6460 ok(count2 == 10,
"%u: unexpected count %u.\n",
i, count2);
6466 ok(
hwnd !=
NULL,
"Failed to create a window.\n");
6475 ok(
ret,
"Failed to unregister test class.\n");
6499 ok(
res,
"Failed to set item state.\n");
6514 ok(
res,
"Failed to set item state.\n");
6530 ok(
res,
"Failed to set item.\n");
6545 ok(
res,
"Failed to set item.\n");
int strcmp(const char *String1, const char *String2)
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
char * strcpy(char *DstString, const char *SrcString)
static const char * wine_dbgstr_rect(const RECT *prc)
static const WCHAR nameW[]
static void init_msg_sequences(struct msg_sequence **seq, int n)
static void flush_sequences(struct msg_sequence **seq, int n)
BOOL WINAPI _TrackMouseEvent(TRACKMOUSEEVENT *ptme)
INT WINAPI ImageList_Add(HIMAGELIST himl, HBITMAP hbmImage, HBITMAP hbmMask)
BOOL WINAPI ImageList_Destroy(HIMAGELIST himl)
HIMAGELIST WINAPI ImageList_Create(INT cx, INT cy, UINT flags, INT cInitial, INT cGrow)
HMODULE WINAPI GetModuleHandleW(LPCWSTR lpModuleName)
HMODULE WINAPI DECLSPEC_HOTPATCH GetModuleHandleA(LPCSTR lpModuleName)
HINSTANCE WINAPI DECLSPEC_HOTPATCH LoadLibraryA(LPCSTR lpLibFileName)
DWORD WINAPI GetTickCount(VOID)
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
static const WCHAR itemW[]
static unsigned char buff[32768]
GLint GLint GLint GLint GLint x
GLint GLint GLint GLint GLint GLint y
GLuint GLuint GLsizei count
GLint GLint GLsizei GLsizei height
GLdouble GLdouble GLdouble r
GLint GLint GLsizei width
GLuint GLdouble GLdouble GLint GLint order
GLubyte GLubyte GLubyte GLubyte w
GLfloat GLfloat GLfloat GLfloat h
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble * u
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
static const WCHAR testW[]
int WINAPI lstrcmpA(LPCSTR lpString1, LPCSTR lpString2)
int WINAPI lstrlenA(LPCSTR lpString)
#define memcpy(s1, s2, n)
static const char textA[]
static const struct message textcallback_set_again_parent_seq[]
static NMLVDISPINFOA g_editbox_disp_info
static INT get_current_font_height(HWND listview)
static void test_finditem(void)
static INT CALLBACK DummyCompareEx(LPARAM first, LPARAM second, LPARAM param)
static const struct message listview_destroy[]
static const struct message parent_report_cd_seq[]
static void test_LVM_GETCOUNTPERPAGE(void)
static void test_hittest(void)
static void test_imagelists(void)
static HWND subclass_header(HWND hwndListview)
static const struct message parent_header_divider_dclick_seq[]
static void test_sorting(void)
static const struct message listview_header_changed_seq[]
static void test_subitem_rect(void)
static const struct message listview_ownerdata_switchto_seq[]
static const struct message listview_end_label_edit[]
static void test_hover(void)
static void insert_item(HWND hwnd, int idx)
static void test_multiselect(void)
static const struct message listview_itempos_seq[]
static void test_LVN_ENDLABELEDIT(void)
static void test_items(void)
static const struct message setredraw_seq[]
static void test_customdraw(void)
static const struct message listview_setorderarray_seq[]
static void test_indentation(void)
static void test_LVM_SETITEMTEXT(void)
static void test_checkboxes(void)
static BOOL g_focus_test_LVN_DELETEITEM
static const struct message single_getdispinfo_parent_seq[]
static void test_LVS_EX_HEADERINALLVIEWS(void)
static LRESULT CALLBACK create_test_wndproc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
#define TEST_HEADER_EXPECTED(a)
static void test_norecompute(void)
static void test_editbox(void)
static const WCHAR testparentclassW[]
static const struct message listview_header_set_imagelist[]
static const struct message ownerdata_select_focus_parent_seq[]
static const struct message parent_header_click_seq[]
static LRESULT WINAPI cd_wndproc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
static const struct message ownerdata_deselect_all_parent_seq[]
static const struct message hover_parent[]
static const struct message create_ownerdrawfixed_parent_seq[]
static void test_ownerdata(void)
static const struct message ownerdata_setstate_all_parent_seq[]
static void test_notifyformat(void)
static const struct message redraw_listview_seq[]
static void test_header_notification2(void)
#define test_lvm_subitemhittest(a, b, c, d, e, f, g, h, i)
static void test_approximate_viewrect(void)
static void test_LVM_REDRAWITEMS(void)
static void test_header_presence_(HWND hwnd, BOOL present, int line)
static LRESULT WINAPI header_subclass_proc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
static BOOL is_below_comctl_5(void)
static NMLISTVIEW g_nmlistview_changing
static void test_scrollnotify(void)
static LRESULT WINAPI parent_wnd_proc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
static const struct message listview_getorderarray_seq[]
static void test_dispinfo(void)
static void test_destroynotify(void)
static void test_color(void)
static void test_nosortheader(void)
static const struct message listview_set_imagelist[]
static void test_state_image(void)
static const struct message scroll_parent_seq[]
static void test_setredraw(void)
static const struct message listview_ownerdata_destroy[]
static void test_item_position(void)
static HWND create_listview_control(DWORD style)
static const struct message changing_all_parent_seq[]
static NMLISTVIEW g_nmlistview
static INT WINAPI test_CallBackCompare(LPARAM first, LPARAM second, LPARAM lParam)
static struct msg_sequence * sequences[NUM_MSG_SEQUENCES]
static HIMAGELIST test_create_imagelist
static void flush_events(void)
static void test_getitemposition(void)
static void test_item_count(void)
static void test_LVS_EX_TRANSPARENTBKGND(void)
static HWND create_listview_controlW(DWORD style, HWND parent)
static BOOL g_disp_A_to_W
static const struct message listview_item_count_seq[]
#define expect(expected, got)
static void test_mapidindex(void)
static void test_oneclickactivate(void)
static void test_columns(void)
static LRESULT WINAPI listview_subclass_proc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
static WNDPROC listviewWndProc
static void test_insertitem(void)
static LRESULT WINAPI editbox_subclass_proc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
#define test_lvm_hittest(a, b, c, d, e, f, g, h)
static const struct message listview_ownerdata_deleteall[]
static const struct message listview_color_seq[]
static void test_getorigin(void)
static BOOL g_block_hover
static void test_redraw(void)
static void test_lvm_hittest_(HWND hwnd, INT x, INT y, INT item, UINT flags, UINT broken_flags, BOOL todo_item, BOOL todo_flags, int line)
static void test_get_set_view(void)
static const struct message listview_icon_spacing_seq[]
static const struct message lvs_ex_transparentbkgnd_seq[]
static BOOL g_WM_KILLFOCUS_on_LVN_ENDLABELEDIT
#define TEST_NO_HEADER2(a, b)
static void test_deleteitem(void)
static const struct message editbox_create_pos[]
static void test_LVSCW_AUTOSIZE(void)
static void test_getitemrect(void)
static HWND subclass_editbox(HWND hwndListview)
static void test_header_proc(void)
static void test_getcolumnwidth(void)
static const struct message change_all_parent_seq[]
static void test_images(void)
static void insert_column(HWND hwnd, int idx)
static const struct message parent_list_cd_seq[]
static void test_icon_spacing(void)
static const struct message getitemposition_seq1[]
static void test_callback_mask(void)
static void test_canceleditlabel(void)
static void init_functions(void)
static void test_lvm_subitemhittest_(HWND hwnd, INT x, INT y, INT item, INT subitem, UINT flags, BOOL todo_item, BOOL todo_subitem, BOOL todo_flags, int line)
static const struct message forward_erasebkgnd_parent_seq[]
#define expect2(expected1, expected2, got1, got2)
#define TEST_NO_HEADER(a)
static const struct message getsubitemrect_seq[]
static void test_columnscreation(void)
static void test_getviewrect(void)
static const struct message ownerdata_defocus_all_parent_seq[]
static const struct message parent_insert_focused_seq[]
static const struct message edit_end_nochange[]
static void test_getitemspacing(void)
static const struct message getitemposition_seq2[]
static LRESULT CALLBACK create_item_height_wndproc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
static BOOL is_win_xp(void)
static const struct message parent_focus_change_ownerdata_seq[]
static void test_createdragimage(void)
static const struct message empty_seq[]
static const struct message listview_end_label_edit_kill_focus[]
static void test_header_notification(void)
static void test_item_state_change(void)
static HWND create_parent_window(void)
static void test_create(void)
static DWORD *static HFONT(WINAPI *pCreateFontIndirectExA)(const ENUMLOGFONTEXDVA *)
static const CHAR testA[]
#define todo_wine_if(is_todo)
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
static const WCHAR testtextW[]
#define CDDS_ITEMPOSTPAINT
#define LVM_GETCALLBACKMASK
#define LVM_DELETEALLITEMS
#define LVM_CREATEDRAGIMAGE
_Out_opt_ int _Out_opt_ int * cy
#define HDM_SETORDERARRAY
#define LVS_EX_ONECLICKACTIVATE
#define LVS_SHAREIMAGELISTS
#define LVM_INSERTCOLUMNA
#define CDDS_ITEMPREPAINT
#define LVS_NOCOLUMNHEADER
#define LVM_GETCOLUMNORDERARRAY
#define LVM_GETITEMSPACING
#define LVM_SETCOLUMNWIDTH
#define CDRF_NOTIFYSUBITEMDRAW
#define LVS_OWNERDRAWFIXED
#define HDM_GETUNICODEFORMAT
#define LVM_GETITEMPOSITION
#define LVS_EX_HEADERDRAGDROP
#define CDRF_NOTIFYITEMDRAW
#define LPSTR_TEXTCALLBACKA
#define LVS_SHOWSELALWAYS
#define LVM_SETITEMPOSITION
#define LVN_DELETEALLITEMS
#define LVM_SETCALLBACKMASK
#define LVM_SETUNICODEFORMAT
#define LVM_GETEDITCONTROL
struct _IMAGELIST * HIMAGELIST
#define LVM_APPROXIMATEVIEWRECT
#define CDRF_NOTIFYPOSTPAINT
#define LVS_EX_CHECKBOXES
#define LVS_EX_FULLROWSELECT
#define LVS_SORTASCENDING
#define LVM_GETSUBITEMRECT
#define HDN_ITEMSTATEICONCLICK
#define LVS_SORTDESCENDING
#define HDN_ITEMCHANGINGA
#define LVN_BEGINLABELEDITA
#define LVM_SETSELECTIONMARK
#define LVM_CANCELEDITLABEL
#define HDN_ITEMDBLCLICKW
#define LVM_GETCOUNTPERPAGE
#define HDN_ITEMCHANGINGW
#define HDM_GETORDERARRAY
#define LVM_SUBITEMHITTEST
#define LVN_ENDLABELEDITA
#define HDN_ENDFILTEREDIT
#define LVIR_SELECTBOUNDS
#define LVM_GETEXTENDEDLISTVIEWSTYLE
#define HDN_DIVIDERDBLCLICKW
#define LVM_GETSELECTIONMARK
#define LVM_SETICONSPACING
#define INDEXTOSTATEIMAGEMASK(i)
#define LVM_GETSELECTEDCOUNT
#define LVS_EX_DOUBLEBUFFER
#define LVM_GETUNICODEFORMAT
#define LVS_EX_UNDERLINEHOT
#define LVM_SETTEXTBKCOLOR
#define LVM_SETCOLUMNORDERARRAY
#define LV_VIEW_SMALLICON
#define LVHT_ONITEMSTATEICON
#define LVIS_STATEIMAGEMASK
#define HDN_DIVIDERDBLCLICKA
#define HDN_BEGINFILTEREDIT
#define LVM_GETCOLUMNWIDTH
#define LVM_GETTEXTBKCOLOR
#define LVM_SETEXTENDEDLISTVIEWSTYLE
static WCHAR ** task_list
TW_UINT32 TW_UINT16 TW_UINT16 MSG
static BOOL load_v6_module(ULONG_PTR *pcookie, HANDLE *hCtx)
static void unload_v6_module(ULONG_PTR cookie, HANDLE hCtx)
int WINAPI GetWindowTextA(HWND hWnd, LPSTR lpString, int nMaxCount)
DWORD WINAPI GetLastError(void)
HGDIOBJ WINAPI GetStockObject(_In_ int)
HBITMAP WINAPI CreateBitmap(_In_ INT cx, _In_ INT cy, _In_ UINT cPlanes, _In_ UINT cBitsPerPel, _In_opt_ const VOID *pvBits)
COLORREF WINAPI SetBkColor(_In_ HDC, _In_ COLORREF)
HGDIOBJ WINAPI SelectObject(_In_ HDC, _In_ HGDIOBJ)
COLORREF WINAPI GetBkColor(_In_ HDC)
BOOL WINAPI GetTextMetricsA(_In_ HDC, _Out_ LPTEXTMETRICA)
HWND WINAPI GetFocus(void)
int WINAPI ReleaseDC(_In_opt_ HWND, _In_ HDC)
LRESULT WINAPI DispatchMessageA(_In_ const MSG *)
#define SetWindowLongPtrA
BOOL WINAPI IsWindow(_In_opt_ HWND)
BOOL WINAPI RedrawWindow(_In_opt_ HWND, _In_opt_ LPCRECT, _In_opt_ HRGN, _In_ UINT)
BOOL WINAPI SetWindowTextA(_In_ HWND, _In_opt_ LPCSTR)
#define GetWindowLongPtrW
HDC WINAPI GetWindowDC(_In_opt_ HWND)
BOOL WINAPI SetKeyboardState(_In_reads_(256) LPBYTE)
HWND WINAPI CreateWindowExA(_In_ DWORD dwExStyle, _In_opt_ LPCSTR lpClassName, _In_opt_ LPCSTR lpWindowName, _In_ DWORD dwStyle, _In_ int X, _In_ int Y, _In_ int nWidth, _In_ int nHeight, _In_opt_ HWND hWndParent, _In_opt_ HMENU hMenu, _In_opt_ HINSTANCE hInstance, _In_opt_ LPVOID lpParam)
BOOL WINAPI ShowWindow(_In_ HWND, _In_ int)
BOOL WINAPI UnregisterClassA(_In_ LPCSTR, HINSTANCE)
HWND WINAPI GetForegroundWindow(void)
LRESULT WINAPI DefWindowProcW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
LONG WINAPI GetWindowLongA(_In_ HWND, _In_ int)
LRESULT WINAPI DefWindowProcA(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
#define WM_WINDOWPOSCHANGING
#define CreateWindowA(a, b, c, d, e, f, g, h, i, j, k)
BOOL WINAPI GetWindowRect(_In_ HWND, _Out_ LPRECT)
LONG WINAPI SetWindowLongA(_In_ HWND, _In_ int, _In_ LONG)
BOOL WINAPI SetWindowPos(_In_ HWND, _In_opt_ HWND, _In_ int, _In_ int, _In_ int, _In_ int, _In_ UINT)
LONG WINAPI SetWindowLongW(_In_ HWND, _In_ int, _In_ LONG)
LONG WINAPI GetWindowLongW(_In_ HWND, _In_ int)
BOOL WINAPI ValidateRect(_In_opt_ HWND, _In_opt_ LPCRECT)
HWND WINAPI GetTopWindow(_In_opt_ HWND)
ATOM WINAPI RegisterClassW(_In_ CONST WNDCLASSW *)
BOOL WINAPI SetForegroundWindow(_In_ HWND)
BOOL WINAPI GetCursorPos(_Out_ LPPOINT)
LRESULT WINAPI SendMessageA(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
BOOL WINAPI GetClassInfoExA(_In_opt_ HINSTANCE, _In_ LPCSTR, _Out_ LPWNDCLASSEXA)
#define GetWindowLongPtrA
_Check_return_ BOOL WINAPI GetKeyboardState(_Out_writes_(256) PBYTE lpKeyState)
BOOL WINAPI SetCursorPos(_In_ int, _In_ int)
DWORD WINAPI MsgWaitForMultipleObjects(_In_ DWORD nCount, _In_reads_opt_(nCount) CONST HANDLE *pHandles, _In_ BOOL fWaitAll, _In_ DWORD dwMilliseconds, _In_ DWORD dwWakeMask)
HWND WINAPI GetDlgItem(_In_opt_ HWND, _In_ int)
HWND WINAPI GetDesktopWindow(void)
BOOL WINAPI IsWindowUnicode(_In_ HWND)
BOOL WINAPI GetClientRect(_In_ HWND, _Out_ LPRECT)
ATOM WINAPI RegisterClassA(_In_ CONST WNDCLASSA *)
ATOM WINAPI RegisterClassExA(_In_ CONST WNDCLASSEXA *)
HWND WINAPI SetFocus(_In_opt_ HWND)
HWND WINAPI CreateWindowExW(_In_ DWORD dwExStyle, _In_opt_ LPCWSTR lpClassName, _In_opt_ LPCWSTR lpWindowName, _In_ DWORD dwStyle, _In_ int X, _In_ int Y, _In_ int nWidth, _In_ int nHeight, _In_opt_ HWND hWndParent, _In_opt_ HMENU hMenu, _In_opt_ HINSTANCE hInstance, _In_opt_ LPVOID lpParam)
BOOL WINAPI UpdateWindow(_In_ HWND)
HDC WINAPI GetDC(_In_opt_ HWND)
BOOL WINAPI SetRectEmpty(_Out_ LPRECT)
#define GetNextWindow(h, c)
BOOL WINAPI PeekMessageA(_Out_ LPMSG, _In_opt_ HWND, _In_ UINT, _In_ UINT, _In_ UINT)
struct _WNDCLASSEXA WNDCLASSEXA
BOOL WINAPI InvalidateRect(_In_opt_ HWND, _In_opt_ LPCRECT, _In_ BOOL)
LRESULT(CALLBACK * WNDPROC)(HWND, UINT, WPARAM, LPARAM)
#define SetWindowLongPtrW
BOOL WINAPI GetUpdateRect(_In_ HWND, _Out_opt_ LPRECT, _In_ BOOL)
#define WM_WINDOWPOSCHANGED
BOOL WINAPI IsWindowVisible(_In_ HWND)
BOOL WINAPI DestroyWindow(_In_ HWND)
BOOL WINAPI EqualRect(_In_ LPCRECT, _In_ LPCRECT)
int WINAPI GetSystemMetrics(_In_ int)
BOOL WINAPI MoveWindow(_In_ HWND, _In_ int, _In_ int, _In_ int, _In_ int, _In_ BOOL)
LRESULT WINAPI CallWindowProcA(_In_ WNDPROC, _In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
HCURSOR WINAPI LoadCursorA(_In_opt_ HINSTANCE, _In_ LPCSTR)
BOOL WINAPI SetRect(_Out_ LPRECT, _In_ int, _In_ int, _In_ int, _In_ int)