65 hash =
hash * 1664525u + (
unsigned char)(*str) + 1013904223u;
75 hash =
hash * 1664525u + (
unsigned char)(*str) + 1013904223u;
84 "Fourth added which is very long because at some time we only had a 256 byte character buffer and "
85 "that was overflowing in one of those applications that had a common dialog file open box and tried "
86 "to add a 300 characters long custom filter string which of course the code did not like and crashed. "
87 "Just make sure this string is longer than 256 characters."
97 static LONG defwndproc_counter = 0;
124 defwndproc_counter++;
126 defwndproc_counter--;
142 ok(
handle !=
NULL,
"Failed to create listbox window.\n");
197#define listbox_field_ok(t, s, f, got) \
198 ok (t.s.f==got.f, "style %#x, step " #s ", field " #f \
199 ": expected %d, got %d\n", style, t.s.f, got.f)
201#define listbox_todo_field_ok(t, s, f, got) \
202 todo_wine_if (t.s##_todo.f) { listbox_field_ok(t, s, f, got); }
204#define listbox_ok(t, s, got) \
205 listbox_todo_field_ok(t, s, selected, got); \
206 listbox_todo_field_ok(t, s, anchor, got); \
207 listbox_todo_field_ok(t, s, caret, got); \
208 listbox_todo_field_ok(t, s, selcount, got)
212 static const struct message delete_seq[] =
257 txt = heap_alloc_zero(
size + 1);
261 txtw = heap_alloc_zero((
size + 1) *
sizeof(*txtw));
263 ok(resA == resW,
"Unexpected text length.\n");
273 ok(
res == 4,
"Expected 4 items, got %d\n",
res);
286 ok(
res ==
i,
"Unexpected return value %d.\n",
res);
310 ok (itemHeight ==
tm.tmHeight,
"Item height wrong, got %d, expecting %d\n", itemHeight,
tm.tmHeight);
314 hLB =
CreateWindowA(
WC_LISTBOXA,
"TestList",
LBS_OWNERDRAWVARIABLE, 0, 0, 100, 100,
NULL,
NULL,
NULL, 0);
317 ok(itemHeight > 0 && itemHeight <=
tm.tmHeight,
"Unexpected item height %d, expected %d.\n",
318 itemHeight,
tm.tmHeight);
320 ok(itemHeight > 0 && itemHeight <=
tm.tmHeight,
"Unexpected item height %d, expected %d.\n",
321 itemHeight,
tm.tmHeight);
323 ok(itemHeight > 0 && itemHeight <=
tm.tmHeight,
"Unexpected item height %d, expected %d.\n",
324 itemHeight,
tm.tmHeight);
333 static LONG defwndproc_counter = 0;
406 RECT rc_item, rc_client, rc_clip;
415 "client rect of the listbox should be equal to the clip box,"
416 "or the clip box should be empty\n");
432 defwndproc_counter++;
434 defwndproc_counter--;
465 static const DWORD styles[] =
476 ok(
parent !=
NULL,
"Failed to create parent window.\n");
481 ok(hLB !=
NULL,
"Failed to create listbox window.\n");
493 ok(
ret == 1,
"wrong top index %d\n",
ret);
497 ok(rc.top < 0,
"rc.top is not negative (%d)\n", rc.top);
509 ok(
ret == 0,
"Unexpected return value %d.\n",
ret);
511 ok(
ret == 1,
"Unexpected return value %d.\n",
ret);
517 ok(
ret == 13,
"Unexpected item height %d.\n",
ret);
523 ok(
ret == 42,
"Unexpected item height %d.\n",
ret);
526 ok(
ret == 42,
"Unexpected item height %d.\n",
ret);
534#define listbox_test_query(exp, got) \
535 ok(exp.selected == got.selected, "expected selected %d, got %d\n", exp.selected, got.selected); \
536 ok(exp.anchor == got.anchor, "expected anchor %d, got %d\n", exp.anchor, got.anchor); \
537 ok(exp.caret == got.caret, "expected caret %d, got %d\n", exp.caret, got.caret); \
538 ok(exp.selcount == got.selcount, "expected selcount %d, got %d\n", exp.selcount, got.selcount);
551 ok(hLB !=
NULL,
"Failed to create listbox window.\n");
557 ok(
ret ==
LB_OKAY,
"LB_SELITEMRANGE returned %d instead of LB_OKAY\n",
ret);
566 ok(
ret ==
LB_OKAY,
"LB_SELITEMRANGE returned %d instead of LB_OKAY\n",
ret);
575 ok(
ret ==
LB_OKAY,
"LB_SELITEMRANGE returned %d instead of LB_OKAY\n",
ret);
584 ok(
ret ==
LB_OKAY,
"LB_SELITEMRANGE returned %d instead of LB_OKAY\n",
ret);
593 ok(
ret ==
LB_OKAY,
"LB_SELITEMRANGE returned %d instead of LB_OKAY\n",
ret);
602 ok(
ret ==
LB_OKAY,
"LB_SELITEMRANGE returned %d instead of LB_OKAY\n",
ret);
611 ok(
ret ==
LB_OKAY,
"LB_SELITEMRANGE returned %d instead of LB_OKAY\n",
ret);
624 ok(
parent !=
NULL,
"Failed to create parent window.\n");
627 ok(hLB !=
NULL,
"Failed to create listbox.\n");
632 ok(
ret == -1,
"Unexpected anchor index %d.\n",
ret);
635 ok(
ret == 2,
"LB_SETCURSEL returned %d instead of 2\n",
ret);
637 ok(
ret == 0,
"expected vscroll 0, got %d\n",
ret);
640 ok(
ret == -1,
"Unexpected anchor index %d.\n",
ret);
643 ok(
ret == 3,
"LB_SETCURSEL returned %d instead of 3\n",
ret);
645 ok(
ret == 1,
"expected vscroll 1, got %d\n",
ret);
648 ok(
ret == -1,
"Unexpected anchor index %d.\n",
ret);
653 ok(hLB !=
NULL,
"Failed to create ListBox window.\n");
656 ok(
ret == 1,
"Unexpected return value %d.\n",
ret);
659 ok(
ret == -1,
"Unexpected anchor index %d.\n",
ret);
665 ok(hLB !=
NULL,
"Failed to create listbox.\n");
668 ok(
ret == -1,
"Unexpected anchor index %d.\n",
ret);
671 ok(
ret == -1,
"LB_SETCURSEL returned %d instead of 2\n",
ret);
674 ok(
ret == -1,
"Unexpected anchor index %d.\n",
ret);
680 ok(hLB !=
NULL,
"Failed to create listbox.\n");
683 ok(
ret == -1,
"Unexpected anchor index %d.\n",
ret);
686 ok(
ret == -1,
"LB_SETCURSEL returned %d instead of 2\n",
ret);
689 ok(
ret == -1,
"Unexpected anchor index %d.\n",
ret);
701 ok(
list !=
NULL,
"Failed to create ListBox window.\n");
704 ok(
ret == -1,
"Unexpected anchor index %d.\n",
ret);
707 ok(
ret == 0,
"Unexpected return value %d.\n",
ret);
709 ok(
ret == 0,
"Unexpected anchor index %d.\n",
ret);
711 ok(
ret == 0,
"Unexpected caret index %d.\n",
ret);
714 ok(
ret == 0,
"Unexpected return value %d.\n",
ret);
716 ok(
ret == 1,
"Unexpected anchor index %d.\n",
ret);
718 ok(
ret == 1,
"Unexpected caret index %d.\n",
ret);
721 ok(
ret == 0,
"Unexpected return value %d.\n",
ret);
723 ok(
ret == 1,
"Unexpected anchor index %d.\n",
ret);
725 ok(
ret == 1,
"Unexpected caret index %d.\n",
ret);
731 ok(
list !=
NULL,
"Failed to create ListBox window.\n");
734 ok(
ret == -1,
"Unexpected anchor index %d.\n",
ret);
737 ok(
ret == 0,
"Unexpected return value %d.\n",
ret);
739 ok(
ret == 0,
"Unexpected anchor index %d.\n",
ret);
741 ok(
ret == 0,
"Unexpected caret index %d.\n",
ret);
744 ok(
ret == 0,
"Unexpected return value %d.\n",
ret);
746 ok(
ret == 1,
"Unexpected anchor index %d.\n",
ret);
748 ok(
ret == 1,
"Unexpected caret index %d.\n",
ret);
751 ok(
ret == 0,
"Unexpected return value %d.\n",
ret);
753 ok(
ret == 1,
"Unexpected anchor index %d.\n",
ret);
755 ok(
ret == 1,
"Unexpected caret index %d.\n",
ret);
770 ok(
id == 0,
"item id wrong\n");
773 ok(
r == 0,
"send message failed\n");
776 ok(
r == 20,
"height wrong\n");
779 ok(
r == -1,
"send message failed\n");
782 ok(
r == 20,
"height wrong\n");
788 ok(
r == 0 ||
broken(
r == -1),
"Failed to set item height, %d.\n",
r);
792 ok(
r == 20,
"Unexpected item height %d.\n",
r);
797 ok(
r == 256,
"Unexpected item height %d.\n",
r);
800 ok(
r == 0,
"Failed to set item height, %d.\n",
r);
803 ok(
r == 65535,
"Unexpected item height %d.\n",
r);
807 ok(
r == 0,
"send message failed\n");
810 ok(
r == 0xff,
"height wrong\n");
817 static const DWORD styles[] =
822 static const DWORD selstyles[] =
829 static const LONG selexpect_single[] = { 0, 0, 1 };
830 static const LONG selexpect_single2[] = { 1, 0, 0 };
831 static const LONG selexpect_multi[] = { 1, 0, 1 };
832 static const LONG selexpect_multi2[] = { 1, 1, 0 };
840 ok(
parent !=
NULL,
"Failed to create parent window.\n");
846 LONG setcursel_expect, selitemrange_expect, getselcount_expect;
847 const LONG *selexpect;
851 ok(listbox !=
NULL,
"%u: Failed to create ListBox window.\n",
j);
855 setcursel_expect =
LB_ERR;
857 getselcount_expect = 2;
858 selexpect = selexpect_multi;
862 setcursel_expect = 2;
863 selitemrange_expect =
LB_ERR;
864 getselcount_expect =
LB_ERR;
865 selexpect = selexpect_single;
871 ok(
ret ==
k,
"%u: Unexpected return value %d, expected %d.\n",
j,
ret,
k);
878 ok(
ret == setcursel_expect,
"%u: Unexpected return value %d.\n",
j,
ret);
880 ok(
ret == selitemrange_expect,
"%u: Unexpected return value %d.\n",
j,
ret);
882 ok(
ret == selitemrange_expect,
"%u: Unexpected return value %d.\n",
j,
ret);
888 ok(
ret == selexpect[
k],
"%u: Unexpected selection state %d, expected %d.\n",
889 j,
ret, selexpect[
k]);
895 "%u: unexpected window styles %#x.\n",
j,
style);
902 ok(!(
style & selstyles[
j]),
"%u: unexpected window styles %#x.\n",
j,
style);
906 ok(
ret == getselcount_expect,
"%u: expected %d from LB_GETSELCOUNT, got %d\n",
907 j, getselcount_expect,
ret);
912 ok(
ret == selexpect[
k],
"%u: Unexpected selection state %d, expected %d.\n",
913 j,
ret, selexpect[
k]);
917 if (setcursel_expect !=
LB_ERR) setcursel_expect = 0;
919 ok(
ret == setcursel_expect,
"%u: Unexpected return value %d.\n",
j,
ret);
921 ok(
ret == selitemrange_expect,
"%u: Unexpected return value %d.\n",
j,
ret);
923 ok(
ret == selitemrange_expect,
"%u: Unexpected return value %d.\n",
j,
ret);
928 ok(
ret == getselcount_expect,
"%u: expected %d from LB_GETSELCOUNT, got %d\n",
929 j, getselcount_expect,
ret);
934 ok(
ret == selexpect[
k],
"%u: Unexpected selection state %d, expected %d.\n",
935 j,
ret, selexpect[
k]);
957 ok(
r ==
MAKELPARAM(0xffff, 1),
"Unexpected ret value %#x.\n",
r );
960 ok(
r ==
MAKELPARAM(0xffff, 1),
"Unexpected ret value %#x.\n",
r );
963 ok(
r ==
MAKELPARAM(0xffff, 1),
"Unexpected ret value %#x.\n",
r );
966 ok(
id == 0,
"item id wrong\n");
968 ok(
id == 1,
"item id wrong\n");
971 ok(
r == 0x1,
"ret %x\n",
r );
978 ok(
r == 1,
"ret %x\n",
r);
980 ok(
r != 0,
"ret %x\n",
r);
983 ok(
id == 2,
"item id wrong\n");
985 ok(
id == 3,
"item id wrong\n");
987 ok(
id == 4,
"item id wrong\n");
989 ok(
id == 5,
"item id wrong\n");
991 ok(
id == 6,
"item id wrong\n");
993 ok(
id == 7,
"item id wrong\n");
1000 ok(
r == 1,
"top %d\n",
r);
1003 ok(
r == 1,
"ret %x\n",
r);
1005 ok(
r == 0,
"ret %x\n",
r);
1008 ok(
r == 1,
"ret %x\n",
r);
1011 ok(
r == 0x10001,
"ret %x\n",
r );
1014 ok(
r == 0x10001,
"ret %x\n",
r );
1017 ok(
r == 0x10005,
"item %x\n",
r );
1020 ok(
r == 0x10005,
"item %x\n",
r );
1035 ok(
id == 0,
"item id wrong\n");
1038 ok(
r ==
TRUE,
"LB_SETITEMDATA returned %d instead of TRUE\n",
r);
1041 ok(
r == 20,
"get item data failed\n");
1051 int itemCount_justFiles;
1052 int itemCount_justDrives;
1053 int itemCount_allFiles;
1054 int itemCount_allDirs;
1059 const char *wildcard =
"*";
1067 ok(
ret,
"Failed to set current directory.\n");
1070 ok(
ret,
"Failed to create test directory.\n");
1083 ok(
hList !=
NULL,
"Failed to create listbox window.\n");
1101 ok (itemCount > 0,
"SendMessage(LB_DIR) did NOT fill the listbox!\n");
1102 itemCount_allFiles = itemCount;
1103 ok(
res + 1 == itemCount,
1104 "SendMessage(LB_DIR, 0, *) returned incorrect index (expected %d got %d)!\n",
1105 itemCount - 1,
res);
1115 ok (itemCount == 0,
"SendMessage(LB_DIR) DID fill the listbox!\n");
1124 ok (
res >= 0,
"SendMessage(LB_DIR, 0, w*.c) failed - 0x%08x\n",
GetLastError());
1128 "expected no change to pathBuffer, got %s\n",
pathBuffer);
1132 ok (itemCount > 0,
"SendMessage(LB_DIR) did NOT fill the listbox!\n");
1133 itemCount_justFiles = itemCount;
1134 ok(
res + 1 == itemCount,
1135 "SendMessage(LB_DIR, 0, w*.c) returned incorrect index (expected %d got %d)!\n",
1136 itemCount - 1,
res);
1139 for (
i = 0;
i < itemCount;
i++)
1145 (*(
p-1) ==
'c' || *(
p-1) ==
'C') &&
1146 (*(
p-2) ==
'.')),
"Element %d (%s) does not fit requested w*.c\n",
i,
pathBuffer);
1153 ok (
res > 0,
"SendMessage(LB_DIR, DDL_DIRECTORY, *) failed - 0x%08x\n",
GetLastError());
1159 itemCount_allDirs = itemCount - itemCount_allFiles;
1160 ok (itemCount >= itemCount_allFiles,
1161 "SendMessage(LB_DIR, DDL_DIRECTORY, *) filled with %d entries, expected > %d\n",
1162 itemCount, itemCount_allFiles);
1163 ok(
res + 1 == itemCount,
1164 "SendMessage(LB_DIR, DDL_DIRECTORY, *) returned incorrect index (expected %d got %d)!\n",
1165 itemCount - 1,
res);
1171 ok (
res == -1,
"SendMessage(LB_DIR, DDL_DIRECTORY, %s) returned %d, expected -1\n",
BAD_EXTENSION,
res);
1175 ok (itemCount == 0,
"SendMessage(LB_DIR) DID fill the listbox!\n");
1181 ok (
res >= 0,
"SendMessage(LB_DIR, DDL_DIRECTORY, w*.c) failed - 0x%08x\n",
GetLastError());
1187 ok (itemCount == itemCount_justFiles,
1188 "SendMessage(LB_DIR, DDL_DIRECTORY, w*.c) filled with %d entries, expected %d\n",
1189 itemCount, itemCount_justFiles);
1190 ok(
res + 1 == itemCount,
1191 "SendMessage(LB_DIR, DDL_DIRECTORY, w*.c) returned incorrect index (expected %d got %d)!\n",
1192 itemCount - 1,
res);
1195 for (
i = 0;
i < itemCount;
i++)
1202 (*(
p-1) ==
'c' || *(
p-1) ==
'C') &&
1203 (*(
p-2) ==
'.')),
"Element %d (%s) does not fit requested w*.c\n",
i,
pathBuffer);
1210 ok (
res >= 0,
"SendMessage(LB_DIR, DDL_DRIVES|DDL_EXCLUSIVE, *) failed - 0x%08x\n",
GetLastError());
1219 "SendMessage(LB_DIR, DDL_DRIVES|DDL_EXCLUSIVE, *) filled with %d entries, expected at least %d\n",
1221 itemCount_justDrives = itemCount;
1222 ok(
res + 1 == itemCount,
"SendMessage(LB_DIR, DDL_DRIVES|DDL_EXCLUSIVE, *) returned incorrect index!\n");
1225 for (
i = 0;
i < itemCount;
i++)
1232 ok( driveletter >=
'a' && driveletter <=
'z',
"Drive letter not in range a..z, got ascii %d\n", driveletter);
1233 if (!(driveletter >=
'a' && driveletter <=
'z'))
1236 itemCount_justDrives--;
1244 ok (
res == itemCount_justDrives -1,
"SendMessage(LB_DIR, DDL_DRIVES|DDL_EXCLUSIVE, %s) returned %d, expected %d\n",
1248 ok (itemCount == itemCount_justDrives,
"SendMessage(LB_DIR) returned %d expected %d\n",
1249 itemCount, itemCount_justDrives);
1255 ok (
res > 0,
"SendMessage(LB_DIR, DDL_DRIVES, *) failed - 0x%08x\n",
GetLastError());
1263 ok (itemCount == itemCount_justDrives + itemCount_allFiles,
1264 "SendMessage(LB_DIR, DDL_DRIVES, *) filled with %d entries, expected %d\n",
1265 itemCount, itemCount_justDrives + itemCount_allFiles);
1266 ok(
res + 1 == itemCount,
"SendMessage(LB_DIR, DDL_DRIVES, *) returned incorrect index!\n");
1272 ok (
res == itemCount_justDrives -1,
"SendMessage(LB_DIR, DDL_DRIVES, %s) returned %d, expected %d\n",
1276 ok (itemCount ==
res + 1,
"SendMessage(LB_DIR) returned %d expected %d\n", itemCount,
res + 1);
1282 ok (
res > 0,
"SendMessage(LB_DIR, DDL_DRIVES, w*.c) failed - 0x%08x\n",
GetLastError());
1290 ok (itemCount == itemCount_justDrives + itemCount_justFiles,
1291 "SendMessage(LB_DIR, DDL_DRIVES, w*.c) filled with %d entries, expected %d\n",
1292 itemCount, itemCount_justDrives + itemCount_justFiles);
1293 ok(
res + 1 == itemCount,
"SendMessage(LB_DIR, DDL_DRIVES, w*.c) returned incorrect index!\n");
1296 for (
i = 0;
i < itemCount;
i++)
1305 ok( driveletter >=
'a' && driveletter <=
'z',
"Drive letter not in range a..z, got ascii %d\n", driveletter);
1311 (*(
p-1) ==
'c' || *(
p-1) ==
'C') &&
1312 (*(
p-2) ==
'.')),
"Element %d (%s) does not fit requested w*.c\n",
i,
pathBuffer);
1320 ok (
res > 0,
"SendMessage(LB_DIR, DDL_DIRECTORY|DDL_DRIVES, *) failed - 0x%08x\n",
GetLastError());
1326 ok (itemCount == itemCount_allFiles + itemCount_justDrives + itemCount_allDirs,
1327 "SendMessage(LB_DIR, DDL_DIRECTORY|DDL_DRIVES) filled with %d entries, expected %d\n",
1328 itemCount, itemCount_allFiles + itemCount_justDrives + itemCount_allDirs);
1329 ok(
res + 1 == itemCount,
"SendMessage(LB_DIR, DDL_DIRECTORY|DDL_DRIVES, w*.c) returned incorrect index!\n");
1335 for (
i = 0;
i < itemCount;
i++)
1341 ok( driveletter >=
'a' && driveletter <=
'z',
"Drive letter not in range a..z, got ascii %d\n", driveletter);
1348 ok (
res == itemCount_justDrives -1,
"SendMessage(LB_DIR, DDL_DIRECTORY|DDL_DRIVES, %s) returned %d, expected %d\n",
1352 ok (itemCount ==
res + 1,
"SendMessage(LB_DIR) returned %d expected %d\n", itemCount,
res + 1);
1358 ok (
res > 0,
"SendMessage(LB_DIR, DDL_DIRECTORY|DDL_DRIVES, w*.c) failed - 0x%08x\n",
GetLastError());
1364 ok (itemCount == itemCount_justFiles + itemCount_justDrives,
1365 "SendMessage(LB_DIR, DDL_DIRECTORY|DDL_DRIVES) filled with %d entries, expected %d\n",
1366 itemCount, itemCount_justFiles + itemCount_justDrives);
1367 ok(
res + 1 == itemCount,
"SendMessage(LB_DIR, DDL_DIRECTORY|DDL_DRIVES, w*.c) returned incorrect index!\n");
1373 for (
i = 0;
i < itemCount;
i++)
1380 ok( driveletter >=
'a' && driveletter <=
'z',
"Drive letter not in range a..z, got ascii %d\n", driveletter);
1384 (*(
p-1) ==
'c' || *(
p-1) ==
'C') &&
1385 (*(
p-2) ==
'.')),
"Element %d (%s) does not fit requested w*.c\n",
i,
pathBuffer);
1392 ok (
res != -1,
"SendMessage(LB_DIR, DDL_DIRECTORY|DDL_EXCLUSIVE, *) failed err %u\n",
1396 ok (itemCount == itemCount_allDirs,
1397 "SendMessage(LB_DIR, DDL_DIRECTORY|DDL_EXCLUSIVE) filled with %d entries, expected %d\n",
1398 itemCount, itemCount_allDirs);
1399 ok(
res + 1 == itemCount,
"SendMessage(LB_DIR, DDL_DIRECTORY|DDL_EXCLUSIVE, *) returned incorrect index!\n");
1412 ok (
res == -1,
"SendMessage(LB_DIR, DDL_DIRECTORY|DDL_EXCLUSIVE, %s) returned %d, expected %d\n",
1416 ok (itemCount ==
res + 1,
"SendMessage(LB_DIR) returned %d expected %d\n", itemCount,
res + 1);
1423 ok (
res ==
LB_ERR,
"SendMessage(LB_DIR, DDL_DIRECTORY|DDL_EXCLUSIVE, w*.c) returned %d expected %d\n",
res,
LB_ERR);
1428 "SendMessage(LB_DIR, DDL_DIRECTORY|DDL_EXCLUSIVE) filled with %d entries, expected %d\n",
1435 ok (
res > 0,
"SendMessage(LB_DIR, DDL_DIRECTORY|DDL_DRIVES|DDL_EXCLUSIVE, w*.c,) failed - 0x%08x\n",
GetLastError());
1439 ok (itemCount == itemCount_justDrives + itemCount_allDirs,
1440 "SendMessage(LB_DIR, DDL_DIRECTORY|DDL_DRIVES|DDL_EXCLUSIVE) filled with %d entries, expected %d\n",
1441 itemCount, itemCount_justDrives + itemCount_allDirs);
1442 ok(
res + 1 == itemCount,
"SendMessage(LB_DIR, DDL_DIRECTORY|DDL_DRIVES|DDL_EXCLUSIVE, w*.c) returned incorrect index!\n");
1444 for (
i = 0;
i < itemCount;
i++)
1450 ok( driveletter >=
'a' && driveletter <=
'z',
"Drive letter not in range a..z, got ascii %d\n", driveletter);
1453 "Element %d (%s) does not fit expected [...]\n",
i,
pathBuffer);
1460 ok (
res == itemCount_justDrives -1,
"SendMessage(LB_DIR, DDL_DIRECTORY|DDL_DRIVES|DDL_EXCLUSIVE, %s) returned %d, expected %d\n",
1464 ok (itemCount ==
res + 1,
"SendMessage(LB_DIR) returned %d expected %d\n", itemCount,
res + 1);
1470 ok (
res >= 0,
"SendMessage(LB_DIR, DDL_DIRECTORY|DDL_DRIVES|DDL_EXCLUSIVE, w*.c,) failed - 0x%08x\n",
GetLastError());
1474 ok (itemCount == itemCount_justDrives,
1475 "SendMessage(LB_DIR, DDL_DIRECTORY|DDL_DRIVES|DDL_EXCLUSIVE) filled with %d entries, expected %d\n",
1476 itemCount, itemCount_justDrives);
1477 ok(
res + 1 == itemCount,
"SendMessage(LB_DIR, DDL_DIRECTORY|DDL_DRIVES|DDL_EXCLUSIVE, w*.c) returned incorrect index!\n");
1479 for (
i = 0;
i < itemCount;
i++)
1485 ok( driveletter >=
'a' && driveletter <=
'z',
"Drive letter not in range a..z, got ascii %d\n", driveletter);
1498#define ID_TEST_LABEL 1001
1499#define ID_TEST_LISTBOX 1002
1558 int itemCount_allDirs;
1559 int itemCount_justFiles;
1560 int itemCount_justDrives;
1582 ok(
ret,
"Failed to register test class.\n");
1588 ok(
hWnd !=
NULL,
"Failed to create container window.\n");
1604 "expected conversion to uppercase, got %s\n",
pathBuffer);
1608 ok (
strcmp(
"default contents",
pathBuffer),
"DlgDirList() did not modify static control!\n");
1612 ok (itemCount > 0,
"DlgDirList() did NOT fill the listbox!\n");
1613 itemCount_justFiles = itemCount;
1616 for (
i = 0;
i < itemCount;
i++)
1622 (*(
p-1) ==
'c' || *(
p-1) ==
'C') &&
1623 (*(
p-2) ==
'.')),
"Element %d (%s) does not fit requested w*.c\n",
i,
pathBuffer);
1632 ok (itemCount == 0,
"DlgDirList() DID fill the listbox!\n");
1637 ok (
res == 1,
"DlgDirList(*.c, DDL_DIRECTORY) failed - 0x%08x\n",
GetLastError());
1644 itemCount_allDirs = itemCount - itemCount_justFiles;
1645 ok (itemCount >= itemCount_justFiles,
"DlgDirList(DDL_DIRECTORY) filled with %d entries, expected > %d\n",
1646 itemCount, itemCount_justFiles);
1651 for (
i = 0;
i < itemCount;
i++)
1658 (*(
p-1) ==
'c' || *(
p-1) ==
'C') &&
1659 (*(
p-2) ==
'.')),
"Element %d (%s) does not fit requested w*.c\n",
i,
pathBuffer);
1668 ok (itemCount == itemCount_allDirs,
"DlgDirList() incorrectly filled the listbox! (expected %d got %d)\n",
1669 itemCount_allDirs, itemCount);
1670 for (
i = 0;
i < itemCount;
i++)
1675 "Element %d (%s) does not fit requested [...]\n",
i,
pathBuffer);
1690 "DlgDirList(DDL_DRIVES) filled with %d entries, expected at least %d\n",
1692 itemCount_justDrives = itemCount;
1695 for (
i = 0;
i < itemCount;
i++)
1702 ok( driveletter >=
'a' && driveletter <=
'z',
"Drive letter not in range a..z, got ascii %d\n", driveletter);
1703 if (!(driveletter >=
'a' && driveletter <=
'z')) {
1706 itemCount_justDrives--;
1716 ok (itemCount == itemCount_justDrives,
"DlgDirList() incorrectly filled the listbox!\n");
1721 ok (
res == 1,
"DlgDirList(*.c, DDL_DIRECTORY|DDL_DRIVES) failed - 0x%08x\n",
GetLastError());
1728 ok (itemCount == itemCount_justFiles + itemCount_justDrives + itemCount_allDirs,
1729 "DlgDirList(DDL_DIRECTORY|DDL_DRIVES) filled with %d entries, expected %d\n",
1730 itemCount, itemCount_justFiles + itemCount_justDrives + itemCount_allDirs);
1736 for (
i = 0;
i < itemCount;
i++)
1743 ok( driveletter >=
'a' && driveletter <=
'z',
"Drive letter not in range a..z, got ascii %d\n", driveletter);
1747 (*(
p-1) ==
'c' || *(
p-1) ==
'C') &&
1748 (*(
p-2) ==
'.')),
"Element %d (%s) does not fit requested w*.c\n",
i,
pathBuffer);
1754 ok (
res == 1,
"DlgDirList(%s, DDL_DIRECTORY|DDL_DRIVES) returned %d expected 1\n",
BAD_EXTENSION,
res);
1757 ok (itemCount == itemCount_justDrives + itemCount_allDirs,
1758 "DlgDirList() incorrectly filled the listbox! (expected %d got %d)\n",
1759 itemCount_justDrives + itemCount_allDirs, itemCount);
1764 ok (
res == 1,
"DlgDirList(*.c, DDL_DIRECTORY|DDL_EXCLUSIVE) failed - 0x%08x\n",
GetLastError());
1768 ok (itemCount == itemCount_allDirs,
1769 "DlgDirList(DDL_DIRECTORY|DDL_EXCLUSIVE) filled with %d entries, expected %d\n",
1770 itemCount, itemCount_allDirs);
1782 ok (
res == 1,
"DlgDirList(%s, DDL_DIRECTORY|DDL_EXCLUSIVE) returned %d expected 1\n",
BAD_EXTENSION,
res);
1785 ok (itemCount == itemCount_allDirs,
"DlgDirList() incorrectly filled the listbox!\n");
1790 ok (
res == 1,
"DlgDirList(*.c, DDL_DIRECTORY|DDL_DRIVES|DDL_EXCLUSIVE) failed - 0x%08x\n",
GetLastError());
1794 ok (itemCount == itemCount_justDrives + itemCount_allDirs,
1795 "DlgDirList(DDL_DIRECTORY|DDL_EXCLUSIVE) filled with %d entries, expected %d\n",
1796 itemCount, itemCount_justDrives + itemCount_allDirs);
1798 for (
i = 0;
i < itemCount;
i++)
1804 ok( driveletter >=
'a' && driveletter <=
'z',
"Drive letter not in range a..z, got ascii %d\n", driveletter);
1807 "Element %d (%s) does not fit expected [...]\n",
i,
pathBuffer);
1813 ok (
res == 1,
"DlgDirList(%s, DDL_DIRECTORY|DDL_DRIVES|DDL_EXCLUSIVE) returned %d expected 1\n",
BAD_EXTENSION,
res);
1816 ok (itemCount == itemCount_justDrives + itemCount_allDirs,
"DlgDirList() incorrectly filled the listbox!\n");
1822 ok (
res != 0,
"DlgDirList(*, DDL_DIRECTORY|DDL_DRIVES) failed - 0x%08x\n",
GetLastError());
1829 "DlgDirSelectEx() with no selection modified last error code from 0xdeadbeef to 0x%08x\n",
1831 ok (
res == 0,
"DlgDirSelectEx() with no selection returned %d, expected 0\n",
res);
1838 for (
i = 0;
i < itemCount;
i++)
1846 ok (
res ==
i,
"SendMessageA(LB_SETCURSEL, %d) failed\n",
i);
1847 if (
sscanf(itemBuffer,
"[-%c-]", &driveletter) == 1)
1853 "DlgDirSelectEx() with selection at %d modified last error code from 0xdeadbeef to 0x%08x\n",
1855 ok(
res == 1,
"DlgDirSelectEx() thinks %s (%s) is not a drive/directory!\n", itemBuffer,
pathBuffer);
1859 "%d: got \"%s\" expected \"%c:\"\n",
i,
pathBuffer, driveletter);
1861 else if (itemBuffer[0] ==
'[')
1867 "DlgDirSelectEx() with selection at %d modified last error code from 0xdeadbeef to 0x%08x\n",
1869 ok(
res == 1,
"DlgDirSelectEx() thinks %s (%s) is not a drive/directory!\n", itemBuffer,
pathBuffer);
1873 ok (*(
p-1) ==
'\\',
"DlgDirSelectEx did NOT tack on a backslash to dir, got %s\n",
pathBuffer);
1875 tempBuffer[0] =
'[';
1878 ok (!
strcmp(tempBuffer, itemBuffer),
"Formatted directory should be %s, got %s\n", tempBuffer, itemBuffer);
1886 "DlgDirSelectEx() with selection at %d modified last error code from 0xdeadbeef to 0x%08x\n",
1888 ok(
res == 0,
"DlgDirSelectEx() thinks %s (%s) is a drive/directory!\n", itemBuffer,
pathBuffer);
1893 strcpy(tempBuffer, itemBuffer);
1907 for (
i = 0;
i < itemCount;
i++)
1915 ok (
res ==
i,
"SendMessage(LB_SETCURSEL, %d) failed\n",
i);
1916 if (
sscanf(itemBuffer,
"[-%c-]", &driveletter) == 1)
1922 "DlgDirSelectEx() with selection at %d modified last error code from 0xdeadbeef to 0x%08x\n",
1924 ok(
res == 1,
"DlgDirSelectEx() thinks %s (%s) is not a drive/directory!\n", itemBuffer,
pathBuffer);
1928 "%d: got \"%s\" expected \"%c:\"\n",
i,
pathBuffer, driveletter);
1930 else if (itemBuffer[0] ==
'[')
1936 "DlgDirSelectEx() with selection at %d modified last error code from 0xdeadbeef to 0x%08x\n",
1938 ok(
res == 1,
"DlgDirSelectEx() thinks %s (%s) is not a drive/directory!\n", itemBuffer,
pathBuffer);
1942 ok (*(
p-1) ==
'\\',
"DlgDirSelectEx did NOT tack on a backslash to dir, got %s\n",
pathBuffer);
1944 tempBuffer[0] =
'[';
1947 ok (!
strcmp(tempBuffer, itemBuffer),
"Formatted directory should be %s, got %s\n", tempBuffer, itemBuffer);
1955 "DlgDirSelectEx() with selection at %d modified last error code from 0xdeadbeef to 0x%08x\n",
1957 ok(
res == 0,
"DlgDirSelectEx() thinks %s (%s) is a drive/directory!\n", itemBuffer,
pathBuffer);
1962 strcpy(tempBuffer, itemBuffer);
1971 ok(
res,
"DlgDirList failed to list C:\\ folders\n");
1976 ok(
res,
"DlgDirList failed to list C:\\* folders\n");
1983 ok(!
res,
"DlgDirList should have failed with 0 but %d was returned\n",
res);
1985 "GetLastError should return 0x589, got 0x%X\n",
GetLastError());
1992 static const DWORD styles[] =
2051 static const struct message getlistboxinfo_seq[] =
2073 static const DWORD styles[] =
2089 ok(items_size >= 100,
"expected at least 100, got %d\n", items_size);
2092 ok(
ret == items_size,
"expected %d, got %d\n", items_size,
ret);
2096 ok(
ret == items_size,
"expected %d, got %d\n", items_size,
ret);
2100 ok(
ret == items_size,
"expected %d, got %d\n", items_size,
ret);
2106 ok(
ret == 0,
"unexpected return value %d\n",
ret);
2110 for (
j = 0;
j < items_size - 1;
j++)
2113 ok(
ret ==
j,
"expected %d, got %d\n",
j,
ret);
2119 ok(
ret == items_size,
"expected %d, got %d\n", items_size,
ret);
2123 ok(
ret == items_size - 1,
"expected %d, got %d\n", items_size - 1,
ret);
2125 ok(
ret == items_size,
"expected %d, got %d\n", items_size,
ret);
2127 ok(
ret > items_size,
"expected it to grow past %d, got %d\n", items_size,
ret);
2144 ok(capture == listbox,
"got %p expected %p\n", capture, listbox);
2150 ok(capture ==
NULL,
"got %p\n", capture);
2169 ok(
res == 0,
"Got wrong initial horizontal extent: %u\n",
res);
2174 ok(br ==
TRUE,
"GetScrollInfo failed\n");
2175 ok(
sinfo.nMin == 0,
"got wrong min: %u\n",
sinfo.nMin);
2176 ok(
sinfo.nMax == 100,
"got wrong max: %u\n",
sinfo.nMax);
2178 "List box should not have a horizontal scroll bar\n");
2184 ok(
res == 64,
"Got wrong horizontal extent: %u\n",
res);
2189 ok(br ==
TRUE,
"GetScrollInfo failed\n");
2190 ok(
sinfo.nMin == 0,
"got wrong min: %u\n",
sinfo.nMin);
2191 ok(
sinfo.nMax == 100,
"got wrong max: %u\n",
sinfo.nMax);
2193 "List box should not have a horizontal scroll bar\n");
2199 ok(
res == 184,
"Got wrong horizontal extent: %u\n",
res);
2204 ok(br ==
TRUE,
"GetScrollInfo failed\n");
2205 ok(
sinfo.nMin == 0,
"got wrong min: %u\n",
sinfo.nMin);
2206 ok(
sinfo.nMax == 100,
"got wrong max: %u\n",
sinfo.nMax);
2208 "List box should not have a horizontal scroll bar\n");
2215 ok(
res == 0,
"Got wrong initial horizontal extent: %u\n",
res);
2220 ok(br ==
TRUE,
"GetScrollInfo failed\n");
2221 ok(
sinfo.nMin == 0,
"got wrong min: %u\n",
sinfo.nMin);
2222 ok(
sinfo.nMax == 100,
"got wrong max: %u\n",
sinfo.nMax);
2224 "List box should not have a horizontal scroll bar\n");
2230 ok(
res == 64,
"Got wrong horizontal extent: %u\n",
res);
2235 ok(br ==
TRUE,
"GetScrollInfo failed\n");
2236 ok(
sinfo.nMin == 0,
"got wrong min: %u\n",
sinfo.nMin);
2237 ok(
sinfo.nMax == 63,
"got wrong max: %u\n",
sinfo.nMax);
2239 "List box should not have a horizontal scroll bar\n");
2245 ok(
res == 184,
"Got wrong horizontal extent: %u\n",
res);
2250 ok(br ==
TRUE,
"GetScrollInfo failed\n");
2251 ok(
sinfo.nMin == 0,
"got wrong min: %u\n",
sinfo.nMin);
2252 ok(
sinfo.nMax == 183,
"got wrong max: %u\n",
sinfo.nMax);
2254 "List box should have a horizontal scroll bar\n");
2259 ok(
res == 0,
"Got wrong horizontal extent: %u\n",
res);
2264 ok(br ==
TRUE,
"GetScrollInfo failed\n");
2265 ok(
sinfo.nMin == 0,
"got wrong min: %u\n",
sinfo.nMin);
2266 ok(
sinfo.nMax == 0,
"got wrong max: %u\n",
sinfo.nMax);
2268 "List box should not have a horizontal scroll bar\n");
2276 ok(
res == 0,
"Got wrong initial horizontal extent: %u\n",
res);
2281 ok(br ==
TRUE,
"GetScrollInfo failed\n");
2282 ok(
sinfo.nMin == 0,
"got wrong min: %u\n",
sinfo.nMin);
2283 ok(
sinfo.nMax == 0,
"got wrong max: %u\n",
sinfo.nMax);
2285 "List box should have a horizontal scroll bar\n");
2291 ok(
res == 64,
"Got wrong horizontal extent: %u\n",
res);
2296 ok(br ==
TRUE,
"GetScrollInfo failed\n");
2297 ok(
sinfo.nMin == 0,
"got wrong min: %u\n",
sinfo.nMin);
2298 ok(
sinfo.nMax == 63,
"got wrong max: %u\n",
sinfo.nMax);
2300 "List box should have a horizontal scroll bar\n");
2306 ok(
res == 184,
"Got wrong horizontal extent: %u\n",
res);
2311 ok(br ==
TRUE,
"GetScrollInfo failed\n");
2312 ok(
sinfo.nMin == 0,
"got wrong min: %u\n",
sinfo.nMin);
2313 ok(
sinfo.nMax == 183,
"got wrong max: %u\n",
sinfo.nMax);
2315 "List box should have a horizontal scroll bar\n");
2320 ok(
res == 0,
"Got wrong horizontal extent: %u\n",
res);
2325 ok(br ==
TRUE,
"GetScrollInfo failed\n");
2326 ok(
sinfo.nMin == 0,
"got wrong min: %u\n",
sinfo.nMin);
2327 ok(
sinfo.nMax == 0,
"got wrong max: %u\n",
sinfo.nMax);
2329 "List box should have a horizontal scroll bar\n");
2341 { 1, 1, 1,
LB_ERR}, {0,0,0,0},
2342 { 2, 2, 2,
LB_ERR}, {0,0,0,0},
2348 { 1, 1, 1,
LB_ERR}, {0,0,0,0},
2349 { 2, 2, 2,
LB_ERR}, {0,0,0,0},
2353 {{ 0,
LB_ERR, 0, 0}, {0,0,0,0},
2354 { 1, 1, 1, 1}, {0,0,0,0},
2355 { 2, 1, 2, 1}, {0,0,0,0},
2356 { 0,
LB_ERR, 0, 2}, {0,0,0,0}};
2360 { 1, 1, 1,
LB_ERR}, {0,0,0,0},
2361 { 2, 2, 2,
LB_ERR}, {0,0,0,0},
2365 {{ 0,
LB_ERR, 0, 0}, {0,0,0,0},
2366 { 1, 1, 1, 1}, {0,0,0,0},
2367 { 2, 2, 2, 1}, {0,0,0,0},
2368 { 0,
LB_ERR, 0, 2}, {0,0,0,0}};
2372 { 1, 1, 1,
LB_ERR}, {0,0,0,0},
2373 { 2, 2, 2,
LB_ERR}, {0,0,0,0},
2377 {{ 0,
LB_ERR, 0, 0}, {0,0,0,0},
2378 { 1, 1, 1, 1}, {0,0,0,0},
2379 { 2, 2, 2, 1}, {0,0,0,0},
2380 { 0,
LB_ERR, 0, 2}, {0,0,0,0}};
2384 { 1, 1, 1,
LB_ERR}, {0,0,0,0},
2385 { 2, 2, 2,
LB_ERR}, {0,0,0,0},
2458 ok(
ret == 0,
"expected 0, got %ld\n",
ret);
2460 ok(
ret == 1,
"expected 1, got %ld\n",
ret);
2462 ok(
ret == 2,
"expected 2, got %ld\n",
ret);
2465 "LB_ADDSTRING (LBS_HASSTRINGS, ownerdraw)",
FALSE);
2476 ok(
ret == 0,
"expected 0, got %ld\n",
ret);
2478 ok(
ret == 1,
"expected 1, got %ld\n",
ret);
2480 ok(
ret == 2,
"expected 2, got %ld\n",
ret);
2493 ok(
ret == 0,
"expected 0, got %ld\n",
ret);
2495 ok(
ret == 1,
"expected 1, got %ld\n",
ret);
2497 ok(
ret == 2,
"expected 2, got %ld\n",
ret);
2510 ok(
ret == 0,
"expected 0, got %ld\n",
ret);
2512 ok(
ret == 0,
"expected 0, got %ld\n",
ret);
2514 ok(
ret == 1,
"expected 1, got %ld\n",
ret);
2524 static const DWORD invalid_styles[] =
2533 static const UINT invalid_idx[] = { -2, 2 };
2534 static const UINT valid_idx[] = { 0, 1 };
2544 ok(listbox !=
NULL,
"Failed to create ListBox window.\n");
2547 ok(
ret == 0,
"Unexpected return value %d.\n",
ret);
2549 ok(
ret == 1,
"Unexpected return value %d.\n",
ret);
2551 ok(
ret == 2,
"Unexpected return value %d.\n",
ret);
2583 ok(
ret == text_len,
"Unexpected return value %d.\n",
ret);
2587 ok(
ret ==
sizeof(
data),
"Unexpected return value %d.\n",
ret);
2591 ok(
ret == 0,
"Unexpected return value %d.\n",
ret);
2612 ok(
parent !=
NULL,
"Failed to create parent window.\n");
2620 ok(listbox !=
NULL,
"Failed to create a listbox.\n");
2623 ok((
style & invalid_styles[
i]) == invalid_styles[
i],
"%u: unexpected window styles %#x.\n",
i,
style);
static struct _test_info results[8]
char * strcat(char *DstString, const char *SrcString)
int strcmp(const char *String1, const char *String2)
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
ACPI_SIZE strlen(const char *String)
char * strcpy(char *DstString, const char *SrcString)
char * strchr(const char *String, int ch)
static BOOL heap_free(void *mem)
static NTSTATUS zero_data(device_extension *Vcb, fcb *fcb, uint64_t start, uint64_t length, PIRP Irp, LIST_ENTRY *rollback)
static void init_msg_sequences(struct msg_sequence **seq, int n)
static void flush_sequences(struct msg_sequence **seq, int n)
#define INVALID_HANDLE_VALUE
#define CreateFileA(a, b, c, d, e, f, g)
#define GetCurrentProcess()
#define FILE_ATTRIBUTE_NORMAL
#define WideCharToMultiByte
BOOL WINAPI DeleteFileA(IN LPCSTR lpFileName)
BOOL WINAPI RemoveDirectoryA(IN LPCSTR lpPathName)
BOOL WINAPI CreateDirectoryA(IN LPCSTR lpPathName, IN LPSECURITY_ATTRIBUTES lpSecurityAttributes)
HMODULE WINAPI DECLSPEC_HOTPATCH GetModuleHandleA(LPCSTR lpModuleName)
DWORD WINAPI GetCurrentDirectoryA(IN DWORD nBufferLength, OUT LPSTR lpBuffer)
BOOL WINAPI SetCurrentDirectoryA(IN LPCSTR lpPathName)
DWORD WINAPI GetTempPathA(IN DWORD nBufferLength, OUT LPSTR lpBuffer)
GLint GLint GLint GLint GLint x
GLint GLint GLint GLint GLint GLint y
GLuint GLuint GLsizei count
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLdouble GLdouble GLdouble r
GLsizei const GLchar *const * strings
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
_Check_return_ _CRTIMP int __cdecl sscanf(_In_z_ const char *_Src, _In_z_ _Scanf_format_string_ const char *_Format,...)
static void test_listbox_height(void)
static LRESULT WINAPI main_window_proc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
static LRESULT CALLBACK listbox_container_window_procA(HWND hwnd, UINT uiMsg, WPARAM wParam, LPARAM lParam)
static void test_listbox_dlgdir(void)
static void test_listbox(void)
static HWND create_listbox(DWORD add_style, HWND parent)
static void test_listbox_LB_DIR(void)
static void test_item_height(void)
static const struct message lb_addstring_ownerdraw_parent_seq[]
static void test_set_count(void)
#define listbox_ok(t, s, got)
static void listbox_query(HWND handle, struct listbox_stat *results)
static void test_WM_MEASUREITEM(void)
static void test_itemfrompoint(void)
static BOOL on_listbox_container_create(HWND hwnd, CREATESTRUCTA *lpcs)
static void test_LB_SETCURSEL(void)
static void test_changing_selection_styles(void)
static void keypress(HWND handle, WPARAM keycode, BYTE scancode, BOOL extended)
static struct msg_sequence * sequences[NUM_MSG_SEQUENCES]
static void test_init_storage(void)
static const struct message lb_addstring_sort_parent_seq[]
static LRESULT WINAPI listbox_wnd_proc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
static void test_LB_SETSEL(void)
static void test_missing_lbuttonup(void)
#define listbox_test_query(exp, got)
static void test_LBS_NODATA(void)
static unsigned hash_Ly(const char *str)
static void test_LB_SELITEMRANGE(void)
static void test_extents(void)
static HWND create_parent(void)
static void test_ownerdraw(void)
static const char BAD_EXTENSION[]
static unsigned hash_Ly_W(const WCHAR *str)
static void test_GetListBoxInfo(void)
static BOOL RegisterListboxWindowClass(HINSTANCE hInst)
static void buttonpress(HWND handle, WORD x, WORD y)
static void test_listbox_item_data(void)
static const struct message empty_seq[]
static DWORD *static HFONT(WINAPI *pCreateFontIndirectExA)(const ENUMLOGFONTEXDVA *)
#define todo_wine_if(is_todo)
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
#define WS_OVERLAPPEDWINDOW
#define LBS_DISABLENOSCROLL
#define WS_EX_NOPARENTNOTIFY
#define LBS_OWNERDRAWFIXED
#define LBS_OWNERDRAWVARIABLE
#define LBS_NOINTEGRALHEIGHT
struct listbox_stat sel sel_todo
struct listbox_stat click click_todo
struct listbox_stat init init_todo
struct listbox_stat step step_todo
static BOOL load_v6_module(ULONG_PTR *pcookie, HANDLE *hCtx)
static void unload_v6_module(ULONG_PTR cookie, HANDLE hCtx)
DWORD WINAPI GetLastError(void)
#define ERROR_NO_WILDCARD_CHARACTERS
HGDIOBJ WINAPI GetStockObject(_In_ int)
int WINAPI GetClipBox(_In_ HDC, _Out_ LPRECT)
HGDIOBJ WINAPI GetCurrentObject(_In_ HDC, _In_ UINT)
BOOL WINAPI GetTextMetricsA(_In_ HDC, _Out_ LPTEXTMETRICA)
int WINAPI ReleaseDC(_In_opt_ HWND, _In_ HDC)
#define SetWindowLongPtrA
#define LB_FINDSTRINGEXACT
#define LB_SETHORIZONTALEXTENT
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)
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)
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)
__analysis_noreturn void WINAPI PostQuitMessage(_In_ int)
BOOL WINAPI ValidateRect(_In_opt_ HWND, _In_opt_ LPCRECT)
BOOL WINAPI SetForegroundWindow(_In_ HWND)
#define LB_GETANCHORINDEX
LRESULT WINAPI SendMessageA(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
BOOL WINAPI IsRectEmpty(_In_ LPCRECT)
HDC WINAPI GetDCEx(_In_opt_ HWND, _In_opt_ HRGN, _In_ DWORD)
HWND WINAPI GetCapture(void)
#define GetWindowLongPtrA
HWND WINAPI GetDlgItem(_In_opt_ HWND, _In_ int)
#define LB_GETLISTBOXINFO
HWND WINAPI GetDesktopWindow(void)
BOOL WINAPI GetClientRect(_In_ HWND, _Out_ LPRECT)
ATOM WINAPI RegisterClassA(_In_ CONST WNDCLASSA *)
HWND WINAPI SetFocus(_In_opt_ HWND)
#define LB_GETHORIZONTALEXTENT
BOOL WINAPI UpdateWindow(_In_ HWND)
#define KEYEVENTF_EXTENDEDKEY
int WINAPI GetScrollPos(_In_ HWND, _In_ int)
LRESULT(CALLBACK * WNDPROC)(HWND, UINT, WPARAM, LPARAM)
BOOL WINAPI GetScrollInfo(_In_ HWND, _In_ int, _Inout_ LPSCROLLINFO)
BOOL WINAPI GetUpdateRect(_In_ HWND, _Out_opt_ LPRECT, _In_ BOOL)
#define WM_WINDOWPOSCHANGED
BOOL WINAPI DestroyWindow(_In_ HWND)
int WINAPI DlgDirListA(_In_ HWND, _Inout_ LPSTR, _In_ int, _In_ int, _In_ UINT)
BOOL WINAPI DlgDirSelectExA(_In_ HWND hwndDlg, _Out_writes_(chCount) LPSTR lpString, _In_ int chCount, _In_ int idListBox)
BOOL WINAPI EqualRect(_In_ LPCRECT, _In_ LPCRECT)
DWORD WINAPI GetListBoxInfo(_In_ HWND)
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)