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");
962 ok(
hwnd !=
NULL,
"Failed to create listview.\n");
968 ok(!
r,
"Failed to insert item.\n");
975 ok(
r,
"Failed to get item.\n");
985 ok(
r,
"Failed to get item.\n");
1003 ok(
hwnd !=
NULL,
"failed to create listview window\n");
1007 item.stateMask = 0xffff;
1008 item.state = 0xfccc;
1017 item.stateMask = 0xffff;
1020 ok(
item.state == 0xfccc,
"state %x\n",
item.state);
1024 item.stateMask = 0xffff;
1025 item.state = 0xfccc;
1034 item.stateMask = 0xffff;
1037 ok(
item.state == 0,
"state %x\n",
item.state);
1045 item.stateMask = 0xffff;
1048 if (
item.state != 0x1ccc)
1050 win_skip(
"LVS_EX_CHECKBOXES style is unavailable. Skipping.\n");
1059 item.pszText = text2;
1065 item.stateMask = 0xffff;
1068 ok(
item.state == 0x1000,
"state %x\n",
item.state);
1073 item.stateMask = 0xffff;
1074 item.state = 0x2aaa;
1075 item.pszText = text3;
1081 item.stateMask = 0xffff;
1084 ok(
item.state == 0x1aaa,
"state %x\n",
item.state);
1089 item.stateMask = 0xf000;
1090 item.state = 0x2000;
1096 item.stateMask = 0xffff;
1099 ok(
item.state == 0x2aaa,
"state %x\n",
item.state);
1106 item.stateMask = 0xf000;
1107 item.state = 0xffff;
1110 ok(
item.state == 0x2000,
"state %x\n",
item.state);
1118 item.stateMask = 0xffff;
1121 ok(
item.state == 0x2aaa,
"state %x\n",
item.state);
1129 item.stateMask = 0xffff;
1132 ok(
item.state == 0x2aaa,
"state %x\n",
item.state);
1140 item.stateMask = 0xffff;
1143 ok(
item.state == 0x1aaa,
"state %x\n",
item.state);
1157 item.stateMask = 0xffff;
1160 ok(
item.state == 0x1aab,
"state %x\n",
item.state);
1169 item.stateMask = 0xffff;
1172 ok(
item.state == 0x2aab,
"state %x\n",
item.state);
1181 item.stateMask = 0xffff;
1184 ok(
item.state == 0x1aab,
"state %x\n",
item.state);
1221 const LPARAM lparamTest = 0x42;
1230 ok(
hwnd !=
NULL,
"failed to create listview window\n");
1261 ok(
r,
"got %d\n",
r);
1284 ok(
r,
"got %d\n",
r);
1307 ok(
r,
"got %d\n",
r);
1314 item.lParam = lparamTest;
1325 ok(
item.lParam == lparamTest,
"got lParam %lx, expected %lx\n",
item.lParam, lparamTest);
1339 item.pszText = buffA;
1340 item.cchTextMax =
sizeof(buffA);
1357 item.pszText = buffA;
1359 item.cchTextMax =
sizeof(buffA);
1362 ok(
item.pszText[0] == 0,
"got %p\n",
item.pszText);
1377 item.pszText = buffA;
1379 item.cchTextMax =
sizeof(buffA);
1392 ok(
item.lParam == lparamTest,
"got lParam %lx, expected %lx\n",
item.lParam, lparamTest);
1399 item.lParam = lparamTest+1;
1410 ok(
item.lParam == lparamTest,
"got lParam %lx, expected %lx\n",
item.lParam, lparamTest);
1430 item.stateMask = -1;
1471 "check callback text comparison rule",
FALSE);
1487 ok(
hwnd !=
NULL,
"failed to create listview window\n");
1493 ok(rc == 0,
"got %d\n", rc);
1502 ok(
hwnd !=
NULL,
"failed to create listview window\n");
1505 ok(!rc,
"got %d\n", rc);
1508 ok(!rc,
"got %d\n", rc);
1514 ok(rc == 0,
"Inserting column with no mask failed with %d\n", rc);
1518 ok(rc == 10,
"Inserting column with no mask failed to set width to 10 with %d\n", rc);
1540 ok(
order[0] == 0,
"Expected order 0, got %d\n",
order[0]);
1541 ok(
order[1] == 1,
"Expected order 1, got %d\n",
order[1]);
1577 "get subitem text after column added",
FALSE);
1583 ok(
hwnd !=
NULL,
"Failed to create a listview window.\n");
1590 ok(!rc,
"Unexpected column count.\n");
1614#define TEST_NO_HEADER(a) test_header_presence_(a, FALSE, __LINE__)
1615#define TEST_HEADER_EXPECTED(a) test_header_presence_(a, TRUE, __LINE__)
1616#define TEST_NO_HEADER2(a, b) test_header_presence_(a, b, __LINE__)
1636 static const WCHAR testtextW[] = {
't',
'e',
's',
't',
' ',
't',
'e',
'x',
't',0};
1650 win_skip(
"Skipping some tests on XP.\n");
1656 ok(
r,
"Failed to get class info.\n");
1661 ok(
class,
"Failed to register class.\n");
1664 hList =
CreateWindowA(
"MyListView32",
"Test",
WS_VISIBLE, 0, 0, 100, 100,
NULL,
NULL,
GetModuleHandleA(
NULL), 0);
1672 hList =
CreateWindowA(
WC_LISTVIEWA,
"Test",
WS_VISIBLE, 0, 0, 100, 100,
NULL,
NULL,
GetModuleHandleA(
NULL), 0);
1801 ok(
r == 1,
"Unexpected ret value %d.\n",
r);
1803 ok(
rect.bottom >= 0,
"Unexpected rectangle.\n");
1813 "created with LVS_OWNERDRAWFIXED|LVS_REPORT - parent seq",
FALSE);
1819 ok(
hList !=
NULL,
"Failed to create ListView window.\n");
1827 ok(
hList !=
NULL,
"Failed to create ListView window.\n");
1834 ok(
r,
"Failed to unregister test class.\n");
1865 ok(
r == 1,
"Expected not zero result\n");
1867 "forward WM_ERASEBKGND on CLR_NONE",
FALSE);
1876 "don't forward WM_ERASEBKGND on non-CLR_NONE",
FALSE);
1888 "forward WM_ERASEBKGND on CLR_NONE",
FALSE);
1897 "don't forward WM_ERASEBKGND on non-CLR_NONE",
FALSE);
1938 ok(clr == c0ffee,
"Unexpected background color %#x.\n", clr);
1949 if (showsel_always && is_selected && nmlvcd->
iSubItem)
1953 ok(clr == c0ffee,
"clr=%.8x\n", clr);
1957 if (showsel_always && is_selected)
1962 ok(clr == c0ffee,
"Unexpected background color %#x.\n", clr);
2013 "parent customdraw, item selected, LVS_REPORT, selection",
FALSE);
2020 "parent customdraw, item selected, LVS_SHOWSELALWAYS, LVS_REPORT",
FALSE);
2049 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
2092 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
2096 for (
i = 0;
i < 4;
i++)
2128 ok(
rect.right == 0 &&
rect.bottom == 0,
"got update rectangle\n");
2138 ok(
rect.right == 0 &&
rect.bottom == 0,
"got update rectangle\n");
2148 ok(
rect.right == 0 &&
rect.bottom == 0,
"got update rectangle\n");
2168 static CHAR item0text[] =
"item0";
2169 static CHAR item1text[] =
"item1";
2170 static CHAR item2text[] =
"item2";
2173 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
2205 item1.pszText = item1text;
2213 item2.pszText = item2text;
2269 static CHAR item0text[] =
"item0";
2270 static CHAR item1text[] =
"item1";
2271 static CHAR item2text[] =
"item2";
2274 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
2290 item1.pszText = item1text;
2298 item2.pszText = item2text;
2318 expect2(20, 20, position.
x, position.
y);
2334 position.
x = position.
y = 0;
2337 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
2346 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
2355 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
2364 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
2375 typedef struct t_select_task
2387 static const int items=5;
2394 static struct t_select_task
task_list[] = {
2395 {
"using VK_DOWN", 0,
VK_DOWN, -1, -1 },
2396 {
"using VK_UP", -1,
VK_UP, -1, -1 },
2397 {
"using VK_END", 0,
VK_END, 1, -1 },
2398 {
"using VK_HOME", -1,
VK_HOME, 1, -1 }
2410 ok(
r == -1,
"got %d\n",
r);
2413 ok(
r == -1,
"got %d\n",
r);
2416 ok(
r == 0,
"got %d\n",
r);
2420 ok(
r == 0,
"got %d\n",
r);
2423 ok(
r == 0,
"got %d\n",
r);
2426 ok(
r == 0,
"got %d\n",
r);
2429 ok(
r == 0,
"got %d\n",
r);
2432 DWORD selected_count;
2441 ok(
r,
"got %d\n",
r);
2446 ok(
r,
"got %d\n",
r);
2451 ok(
r,
"got %d\n",
r);
2454 ok(selected_count == 1,
"expected 1, got %d\n", selected_count);
2461 for (
j=1;
j<=(task.count == -1 ? item_count : task.count);
j++) {
2470 ok((task.result == -1 ? item_count : task.result) == selected_count,
2471 "Failed multiple selection %s. There should be %d selected items (is %d)\n",
2472 task.descr, item_count, selected_count);
2497 ok(
r,
"got %d\n",
r);
2507 "select all notification",
FALSE);
2524 "select all notification 2",
FALSE);
2532 ok(
r,
"got %d\n",
r);
2535 "deselect all notification",
FALSE);
2559 "set state all notification 3",
FALSE);
2562 ok(
r,
"got %d\n",
r);
2563 for (
i = 0;
i < 3;
i++) {
2567 ok(
r,
"got %d\n",
r);
2589 ok(
r == -1,
"got %d\n",
r);
2595 ok(
r,
"got %d\n",
r);
2616 ok(
r == -1,
"got %d\n",
r);
2779 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
2837 ok(
r,
"got %d\n",
r);
2873 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
2910 arr[0] = 1; arr[1] = 0; arr[2] = 2;
2932 ok(
rect2.
top > 0,
"expected positive item height\n");
2961 if (
first == second)
return 0;
2962 return (
first > second ? 1 : -1);
2971 static CHAR names[][5] = {
"A",
"B",
"C",
"D",
"0"};
2975 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
3025 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
3145 static char test_str[] =
"test";
3155 win_skip(
"set LVS_OWNERDATA after creation leads to crash on < 5.80\n");
3160 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
3167 ok(
ret ==
style,
"Expected set GWL_STYLE to succeed\n");
3169 "try to switch to LVS_OWNERDATA seq",
FALSE);
3178 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
3185 ok(
ret ==
style,
"Expected set GWL_STYLE to succeed\n");
3187 "try to switch to LVS_OWNERDATA seq",
FALSE);
3193 win_skip(
"remove LVS_OWNERDATA after creation leads to crash on < 5.80\n");
3198 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
3205 ok(
ret ==
style,
"Expected set GWL_STYLE to succeed\n");
3207 "try to switch to LVS_OWNERDATA seq",
FALSE);
3215 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
3233 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
3246 item.pszText = test_str;
3253 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
3266 "ownerdata select notification",
TRUE);
3277 "ownerdata focus notification",
TRUE);
3302 "ownerdata select all notification",
FALSE);
3321 "ownerdata select all notification",
FALSE);
3340 "ownerdata deselect all notification",
TRUE);
3373 "ownerdata select all notification",
TRUE);
3397 "ownerdata focus all notification",
FALSE);
3420 "ownerdata remove focus all notification",
TRUE);
3439 "ownerdata cut all notification",
FALSE);
3458 "ownerdata cut all notification #2",
FALSE);
3465 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
3478 "ownerdata getitem selected state 1",
FALSE);
3493 "ownerdata getitem selected state 2",
FALSE);
3505 "ownerdata getitem selected state 2",
FALSE);
3511 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
3521 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
3530 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
3540 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
3554 "ownerdata setitemcount",
FALSE);
3571 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
3611 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
3640 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
3658 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
3684 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
3734 "redraw after WM_SETREDRAW (FALSE)",
FALSE);
3742 "redraw after WM_SETREDRAW (FALSE) with CLR_NONE bkgnd",
FALSE);
3750 "WM_SETREDRAW: not forwarded to header",
FALSE);
3761 static CHAR text[] =
"1234567890ABCDEFGHIJKLMNOPQRST";
3769 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
3790 ok(bounds.
bottom - bounds.
top > 0,
"Expected non zero item height\n");
3791 ok(bounds.
right - bounds.
left > 0,
"Expected non zero item width\n");
3795 "Vertical spacing inconsistent (%d != %d)\n", bounds.
bottom - bounds.
top, vert);
3828 y = bounds.
top - vert;
3874 himl = pImageList_Create(16, 16, 0, 4, 4);
3875 ok(
himl !=
NULL,
"failed to create imagelist\n");
3877 ok(
hbmp !=
NULL,
"failed to create bitmap\n");
3879 ok(
r == 0,
"should be zero\n");
3881 ok(
hbmp !=
NULL,
"failed to create bitmap\n");
3883 ok(
r == 1,
"should be one\n");
3919 ok(himl2 ==
himl,
"should return handle\n");
3942 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
3955 ok(!
r,
"got %d\n",
r);
3979 ok(
rect.bottom > 0,
"Expected positive bottom value, got %d\n",
rect.bottom);
3980 ok(
rect.right > 0,
"Expected positive right value, got %d\n",
rect.right);
3993 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
4018 ok(
r,
"got %d\n",
r);
4053 ok((
rect.right /
rect.bottom) >= 5,
"got right %d, bottom %d\n",
rect.right,
rect.bottom);
4057 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
4145 himl = pImageList_Create(16, 16, 0, 2, 2);
4146 ok(
himl !=
NULL,
"failed to create imagelist\n");
4148 ok(
hbm !=
NULL,
"failed to create bitmap\n");
4152 ok(
hbm !=
NULL,
"failed to create bitmap\n");
4183 ok(himl_ret ==
himl,
"got %p, expected %p\n", himl_ret,
himl);
4191 item.stateMask = ~0;
4265 static CHAR testitemA[] =
"testitem";
4266 static CHAR testitem1A[] =
"testitem_quitelongname";
4267 static CHAR testitem2A[] =
"testITEM_quitelongname";
4274 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
4280 item.pszText = testitemA;
4291 "edit box WM_COMMAND (EN_SETFOCUS), no edit created",
FALSE);
4299 "edit box WM_COMMAND (EN_SETFOCUS), no edit created #2",
FALSE);
4305 ok(
IsWindow(hwndedit),
"Expected Edit window to be created\n");
4334 ok(
strcmp(
buffer, testitem1A) == 0,
"Expected item text to change\n");
4339 ok(
IsWindow(hwndedit),
"Expected Edit window to be created\n");
4341 ok(
GetFocus() == hwndedit,
"Expected Edit window to be focused\n");
4343 ok(
IsWindow(hwndedit2),
"Expected Edit window to be created\n");
4348 todo_wine ok(hwndedit ==
NULL,
"Expected Edit window not to be created\n");
4352 item.pszText = testitemA;
4360 ok(
IsWindow(hwndedit),
"Expected Edit window to be created\n");
4376 ok(
strcmp(
buffer, testitem1A) == 0,
"Expected item text to change\n");
4377 ok(!
IsWindow(hwndedit),
"Expected Edit window to be freed\n");
4382 ok(
IsWindow(hwndedit),
"Expected Edit window to be created\n");
4399 ok(!
IsWindow(hwndedit),
"Expected Edit window to be freed\n");
4408 "edit box - end edit, no change, escape",
TRUE);
4416 "edit box - end edit, no change, return",
TRUE);
4425 ok(
strcmp(
buffer, testitem2A) == 0,
"Expected item text to change\n");
4429 ok(hwndedit ==
NULL,
"Expected Edit window not to be created\n");
4432 ok(hwndedit ==
NULL,
"Expected Edit window not to be created\n");
4434 ok(
IsWindow(hwndedit),
"Expected Edit window to be created\n");
4436 ok(
GetFocus() == hwndedit,
"Expected Edit to be focused\n");
4438 ok(hwndedit2 ==
NULL,
"Expected Edit window not to be created\n");
4439 ok(!
IsWindow(hwndedit),
"Expected Edit window to be destroyed\n");
4443 ok(
IsWindow(hwndedit),
"Expected Edit window to be created\n");
4444 ok(
GetFocus() == hwndedit,
"Expected Edit to be focused\n");
4446 ok(hwndedit2 ==
NULL,
"Expected Edit window not to be created\n");
4447 ok(!
IsWindow(hwndedit),
"Expected Edit window to be destroyed\n");
4451 ok(
IsWindow(hwndedit),
"Expected Edit window to be created\n");
4452 ok(
GetFocus() == hwndedit,
"Expected Edit to be focused\n");
4455 ok(hwndedit2 ==
NULL,
"Expected Edit window not to be created\n");
4456 ok(!
IsWindow(hwndedit),
"Expected Edit window to be destroyed\n");
4464 ok(
IsWindow(hwndedit),
"Expected Edit window to be created\n");
4467 "edit box create - sizing",
FALSE);
4472 ok(
IsWindow(hwndedit),
"Expected Edit window to be created\n");
4477 "edit box WM_COMMAND (EN_KILLFOCUS)",
TRUE);
4488 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
4499 ok(
r == 1,
"Unexpected return value %d.\n",
r);
4510 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
4516 ok(
r == 1,
"Expected 1, got %d\n",
r );
4518 ok(
r != 0,
"Expected valid format\n");
4526 ok(
r == 1,
"Expected 1, got %d\n",
r );
4534 ok(
r == 1,
"Expected 1, got %d\n",
r );
4544 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
4555 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
4566 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
4577 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
4588 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
4607 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
4624 "get indent dispinfo",
FALSE);
4633 ok(
r,
"Failed to get item.\n");
4651 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
4669 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
4723 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
4732 "cancel edit label without edit",
FALSE);
4737 ok(
IsWindow(hwndedit),
"Expected edit control to be created\n");
4740 ok(!
IsWindow(hwndedit),
"Expected edit control to be destroyed\n");
4743 memset(&itema, 0,
sizeof(itema));
4749 ok(
IsWindow(hwndedit),
"Expected edit control to be created\n");
4754 ok(!
IsWindow(hwndedit),
"Expected edit control to be destroyed\n");
4755 memset(&itema, 0,
sizeof(itema));
4772 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
4779 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
4836 himl40 = pImageList_Create(40, 40, 0, 4, 4);
4837 ok(himl40 !=
NULL,
"failed to create imagelist\n");
4838 himl80 = pImageList_Create(80, 80, 0, 4, 4);
4839 ok(himl80 !=
NULL,
"failed to create imagelist\n");
4883 if (
sizeof(
void*) == 8)
4906 pImageList_Destroy(himl80);
4924 pImageList_Destroy(himl40);
5000 memset(&itema, 0,
sizeof(itema));
5031 "scroll notify 1",
TRUE);
5037 "scroll notify 2",
TRUE);
5043 "scroll notify 3",
TRUE);
5060 LVS_EX_TRANSPARENTBKGND);
5065 win_skip(
"LVS_EX_TRANSPARENTBKGND unsupported\n");
5074 ok(!(
ret & LVS_EX_TRANSPARENTBKGND),
"Expected LVS_EX_TRANSPARENTBKGND to unset\n");
5078 LVS_EX_TRANSPARENTBKGND);
5085 "LVS_EX_TRANSPARENTBKGND parent",
FALSE);
5094 static CHAR test[] =
"abracadabra, a very long item label";
5095 DWORD item_width, item_height, header_height;
5096 static CHAR column_header[] =
"Header";
5097 unsigned const column_width = 100;
5107 himl = pImageList_Create(40, 40, 0, 4, 4);
5108 ok(
himl !=
NULL,
"failed to create imagelist\n");
5110 ok(
hbmp !=
NULL,
"failed to create bitmap\n");
5124 ok(
ret != 0,
"Unexpected return value %#x.\n",
ret);
5130 ok(
ret != 0,
"got 0\n");
5184 item_height =
HIWORD(
ret) - header_height;
5192 ok(
HIWORD(
ret) == header_height,
"Unexpected height.\n");
5200 col.
cx = column_width;
5202 ok(
ret == 0,
"Unexpected return value %d.\n",
ret);
5218 item_height =
HIWORD(
ret) - header_height;
5232 for (item_count = 1; item_count <= 2; ++item_count)
5239 ok(
ret == 0,
"Unexpected return value %d.\n",
ret);
5251 ok(
HIWORD(
ret) > header_height,
"Unexpected height %d. item %d.\n",
HIWORD(
ret), item_count - 1);
5253 item_height =
HIWORD(
ret) - header_height;
5262 ok(
HIWORD(
ret) == header_height + item_count * item_height,
"Unexpected height %d.\n",
HIWORD(
ret));
5297 memset(&fi, 0,
sizeof(fi));
5380 LVS_EX_HEADERINALLVIEWS);
5385 win_skip(
"LVS_EX_HEADERINALLVIEWS unsupported\n");
5412 LVS_EX_HEADERINALLVIEWS);
5419 LVS_EX_HEADERINALLVIEWS);
5426 LVS_EX_HEADERINALLVIEWS);
5442 skip(
"Window is not in the foreground. Skipping hover tests.\n");
5473 ok(
hwnd !=
NULL,
"failed to create listview window\n");
5481 ok(
hwnd !=
NULL,
"failed to create listview window\n");
5488 ok(
hwnd !=
NULL,
"failed to create listview window\n");
5499 static char textA[] =
"newtext";
5508 ok(
list !=
NULL,
"failed to create listview window\n");
5510 memset(&col, 0,
sizeof(col));
5527 "header notify, listview",
FALSE);
5529 "header notify, parent",
FALSE);
5558 static char textA[] =
"newtext";
5565 struct message parent_header_notify_seq[] = {
5571 ok(
list !=
NULL,
"failed to create listview window\n");
5573 memset(&col, 0,
sizeof(col));
5601 "header notify, parent",
TRUE);
5610 "header notify, parent",
TRUE);
5620 "header notify, parent",
FALSE);
5627 "header notify, parent",
FALSE);
5634 "header notify, parent",
TRUE);
5641 "header notify, parent",
FALSE);
5649 "header notify, parent",
FALSE);
5657 "header notify, parent",
FALSE);
5664 "header notify, parent",
FALSE);
5671 "header notify, parent",
FALSE);
5679 "header notify, parent",
FALSE);
5680 parent_header_notify_seq[0].
flags &= ~optional;
5686 "header notify, parent",
FALSE);
5692 "header notify, parent",
FALSE);
5698 "header notify, parent",
FALSE);
5704 "header notify, parent",
FALSE);
5718 ok(
list !=
NULL,
"failed to create listview window\n");
5728 pImageList_Destroy(
himl);
5735 static const char testA[] =
"TEST";
5742 ok(
hwnd !=
NULL,
"failed to create listview window\n");
5759 "got %s, expected %s\n",
item.pszText,
testA);
5766 static char testA[] =
"TEST";
5772 ok(
hwnd !=
NULL,
"failed to create listview window\n");
5785 item.cchTextMax = 0;
5806 ok(
list !=
NULL,
"failed to create listview window\n");
5843 himl1 = pImageList_Create(40, 40, 0, 4, 4);
5844 himl2 = pImageList_Create(40, 40, 0, 4, 4);
5845 himl3 = pImageList_Create(40, 40, 0, 4, 4);
5846 ok(himl1 !=
NULL,
"Failed to create imagelist\n");
5847 ok(himl2 !=
NULL,
"Failed to create imagelist\n");
5848 ok(himl3 !=
NULL,
"Failed to create imagelist\n");
5862 "set normal image list",
FALSE);
5869 "set state image list",
TRUE);
5879 "set small image list",
FALSE);
5892 "set normal image list",
FALSE);
5899 "set state image list",
FALSE);
5906 "set small image list",
FALSE);
6047 ok(proc1 == proc2,
"got %p, expected %p\n", proc1, proc2);
6057 int min_timeout = 100;
6071 char item1[] =
"item1";
6080 ok(
hwnd !=
NULL,
"failed to create listview window\n");
6082 ok(
r == 0,
"should return zero\n");
6089 skip(
"Window is not in the foreground. Skipping oneclickactivate tests.\n");
6100 ok(
r == 0,
"should not fail\n");
6109 track.
cbSize =
sizeof(track);
6111 p_TrackMouseEvent(&track);
6148 ok(
ret,
"Failed to set callback mask.\n");
6157 ok(
ret,
"Failed to get item data.\n");
6163 ok(
ret,
"Failed to get item data.\n");
6175 ok(
ret,
"Failed to get item data.\n");
6180 "parent seq, callback mask/invalid subitem 2",
FALSE);
6188 ok(
mask == 0,
"Unexpected callback mask %#x.\n",
mask);
6191 ok(
ret,
"Failed to set callback mask, %d\n",
ret);
6197 ok(
ret,
"Failed to set item count.\n");
6200 ok(
ret == -1,
"Unexpected selection mark, %d\n",
ret);
6205 ok(
ret,
"Failed to set item state.\n");
6211 ok(
ret == 0,
"Unexpected focused item, ret %d\n",
ret);
6215 ok(
ret == 0,
"Unexpected selection mark, %d\n",
ret);
6218 ok(
ret,
"Failed to set item count.\n");
6221 ok(
ret == -1,
"Unexpected focused item, ret %d\n",
ret);
6224 ok(
ret == -1,
"Unexpected selection mark, %d\n",
ret);
6227 ok(
ret,
"Failed to set item count.\n");
6230 ok(
ret == -1,
"Unexpected focused item, ret %d\n",
ret);
6236 ok(
ret,
"Failed to set callback mask, %d\n",
ret);
6239 ok(
ret,
"Failed to set item count.\n");
6242 ok(
ret == -1,
"Unexpected selection mark, %d\n",
ret);
6247 ok(
ret,
"Failed to set item state.\n");
6250 ok(
ret == 0,
"Unexpected selection mark, %d\n",
ret);
6255 ok(
ret == 0,
"Unexpected focused item, ret %d\n",
ret);
6258 ok(
ret,
"Failed to set item count.\n");
6261 ok(
ret == -1,
"Unexpected focused item, ret %d\n",
ret);
6265 ok(
ret == -1,
"Unexpected selection mark, %d\n",
ret);
6268 ok(
ret,
"Failed to set item count.\n");
6271 ok(
ret == -1,
"Unexpected focused item, ret %d\n",
ret);
6279 ok(
ret,
"Failed to set item count.\n");
6282 ok(
ret,
"Failed to set item state.\n");
6285 ok(
ret == 0,
"Unexpected focused item, ret %d\n",
ret);
6288 ok(
ret,
"Failed to set item count.\n");
6291 ok(
ret == 0,
"Unexpected focused item, ret %d\n",
ret);
6294 "parent seq, owner data/focus 3",
TRUE);
6301 static const DWORD styles[] =
6312 static char text[] =
"Item";
6313 static char subtext[] =
"Subitem";
6328 item.lParam = 123456;
6330 ok(
r == 0,
"Failed to insert an item.\n");
6338 ok(
r,
"Failed to set item state.\n");
6343 item.pszText = subtext;
6345 ok(
r,
"Failed to set subitem text.\n");
6348 item.stateMask = ~0
u;
6354 ok(
r,
"Failed to get item state.\n");
6356 "Unexpected item state %#x.\n",
item.state);
6357 ok(
item.lParam == 123456,
"Unexpected lParam %ld.\n",
item.lParam);
6360 item.stateMask = ~0
u;
6365 ok(
r,
"Failed to get subitem state.\n");
6369 item.stateMask = ~0
u;
6375 ok(
r,
"Failed to get subitem state.\n");
6376 ok(
item.state == 0,
"Unexpected state %#x.\n",
item.state);
6377 ok(
item.lParam == 123456,
"Unexpected lParam %ld.\n",
item.lParam);
6385 ok(
r,
"Failed to get subitem state.\n");
6386 ok(
item.state == 0,
"Unexpected state %#x.\n",
item.state);
6389 item.stateMask = ~0
u;
6394 ok(
r,
"Failed to get subitem state.\n");
6395 ok(
item.state == 0,
"Unexpected state %#x.\n",
item.state);
6403 ok(
r,
"Failed to get subitem text %d.\n",
r);
6417 ok(
hwnd !=
NULL,
"failed to create a listview window\n");
6424 ok(
ret,
"Failed to set column width.\n");
6431 ok(
ret == 0,
"Unexpected previous extended style.\n");
6434 ok(
ret,
"Failed to set column width.\n");
6437 ok(width2 > 0,
"Unexpected column width %d.\n", width2);
6438 ok(width2 >
width,
"Expected increased column width.\n");
6445 ok(
ret,
"Failed to set column width.\n");
6448 ok(
width > 0,
"Unexpected column width %d.\n", width2);
6449 ok(width2 >
width,
"Expected reduced column width.\n");
6472 ok(hwndedit !=
NULL,
"Failed to get edit control.\n");
6475 ok(
ret,
"Failed to set edit text.\n");
6485 ok(hwndedit !=
NULL,
"Failed to get edit control.\n");
6488 ok(
ret,
"Failed to set edit text.\n");
6497 "Label edit, kill focus",
FALSE);
6524 ok(
ret,
"Failed to get class info.\n");
6529 ok(
class,
"Failed to register class.\n");
6533 static char text[] =
"item text";
6538 ok(
hwnd !=
NULL,
"Failed to create listview window.\n");
6546 for (
j = 0;
j < 10;
j++)
6555 ok(
count == count2,
"%u: unexpected count %u.\n",
i, count2);
6557 ok(count2 == 10,
"%u: unexpected count %u.\n",
i, count2);
6563 ok(
hwnd !=
NULL,
"Failed to create a window.\n");
6572 ok(
ret,
"Failed to unregister test class.\n");
6596 ok(
res,
"Failed to set item state.\n");
6611 ok(
res,
"Failed to set item state.\n");
6627 ok(
res,
"Failed to set item.\n");
6642 ok(
res,
"Failed to set item.\n");
int strcmp(const char *String1, const char *String2)
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
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)
int WINAPI lstrcmpA(LPCSTR str1, LPCSTR str2)
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
GLuint GLuint GLsizei count
GLint GLint GLint GLint GLint GLint y
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 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_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 *)
DWORD WINAPI GetSysColor(_In_ int)
#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)