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);
712 ok(
ret == 0,
"Unexpected return value %d.\n",
ret);
714 ok(
ret == 1,
"Unexpected anchor index %d.\n",
ret);
717 ok(
ret == 0,
"Unexpected return value %d.\n",
ret);
719 ok(
ret == 1,
"Unexpected anchor index %d.\n",
ret);
725 ok(
list !=
NULL,
"Failed to create ListBox window.\n");
728 ok(
ret == -1,
"Unexpected anchor index %d.\n",
ret);
731 ok(
ret == 0,
"Unexpected return value %d.\n",
ret);
733 ok(
ret == 0,
"Unexpected anchor index %d.\n",
ret);
736 ok(
ret == 0,
"Unexpected return value %d.\n",
ret);
738 ok(
ret == 1,
"Unexpected anchor index %d.\n",
ret);
741 ok(
ret == 0,
"Unexpected return value %d.\n",
ret);
743 ok(
ret == 1,
"Unexpected anchor index %d.\n",
ret);
758 ok(
id == 0,
"item id wrong\n");
761 ok(
r == 0,
"send message failed\n");
764 ok(
r == 20,
"height wrong\n");
767 ok(
r == -1,
"send message failed\n");
770 ok(
r == 20,
"height wrong\n");
773 ok(
r == -1,
"Failed to set item height, %d.\n",
r);
776 ok(
r == 20,
"Unexpected item height %d.\n",
r);
779 ok(
r == 0,
"send message failed\n");
782 ok(
r == 0xff,
"height wrong\n");
789 static const DWORD styles[] =
794 static const DWORD selstyles[] =
801 static const LONG selexpect_single[] = { 0, 0, 1 };
802 static const LONG selexpect_single2[] = { 1, 0, 0 };
803 static const LONG selexpect_multi[] = { 1, 0, 1 };
804 static const LONG selexpect_multi2[] = { 1, 1, 0 };
812 ok(
parent !=
NULL,
"Failed to create parent window.\n");
818 LONG setcursel_expect, selitemrange_expect, getselcount_expect;
819 const LONG *selexpect;
823 ok(listbox !=
NULL,
"%u: Failed to create ListBox window.\n",
j);
827 setcursel_expect =
LB_ERR;
829 getselcount_expect = 2;
830 selexpect = selexpect_multi;
834 setcursel_expect = 2;
835 selitemrange_expect =
LB_ERR;
836 getselcount_expect =
LB_ERR;
837 selexpect = selexpect_single;
843 ok(
ret ==
k,
"%u: Unexpected return value %d, expected %d.\n",
j,
ret,
k);
850 ok(
ret == setcursel_expect,
"%u: Unexpected return value %d.\n",
j,
ret);
852 ok(
ret == selitemrange_expect,
"%u: Unexpected return value %d.\n",
j,
ret);
854 ok(
ret == selitemrange_expect,
"%u: Unexpected return value %d.\n",
j,
ret);
860 ok(
ret == selexpect[
k],
"%u: Unexpected selection state %d, expected %d.\n",
861 j,
ret, selexpect[
k]);
867 "%u: unexpected window styles %#x.\n",
j,
style);
874 ok(!(
style & selstyles[
j]),
"%u: unexpected window styles %#x.\n",
j,
style);
878 ok(
ret == getselcount_expect,
"%u: expected %d from LB_GETSELCOUNT, got %d\n",
879 j, getselcount_expect,
ret);
884 ok(
ret == selexpect[
k],
"%u: Unexpected selection state %d, expected %d.\n",
885 j,
ret, selexpect[
k]);
889 if (setcursel_expect !=
LB_ERR) setcursel_expect = 0;
891 ok(
ret == setcursel_expect,
"%u: Unexpected return value %d.\n",
j,
ret);
893 ok(
ret == selitemrange_expect,
"%u: Unexpected return value %d.\n",
j,
ret);
895 ok(
ret == selitemrange_expect,
"%u: Unexpected return value %d.\n",
j,
ret);
900 ok(
ret == getselcount_expect,
"%u: expected %d from LB_GETSELCOUNT, got %d\n",
901 j, getselcount_expect,
ret);
906 ok(
ret == selexpect[
k],
"%u: Unexpected selection state %d, expected %d.\n",
907 j,
ret, selexpect[
k]);
929 ok(
r ==
MAKELPARAM(0xffff, 1),
"Unexpected ret value %#x.\n",
r );
932 ok(
r ==
MAKELPARAM(0xffff, 1),
"Unexpected ret value %#x.\n",
r );
935 ok(
r ==
MAKELPARAM(0xffff, 1),
"Unexpected ret value %#x.\n",
r );
938 ok(
id == 0,
"item id wrong\n");
940 ok(
id == 1,
"item id wrong\n");
943 ok(
r == 0x1,
"ret %x\n",
r );
950 ok(
r == 1,
"ret %x\n",
r);
952 ok(
r != 0,
"ret %x\n",
r);
955 ok(
id == 2,
"item id wrong\n");
957 ok(
id == 3,
"item id wrong\n");
959 ok(
id == 4,
"item id wrong\n");
961 ok(
id == 5,
"item id wrong\n");
963 ok(
id == 6,
"item id wrong\n");
965 ok(
id == 7,
"item id wrong\n");
972 ok(
r == 1,
"top %d\n",
r);
975 ok(
r == 1,
"ret %x\n",
r);
977 ok(
r == 0,
"ret %x\n",
r);
980 ok(
r == 1,
"ret %x\n",
r);
983 ok(
r == 0x10001,
"ret %x\n",
r );
986 ok(
r == 0x10001,
"ret %x\n",
r );
989 ok(
r == 0x10005,
"item %x\n",
r );
992 ok(
r == 0x10005,
"item %x\n",
r );
1007 ok(
id == 0,
"item id wrong\n");
1010 ok(
r ==
TRUE,
"LB_SETITEMDATA returned %d instead of TRUE\n",
r);
1013 ok(
r == 20,
"get item data failed\n");
1023 int itemCount_justFiles;
1024 int itemCount_justDrives;
1025 int itemCount_allFiles;
1026 int itemCount_allDirs;
1031 const char *wildcard =
"*";
1039 ok(
ret,
"Failed to set current directory.\n");
1042 ok(
ret,
"Failed to create test directory.\n");
1055 ok(
hList !=
NULL,
"Failed to create listbox window.\n");
1073 ok (itemCount > 0,
"SendMessage(LB_DIR) did NOT fill the listbox!\n");
1074 itemCount_allFiles = itemCount;
1075 ok(
res + 1 == itemCount,
1076 "SendMessage(LB_DIR, 0, *) returned incorrect index (expected %d got %d)!\n",
1077 itemCount - 1,
res);
1087 ok (itemCount == 0,
"SendMessage(LB_DIR) DID fill the listbox!\n");
1096 ok (
res >= 0,
"SendMessage(LB_DIR, 0, w*.c) failed - 0x%08x\n",
GetLastError());
1100 "expected no change to pathBuffer, got %s\n",
pathBuffer);
1104 ok (itemCount > 0,
"SendMessage(LB_DIR) did NOT fill the listbox!\n");
1105 itemCount_justFiles = itemCount;
1106 ok(
res + 1 == itemCount,
1107 "SendMessage(LB_DIR, 0, w*.c) returned incorrect index (expected %d got %d)!\n",
1108 itemCount - 1,
res);
1111 for (
i = 0;
i < itemCount;
i++)
1117 (*(
p-1) ==
'c' || *(
p-1) ==
'C') &&
1118 (*(
p-2) ==
'.')),
"Element %d (%s) does not fit requested w*.c\n",
i,
pathBuffer);
1125 ok (
res > 0,
"SendMessage(LB_DIR, DDL_DIRECTORY, *) failed - 0x%08x\n",
GetLastError());
1131 itemCount_allDirs = itemCount - itemCount_allFiles;
1132 ok (itemCount >= itemCount_allFiles,
1133 "SendMessage(LB_DIR, DDL_DIRECTORY, *) filled with %d entries, expected > %d\n",
1134 itemCount, itemCount_allFiles);
1135 ok(
res + 1 == itemCount,
1136 "SendMessage(LB_DIR, DDL_DIRECTORY, *) returned incorrect index (expected %d got %d)!\n",
1137 itemCount - 1,
res);
1143 ok (
res == -1,
"SendMessage(LB_DIR, DDL_DIRECTORY, %s) returned %d, expected -1\n",
BAD_EXTENSION,
res);
1147 ok (itemCount == 0,
"SendMessage(LB_DIR) DID fill the listbox!\n");
1153 ok (
res >= 0,
"SendMessage(LB_DIR, DDL_DIRECTORY, w*.c) failed - 0x%08x\n",
GetLastError());
1159 ok (itemCount == itemCount_justFiles,
1160 "SendMessage(LB_DIR, DDL_DIRECTORY, w*.c) filled with %d entries, expected %d\n",
1161 itemCount, itemCount_justFiles);
1162 ok(
res + 1 == itemCount,
1163 "SendMessage(LB_DIR, DDL_DIRECTORY, w*.c) returned incorrect index (expected %d got %d)!\n",
1164 itemCount - 1,
res);
1167 for (
i = 0;
i < itemCount;
i++)
1174 (*(
p-1) ==
'c' || *(
p-1) ==
'C') &&
1175 (*(
p-2) ==
'.')),
"Element %d (%s) does not fit requested w*.c\n",
i,
pathBuffer);
1182 ok (
res >= 0,
"SendMessage(LB_DIR, DDL_DRIVES|DDL_EXCLUSIVE, *) failed - 0x%08x\n",
GetLastError());
1191 "SendMessage(LB_DIR, DDL_DRIVES|DDL_EXCLUSIVE, *) filled with %d entries, expected at least %d\n",
1193 itemCount_justDrives = itemCount;
1194 ok(
res + 1 == itemCount,
"SendMessage(LB_DIR, DDL_DRIVES|DDL_EXCLUSIVE, *) returned incorrect index!\n");
1197 for (
i = 0;
i < itemCount;
i++)
1204 ok( driveletter >=
'a' && driveletter <=
'z',
"Drive letter not in range a..z, got ascii %d\n", driveletter);
1205 if (!(driveletter >=
'a' && driveletter <=
'z'))
1208 itemCount_justDrives--;
1216 ok (
res == itemCount_justDrives -1,
"SendMessage(LB_DIR, DDL_DRIVES|DDL_EXCLUSIVE, %s) returned %d, expected %d\n",
1220 ok (itemCount == itemCount_justDrives,
"SendMessage(LB_DIR) returned %d expected %d\n",
1221 itemCount, itemCount_justDrives);
1227 ok (
res > 0,
"SendMessage(LB_DIR, DDL_DRIVES, *) failed - 0x%08x\n",
GetLastError());
1235 ok (itemCount == itemCount_justDrives + itemCount_allFiles,
1236 "SendMessage(LB_DIR, DDL_DRIVES, *) filled with %d entries, expected %d\n",
1237 itemCount, itemCount_justDrives + itemCount_allFiles);
1238 ok(
res + 1 == itemCount,
"SendMessage(LB_DIR, DDL_DRIVES, *) returned incorrect index!\n");
1244 ok (
res == itemCount_justDrives -1,
"SendMessage(LB_DIR, DDL_DRIVES, %s) returned %d, expected %d\n",
1248 ok (itemCount ==
res + 1,
"SendMessage(LB_DIR) returned %d expected %d\n", itemCount,
res + 1);
1254 ok (
res > 0,
"SendMessage(LB_DIR, DDL_DRIVES, w*.c) failed - 0x%08x\n",
GetLastError());
1262 ok (itemCount == itemCount_justDrives + itemCount_justFiles,
1263 "SendMessage(LB_DIR, DDL_DRIVES, w*.c) filled with %d entries, expected %d\n",
1264 itemCount, itemCount_justDrives + itemCount_justFiles);
1265 ok(
res + 1 == itemCount,
"SendMessage(LB_DIR, DDL_DRIVES, w*.c) returned incorrect index!\n");
1268 for (
i = 0;
i < itemCount;
i++)
1277 ok( driveletter >=
'a' && driveletter <=
'z',
"Drive letter not in range a..z, got ascii %d\n", driveletter);
1283 (*(
p-1) ==
'c' || *(
p-1) ==
'C') &&
1284 (*(
p-2) ==
'.')),
"Element %d (%s) does not fit requested w*.c\n",
i,
pathBuffer);
1292 ok (
res > 0,
"SendMessage(LB_DIR, DDL_DIRECTORY|DDL_DRIVES, *) failed - 0x%08x\n",
GetLastError());
1298 ok (itemCount == itemCount_allFiles + itemCount_justDrives + itemCount_allDirs,
1299 "SendMessage(LB_DIR, DDL_DIRECTORY|DDL_DRIVES) filled with %d entries, expected %d\n",
1300 itemCount, itemCount_allFiles + itemCount_justDrives + itemCount_allDirs);
1301 ok(
res + 1 == itemCount,
"SendMessage(LB_DIR, DDL_DIRECTORY|DDL_DRIVES, w*.c) returned incorrect index!\n");
1307 for (
i = 0;
i < itemCount;
i++)
1313 ok( driveletter >=
'a' && driveletter <=
'z',
"Drive letter not in range a..z, got ascii %d\n", driveletter);
1320 ok (
res == itemCount_justDrives -1,
"SendMessage(LB_DIR, DDL_DIRECTORY|DDL_DRIVES, %s) returned %d, expected %d\n",
1324 ok (itemCount ==
res + 1,
"SendMessage(LB_DIR) returned %d expected %d\n", itemCount,
res + 1);
1330 ok (
res > 0,
"SendMessage(LB_DIR, DDL_DIRECTORY|DDL_DRIVES, w*.c) failed - 0x%08x\n",
GetLastError());
1336 ok (itemCount == itemCount_justFiles + itemCount_justDrives,
1337 "SendMessage(LB_DIR, DDL_DIRECTORY|DDL_DRIVES) filled with %d entries, expected %d\n",
1338 itemCount, itemCount_justFiles + itemCount_justDrives);
1339 ok(
res + 1 == itemCount,
"SendMessage(LB_DIR, DDL_DIRECTORY|DDL_DRIVES, w*.c) returned incorrect index!\n");
1345 for (
i = 0;
i < itemCount;
i++)
1352 ok( driveletter >=
'a' && driveletter <=
'z',
"Drive letter not in range a..z, got ascii %d\n", driveletter);
1356 (*(
p-1) ==
'c' || *(
p-1) ==
'C') &&
1357 (*(
p-2) ==
'.')),
"Element %d (%s) does not fit requested w*.c\n",
i,
pathBuffer);
1364 ok (
res != -1,
"SendMessage(LB_DIR, DDL_DIRECTORY|DDL_EXCLUSIVE, *) failed err %u\n",
1368 ok (itemCount == itemCount_allDirs,
1369 "SendMessage(LB_DIR, DDL_DIRECTORY|DDL_EXCLUSIVE) filled with %d entries, expected %d\n",
1370 itemCount, itemCount_allDirs);
1371 ok(
res + 1 == itemCount,
"SendMessage(LB_DIR, DDL_DIRECTORY|DDL_EXCLUSIVE, *) returned incorrect index!\n");
1384 ok (
res == -1,
"SendMessage(LB_DIR, DDL_DIRECTORY|DDL_EXCLUSIVE, %s) returned %d, expected %d\n",
1388 ok (itemCount ==
res + 1,
"SendMessage(LB_DIR) returned %d expected %d\n", itemCount,
res + 1);
1395 ok (
res ==
LB_ERR,
"SendMessage(LB_DIR, DDL_DIRECTORY|DDL_EXCLUSIVE, w*.c) returned %d expected %d\n",
res,
LB_ERR);
1400 "SendMessage(LB_DIR, DDL_DIRECTORY|DDL_EXCLUSIVE) filled with %d entries, expected %d\n",
1407 ok (
res > 0,
"SendMessage(LB_DIR, DDL_DIRECTORY|DDL_DRIVES|DDL_EXCLUSIVE, w*.c,) failed - 0x%08x\n",
GetLastError());
1411 ok (itemCount == itemCount_justDrives + itemCount_allDirs,
1412 "SendMessage(LB_DIR, DDL_DIRECTORY|DDL_DRIVES|DDL_EXCLUSIVE) filled with %d entries, expected %d\n",
1413 itemCount, itemCount_justDrives + itemCount_allDirs);
1414 ok(
res + 1 == itemCount,
"SendMessage(LB_DIR, DDL_DIRECTORY|DDL_DRIVES|DDL_EXCLUSIVE, w*.c) returned incorrect index!\n");
1416 for (
i = 0;
i < itemCount;
i++)
1422 ok( driveletter >=
'a' && driveletter <=
'z',
"Drive letter not in range a..z, got ascii %d\n", driveletter);
1425 "Element %d (%s) does not fit expected [...]\n",
i,
pathBuffer);
1432 ok (
res == itemCount_justDrives -1,
"SendMessage(LB_DIR, DDL_DIRECTORY|DDL_DRIVES|DDL_EXCLUSIVE, %s) returned %d, expected %d\n",
1436 ok (itemCount ==
res + 1,
"SendMessage(LB_DIR) returned %d expected %d\n", itemCount,
res + 1);
1442 ok (
res >= 0,
"SendMessage(LB_DIR, DDL_DIRECTORY|DDL_DRIVES|DDL_EXCLUSIVE, w*.c,) failed - 0x%08x\n",
GetLastError());
1446 ok (itemCount == itemCount_justDrives,
1447 "SendMessage(LB_DIR, DDL_DIRECTORY|DDL_DRIVES|DDL_EXCLUSIVE) filled with %d entries, expected %d\n",
1448 itemCount, itemCount_justDrives);
1449 ok(
res + 1 == itemCount,
"SendMessage(LB_DIR, DDL_DIRECTORY|DDL_DRIVES|DDL_EXCLUSIVE, w*.c) returned incorrect index!\n");
1451 for (
i = 0;
i < itemCount;
i++)
1457 ok( driveletter >=
'a' && driveletter <=
'z',
"Drive letter not in range a..z, got ascii %d\n", driveletter);
1470#define ID_TEST_LABEL 1001
1471#define ID_TEST_LISTBOX 1002
1530 int itemCount_allDirs;
1531 int itemCount_justFiles;
1532 int itemCount_justDrives;
1554 ok(
ret,
"Failed to register test class.\n");
1560 ok(
hWnd !=
NULL,
"Failed to create container window.\n");
1576 "expected conversion to uppercase, got %s\n",
pathBuffer);
1580 ok (
strcmp(
"default contents",
pathBuffer),
"DlgDirList() did not modify static control!\n");
1584 ok (itemCount > 0,
"DlgDirList() did NOT fill the listbox!\n");
1585 itemCount_justFiles = itemCount;
1588 for (
i = 0;
i < itemCount;
i++)
1594 (*(
p-1) ==
'c' || *(
p-1) ==
'C') &&
1595 (*(
p-2) ==
'.')),
"Element %d (%s) does not fit requested w*.c\n",
i,
pathBuffer);
1604 ok (itemCount == 0,
"DlgDirList() DID fill the listbox!\n");
1609 ok (
res == 1,
"DlgDirList(*.c, DDL_DIRECTORY) failed - 0x%08x\n",
GetLastError());
1616 itemCount_allDirs = itemCount - itemCount_justFiles;
1617 ok (itemCount >= itemCount_justFiles,
"DlgDirList(DDL_DIRECTORY) filled with %d entries, expected > %d\n",
1618 itemCount, itemCount_justFiles);
1623 for (
i = 0;
i < itemCount;
i++)
1630 (*(
p-1) ==
'c' || *(
p-1) ==
'C') &&
1631 (*(
p-2) ==
'.')),
"Element %d (%s) does not fit requested w*.c\n",
i,
pathBuffer);
1640 ok (itemCount == itemCount_allDirs,
"DlgDirList() incorrectly filled the listbox! (expected %d got %d)\n",
1641 itemCount_allDirs, itemCount);
1642 for (
i = 0;
i < itemCount;
i++)
1647 "Element %d (%s) does not fit requested [...]\n",
i,
pathBuffer);
1662 "DlgDirList(DDL_DRIVES) filled with %d entries, expected at least %d\n",
1664 itemCount_justDrives = itemCount;
1667 for (
i = 0;
i < itemCount;
i++)
1674 ok( driveletter >=
'a' && driveletter <=
'z',
"Drive letter not in range a..z, got ascii %d\n", driveletter);
1675 if (!(driveletter >=
'a' && driveletter <=
'z')) {
1678 itemCount_justDrives--;
1688 ok (itemCount == itemCount_justDrives,
"DlgDirList() incorrectly filled the listbox!\n");
1693 ok (
res == 1,
"DlgDirList(*.c, DDL_DIRECTORY|DDL_DRIVES) failed - 0x%08x\n",
GetLastError());
1700 ok (itemCount == itemCount_justFiles + itemCount_justDrives + itemCount_allDirs,
1701 "DlgDirList(DDL_DIRECTORY|DDL_DRIVES) filled with %d entries, expected %d\n",
1702 itemCount, itemCount_justFiles + itemCount_justDrives + itemCount_allDirs);
1708 for (
i = 0;
i < itemCount;
i++)
1715 ok( driveletter >=
'a' && driveletter <=
'z',
"Drive letter not in range a..z, got ascii %d\n", driveletter);
1719 (*(
p-1) ==
'c' || *(
p-1) ==
'C') &&
1720 (*(
p-2) ==
'.')),
"Element %d (%s) does not fit requested w*.c\n",
i,
pathBuffer);
1726 ok (
res == 1,
"DlgDirList(%s, DDL_DIRECTORY|DDL_DRIVES) returned %d expected 1\n",
BAD_EXTENSION,
res);
1729 ok (itemCount == itemCount_justDrives + itemCount_allDirs,
1730 "DlgDirList() incorrectly filled the listbox! (expected %d got %d)\n",
1731 itemCount_justDrives + itemCount_allDirs, itemCount);
1736 ok (
res == 1,
"DlgDirList(*.c, DDL_DIRECTORY|DDL_EXCLUSIVE) failed - 0x%08x\n",
GetLastError());
1740 ok (itemCount == itemCount_allDirs,
1741 "DlgDirList(DDL_DIRECTORY|DDL_EXCLUSIVE) filled with %d entries, expected %d\n",
1742 itemCount, itemCount_allDirs);
1754 ok (
res == 1,
"DlgDirList(%s, DDL_DIRECTORY|DDL_EXCLUSIVE) returned %d expected 1\n",
BAD_EXTENSION,
res);
1757 ok (itemCount == itemCount_allDirs,
"DlgDirList() incorrectly filled the listbox!\n");
1762 ok (
res == 1,
"DlgDirList(*.c, DDL_DIRECTORY|DDL_DRIVES|DDL_EXCLUSIVE) failed - 0x%08x\n",
GetLastError());
1766 ok (itemCount == itemCount_justDrives + itemCount_allDirs,
1767 "DlgDirList(DDL_DIRECTORY|DDL_EXCLUSIVE) filled with %d entries, expected %d\n",
1768 itemCount, itemCount_justDrives + itemCount_allDirs);
1770 for (
i = 0;
i < itemCount;
i++)
1776 ok( driveletter >=
'a' && driveletter <=
'z',
"Drive letter not in range a..z, got ascii %d\n", driveletter);
1779 "Element %d (%s) does not fit expected [...]\n",
i,
pathBuffer);
1785 ok (
res == 1,
"DlgDirList(%s, DDL_DIRECTORY|DDL_DRIVES|DDL_EXCLUSIVE) returned %d expected 1\n",
BAD_EXTENSION,
res);
1788 ok (itemCount == itemCount_justDrives + itemCount_allDirs,
"DlgDirList() incorrectly filled the listbox!\n");
1794 ok (
res != 0,
"DlgDirList(*, DDL_DIRECTORY|DDL_DRIVES) failed - 0x%08x\n",
GetLastError());
1801 "DlgDirSelectEx() with no selection modified last error code from 0xdeadbeef to 0x%08x\n",
1803 ok (
res == 0,
"DlgDirSelectEx() with no selection returned %d, expected 0\n",
res);
1810 for (
i = 0;
i < itemCount;
i++)
1818 ok (
res ==
i,
"SendMessageA(LB_SETCURSEL, %d) failed\n",
i);
1819 if (
sscanf(itemBuffer,
"[-%c-]", &driveletter) == 1)
1825 "DlgDirSelectEx() with selection at %d modified last error code from 0xdeadbeef to 0x%08x\n",
1827 ok(
res == 1,
"DlgDirSelectEx() thinks %s (%s) is not a drive/directory!\n", itemBuffer,
pathBuffer);
1831 "%d: got \"%s\" expected \"%c:\"\n",
i,
pathBuffer, driveletter);
1833 else if (itemBuffer[0] ==
'[')
1839 "DlgDirSelectEx() with selection at %d modified last error code from 0xdeadbeef to 0x%08x\n",
1841 ok(
res == 1,
"DlgDirSelectEx() thinks %s (%s) is not a drive/directory!\n", itemBuffer,
pathBuffer);
1845 ok (*(
p-1) ==
'\\',
"DlgDirSelectEx did NOT tack on a backslash to dir, got %s\n",
pathBuffer);
1847 tempBuffer[0] =
'[';
1850 ok (!
strcmp(tempBuffer, itemBuffer),
"Formatted directory should be %s, got %s\n", tempBuffer, itemBuffer);
1858 "DlgDirSelectEx() with selection at %d modified last error code from 0xdeadbeef to 0x%08x\n",
1860 ok(
res == 0,
"DlgDirSelectEx() thinks %s (%s) is a drive/directory!\n", itemBuffer,
pathBuffer);
1865 strcpy(tempBuffer, itemBuffer);
1879 for (
i = 0;
i < itemCount;
i++)
1887 ok (
res ==
i,
"SendMessage(LB_SETCURSEL, %d) failed\n",
i);
1888 if (
sscanf(itemBuffer,
"[-%c-]", &driveletter) == 1)
1894 "DlgDirSelectEx() with selection at %d modified last error code from 0xdeadbeef to 0x%08x\n",
1896 ok(
res == 1,
"DlgDirSelectEx() thinks %s (%s) is not a drive/directory!\n", itemBuffer,
pathBuffer);
1900 "%d: got \"%s\" expected \"%c:\"\n",
i,
pathBuffer, driveletter);
1902 else if (itemBuffer[0] ==
'[')
1908 "DlgDirSelectEx() with selection at %d modified last error code from 0xdeadbeef to 0x%08x\n",
1910 ok(
res == 1,
"DlgDirSelectEx() thinks %s (%s) is not a drive/directory!\n", itemBuffer,
pathBuffer);
1914 ok (*(
p-1) ==
'\\',
"DlgDirSelectEx did NOT tack on a backslash to dir, got %s\n",
pathBuffer);
1916 tempBuffer[0] =
'[';
1919 ok (!
strcmp(tempBuffer, itemBuffer),
"Formatted directory should be %s, got %s\n", tempBuffer, itemBuffer);
1927 "DlgDirSelectEx() with selection at %d modified last error code from 0xdeadbeef to 0x%08x\n",
1929 ok(
res == 0,
"DlgDirSelectEx() thinks %s (%s) is a drive/directory!\n", itemBuffer,
pathBuffer);
1934 strcpy(tempBuffer, itemBuffer);
1943 ok(
res,
"DlgDirList failed to list C:\\ folders\n");
1948 ok(
res,
"DlgDirList failed to list C:\\* folders\n");
1955 ok(!
res,
"DlgDirList should have failed with 0 but %d was returned\n",
res);
1957 "GetLastError should return 0x589, got 0x%X\n",
GetLastError());
1964 static const DWORD styles[] =
2023 static const struct message getlistboxinfo_seq[] =
2045 static const DWORD styles[] =
2061 ok(items_size >= 100,
"expected at least 100, got %d\n", items_size);
2064 ok(
ret == items_size,
"expected %d, got %d\n", items_size,
ret);
2068 ok(
ret == items_size,
"expected %d, got %d\n", items_size,
ret);
2072 ok(
ret == items_size,
"expected %d, got %d\n", items_size,
ret);
2078 ok(
ret == 0,
"unexpected return value %d\n",
ret);
2082 for (
j = 0;
j < items_size - 1;
j++)
2085 ok(
ret ==
j,
"expected %d, got %d\n",
j,
ret);
2091 ok(
ret == items_size,
"expected %d, got %d\n", items_size,
ret);
2095 ok(
ret == items_size - 1,
"expected %d, got %d\n", items_size - 1,
ret);
2097 ok(
ret == items_size,
"expected %d, got %d\n", items_size,
ret);
2099 ok(
ret > items_size,
"expected it to grow past %d, got %d\n", items_size,
ret);
2116 ok(capture == listbox,
"got %p expected %p\n", capture, listbox);
2122 ok(capture ==
NULL,
"got %p\n", capture);
2141 ok(
res == 0,
"Got wrong initial horizontal extent: %u\n",
res);
2146 ok(br ==
TRUE,
"GetScrollInfo failed\n");
2147 ok(
sinfo.nMin == 0,
"got wrong min: %u\n",
sinfo.nMin);
2148 ok(
sinfo.nMax == 100,
"got wrong max: %u\n",
sinfo.nMax);
2150 "List box should not have a horizontal scroll bar\n");
2156 ok(
res == 64,
"Got wrong horizontal extent: %u\n",
res);
2161 ok(br ==
TRUE,
"GetScrollInfo failed\n");
2162 ok(
sinfo.nMin == 0,
"got wrong min: %u\n",
sinfo.nMin);
2163 ok(
sinfo.nMax == 100,
"got wrong max: %u\n",
sinfo.nMax);
2165 "List box should not have a horizontal scroll bar\n");
2171 ok(
res == 184,
"Got wrong horizontal extent: %u\n",
res);
2176 ok(br ==
TRUE,
"GetScrollInfo failed\n");
2177 ok(
sinfo.nMin == 0,
"got wrong min: %u\n",
sinfo.nMin);
2178 ok(
sinfo.nMax == 100,
"got wrong max: %u\n",
sinfo.nMax);
2180 "List box should not have a horizontal scroll bar\n");
2187 ok(
res == 0,
"Got wrong initial horizontal extent: %u\n",
res);
2192 ok(br ==
TRUE,
"GetScrollInfo failed\n");
2193 ok(
sinfo.nMin == 0,
"got wrong min: %u\n",
sinfo.nMin);
2194 ok(
sinfo.nMax == 100,
"got wrong max: %u\n",
sinfo.nMax);
2196 "List box should not have a horizontal scroll bar\n");
2202 ok(
res == 64,
"Got wrong horizontal extent: %u\n",
res);
2207 ok(br ==
TRUE,
"GetScrollInfo failed\n");
2208 ok(
sinfo.nMin == 0,
"got wrong min: %u\n",
sinfo.nMin);
2209 ok(
sinfo.nMax == 63,
"got wrong max: %u\n",
sinfo.nMax);
2211 "List box should not have a horizontal scroll bar\n");
2217 ok(
res == 184,
"Got wrong horizontal extent: %u\n",
res);
2222 ok(br ==
TRUE,
"GetScrollInfo failed\n");
2223 ok(
sinfo.nMin == 0,
"got wrong min: %u\n",
sinfo.nMin);
2224 ok(
sinfo.nMax == 183,
"got wrong max: %u\n",
sinfo.nMax);
2226 "List box should have a horizontal scroll bar\n");
2231 ok(
res == 0,
"Got wrong horizontal extent: %u\n",
res);
2236 ok(br ==
TRUE,
"GetScrollInfo failed\n");
2237 ok(
sinfo.nMin == 0,
"got wrong min: %u\n",
sinfo.nMin);
2238 ok(
sinfo.nMax == 0,
"got wrong max: %u\n",
sinfo.nMax);
2240 "List box should not have a horizontal scroll bar\n");
2248 ok(
res == 0,
"Got wrong initial horizontal extent: %u\n",
res);
2253 ok(br ==
TRUE,
"GetScrollInfo failed\n");
2254 ok(
sinfo.nMin == 0,
"got wrong min: %u\n",
sinfo.nMin);
2255 ok(
sinfo.nMax == 0,
"got wrong max: %u\n",
sinfo.nMax);
2257 "List box should have a horizontal scroll bar\n");
2263 ok(
res == 64,
"Got wrong horizontal extent: %u\n",
res);
2268 ok(br ==
TRUE,
"GetScrollInfo failed\n");
2269 ok(
sinfo.nMin == 0,
"got wrong min: %u\n",
sinfo.nMin);
2270 ok(
sinfo.nMax == 63,
"got wrong max: %u\n",
sinfo.nMax);
2272 "List box should have a horizontal scroll bar\n");
2278 ok(
res == 184,
"Got wrong horizontal extent: %u\n",
res);
2283 ok(br ==
TRUE,
"GetScrollInfo failed\n");
2284 ok(
sinfo.nMin == 0,
"got wrong min: %u\n",
sinfo.nMin);
2285 ok(
sinfo.nMax == 183,
"got wrong max: %u\n",
sinfo.nMax);
2287 "List box should have a horizontal scroll bar\n");
2292 ok(
res == 0,
"Got wrong horizontal extent: %u\n",
res);
2297 ok(br ==
TRUE,
"GetScrollInfo failed\n");
2298 ok(
sinfo.nMin == 0,
"got wrong min: %u\n",
sinfo.nMin);
2299 ok(
sinfo.nMax == 0,
"got wrong max: %u\n",
sinfo.nMax);
2301 "List box should have a horizontal scroll bar\n");
2313 { 1, 1, 1,
LB_ERR}, {0,0,0,0},
2314 { 2, 2, 2,
LB_ERR}, {0,0,0,0},
2320 { 1, 1, 1,
LB_ERR}, {0,0,0,0},
2321 { 2, 2, 2,
LB_ERR}, {0,0,0,0},
2325 {{ 0,
LB_ERR, 0, 0}, {0,0,0,0},
2326 { 1, 1, 1, 1}, {0,0,0,0},
2327 { 2, 1, 2, 1}, {0,0,0,0},
2328 { 0,
LB_ERR, 0, 2}, {0,0,0,0}};
2332 { 1, 1, 1,
LB_ERR}, {0,0,0,0},
2333 { 2, 2, 2,
LB_ERR}, {0,0,0,0},
2337 {{ 0,
LB_ERR, 0, 0}, {0,0,0,0},
2338 { 1, 1, 1, 1}, {0,0,0,0},
2339 { 2, 2, 2, 1}, {0,0,0,0},
2340 { 0,
LB_ERR, 0, 2}, {0,0,0,0}};
2344 { 1, 1, 1,
LB_ERR}, {0,0,0,0},
2345 { 2, 2, 2,
LB_ERR}, {0,0,0,0},
2349 {{ 0,
LB_ERR, 0, 0}, {0,0,0,0},
2350 { 1, 1, 1, 1}, {0,0,0,0},
2351 { 2, 2, 2, 1}, {0,0,0,0},
2352 { 0,
LB_ERR, 0, 2}, {0,0,0,0}};
2356 { 1, 1, 1,
LB_ERR}, {0,0,0,0},
2357 { 2, 2, 2,
LB_ERR}, {0,0,0,0},
2430 ok(
ret == 0,
"expected 0, got %ld\n",
ret);
2432 ok(
ret == 1,
"expected 1, got %ld\n",
ret);
2434 ok(
ret == 2,
"expected 2, got %ld\n",
ret);
2437 "LB_ADDSTRING (LBS_HASSTRINGS, ownerdraw)",
FALSE);
2448 ok(
ret == 0,
"expected 0, got %ld\n",
ret);
2450 ok(
ret == 1,
"expected 1, got %ld\n",
ret);
2452 ok(
ret == 2,
"expected 2, got %ld\n",
ret);
2465 ok(
ret == 0,
"expected 0, got %ld\n",
ret);
2467 ok(
ret == 1,
"expected 1, got %ld\n",
ret);
2469 ok(
ret == 2,
"expected 2, got %ld\n",
ret);
2482 ok(
ret == 0,
"expected 0, got %ld\n",
ret);
2484 ok(
ret == 0,
"expected 0, got %ld\n",
ret);
2486 ok(
ret == 1,
"expected 1, got %ld\n",
ret);
2496 static const DWORD invalid_styles[] =
2505 static const UINT invalid_idx[] = { -2, 2 };
2506 static const UINT valid_idx[] = { 0, 1 };
2516 ok(listbox !=
NULL,
"Failed to create ListBox window.\n");
2519 ok(
ret == 0,
"Unexpected return value %d.\n",
ret);
2521 ok(
ret == 1,
"Unexpected return value %d.\n",
ret);
2523 ok(
ret == 2,
"Unexpected return value %d.\n",
ret);
2555 ok(
ret == text_len,
"Unexpected return value %d.\n",
ret);
2559 ok(
ret ==
sizeof(
data),
"Unexpected return value %d.\n",
ret);
2563 ok(
ret == 0,
"Unexpected return value %d.\n",
ret);
2584 ok(
parent !=
NULL,
"Failed to create parent window.\n");
2592 ok(listbox !=
NULL,
"Failed to create a listbox.\n");
2595 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)
#define ok_sequence(seq, index, exp, contx, todo)
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 UINT WPARAM wparam
static UINT WPARAM LPARAM lparam
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
static void flush_sequence(void)
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)