33#define WAIT Sleep (1000)
34#define REDRAW RedrawWindow (handle, NULL, 0, RDW_UPDATENOW)
44 "Fourth added which is very long because at some time we only had a 256 byte character buffer and that was overflowing in one of those applications that had a common dialog file open box and tried to add a 300 characters long custom filter string which of course the code did not like and crashed. Just make sure this string is longer than 256 characters."
130#define listbox_field_ok(t, s, f, got) \
131 ok (t.s.f==got.f, "style %#x, step " #s ", field " #f \
132 ": expected %d, got %d\n", style, t.s.f, got.f)
134#define listbox_todo_field_ok(t, s, f, got) \
135 todo_wine_if (t.s##_todo.f) { listbox_field_ok(t, s, f, got); }
137#define listbox_ok(t, s, got) \
138 listbox_todo_field_ok(t, s, selected, got); \
139 listbox_todo_field_ok(t, s, anchor, got); \
140 listbox_todo_field_ok(t, s, caret, got); \
141 listbox_todo_field_ok(t, s, selcount, got)
187 ok(resA == resW,
"Unexpected text length.\n");
197 ok((
res==4),
"Expected 4 items, got %d\n",
res);
203 ok((
res==4),
"Expected 4 items, got %d\n",
res);
226 ok (itemHeight ==
tm.tmHeight,
"Item height wrong, got %d, expecting %d\n", itemHeight,
tm.tmHeight);
233 ok(itemHeight ==
tm.tmHeight,
"itemHeight %d\n", itemHeight);
235 ok(itemHeight ==
tm.tmHeight,
"itemHeight %d\n", itemHeight);
237 ok(itemHeight ==
tm.tmHeight,
"itemHeight %d\n", itemHeight);
254 ok(
mi->CtlID == 1,
"mi->CtlID = %u\n",
mi->CtlID);
255 ok(
mi->itemHeight,
"mi->itemHeight = 0\n");
268 "mi->itemData = %08lx, expected %p\n",
mi->itemData,
strings[
mi->itemID]);
274 RECT rc_item, rc_client, rc_clip;
279 ok(
wparam == dis->
CtlID,
"got wParam=%08lx instead of %08x\n",
288 "client rect of the listbox should be equal to the clip box,"
289 "or the clip box should be empty\n");
341 static const DWORD styles[] =
370 ok(
ret == 1,
"wrong top index %d\n",
ret);
375 ok(rc.top < 0,
"rc.top is not negative (%d)\n", rc.top);
387 ok(
ret == 0,
"Unexpected return value %d.\n",
ret);
389 ok(
ret == 1,
"Unexpected return value %d.\n",
ret);
395 ok(
ret == 13,
"Unexpected item height %d.\n",
ret);
401 ok(
ret == 42,
"Unexpected item height %d.\n",
ret);
404 ok(
ret == 42,
"Unexpected item height %d.\n",
ret);
411#define listbox_test_query(exp, got) \
412 ok(exp.selected == got.selected, "expected selected %d, got %d\n", exp.selected, got.selected); \
413 ok(exp.anchor == got.anchor, "expected anchor %d, got %d\n", exp.anchor, got.anchor); \
414 ok(exp.caret == got.caret, "expected caret %d, got %d\n", exp.caret, got.caret); \
415 ok(exp.selcount == got.selcount, "expected selcount %d, got %d\n", exp.selcount, got.selcount);
427 trace(
"testing LB_SELITEMRANGE\n");
436 ok(
ret ==
LB_OKAY,
"LB_SELITEMRANGE returned %d instead of LB_OKAY\n",
ret);
445 ok(
ret ==
LB_OKAY,
"LB_SELITEMRANGE returned %d instead of LB_OKAY\n",
ret);
454 ok(
ret ==
LB_OKAY,
"LB_SELITEMRANGE returned %d instead of LB_OKAY\n",
ret);
463 ok(
ret ==
LB_OKAY,
"LB_SELITEMRANGE returned %d instead of LB_OKAY\n",
ret);
472 ok(
ret ==
LB_OKAY,
"LB_SELITEMRANGE returned %d instead of LB_OKAY\n",
ret);
481 ok(
ret ==
LB_OKAY,
"LB_SELITEMRANGE returned %d instead of LB_OKAY\n",
ret);
490 ok(
ret ==
LB_OKAY,
"LB_SELITEMRANGE returned %d instead of LB_OKAY\n",
ret);
502 trace(
"testing LB_SETCURSEL\n");
513 ok(
ret == -1,
"Unexpected anchor index %d.\n",
ret);
516 ok(
ret == 2,
"LB_SETCURSEL returned %d instead of 2\n",
ret);
518 ok(
ret == 0,
"expected vscroll 0, got %d\n",
ret);
521 ok(
ret == -1,
"Unexpected anchor index %d.\n",
ret);
524 ok(
ret == 3,
"LB_SETCURSEL returned %d instead of 3\n",
ret);
526 ok(
ret == 1,
"expected vscroll 1, got %d\n",
ret);
529 ok(
ret == -1,
"Unexpected anchor index %d.\n",
ret);
534 ok(hLB !=
NULL,
"Failed to create ListBox window.\n");
537 ok(
ret == 1,
"Unexpected return value %d.\n",
ret);
540 ok(
ret == -1,
"Unexpected anchor index %d.\n",
ret);
546 ok(hLB !=
NULL,
"Failed to create ListBox window.\n");
549 ok(
ret == -1,
"Unexpected anchor index %d.\n",
ret);
552 ok(
ret == -1,
"Unexpected return value %d.\n",
ret);
555 ok(
ret == -1,
"Unexpected anchor index %d.\n",
ret);
561 ok(hLB !=
NULL,
"Failed to create ListBox window.\n");
564 ok(
ret == -1,
"Unexpected anchor index %d.\n",
ret);
567 ok(
ret == -1,
"Unexpected return value %d.\n",
ret);
570 ok(
ret == -1,
"Unexpected anchor index %d.\n",
ret);
582 ok(
list !=
NULL,
"Failed to create ListBox window.\n");
585 ok(
ret == -1,
"Unexpected anchor index %d.\n",
ret);
588 ok(
ret == 0,
"Unexpected return value %d.\n",
ret);
590 ok(
ret == 0,
"Unexpected anchor index %d.\n",
ret);
593 ok(
ret == 0,
"Unexpected return value %d.\n",
ret);
595 ok(
ret == 1,
"Unexpected anchor index %d.\n",
ret);
598 ok(
ret == 0,
"Unexpected return value %d.\n",
ret);
600 ok(
ret == 1,
"Unexpected anchor index %d.\n",
ret);
606 ok(
list !=
NULL,
"Failed to create ListBox window.\n");
609 ok(
ret == -1,
"Unexpected anchor index %d.\n",
ret);
612 ok(
ret == 0,
"Unexpected return value %d.\n",
ret);
614 ok(
ret == 0,
"Unexpected anchor index %d.\n",
ret);
617 ok(
ret == 0,
"Unexpected return value %d.\n",
ret);
619 ok(
ret == 1,
"Unexpected anchor index %d.\n",
ret);
622 ok(
ret == 0,
"Unexpected return value %d.\n",
ret);
624 ok(
ret == 1,
"Unexpected anchor index %d.\n",
ret);
639 ok(
id == 0,
"item id wrong\n");
642 ok(
r == 0,
"send message failed\n");
645 ok(
r == 20,
"height wrong\n");
648 ok(
r == -1,
"send message failed\n");
651 ok(
r == 20,
"height wrong\n");
654 ok(
r == -1,
"send message failed\n");
657 ok(
r == 20,
"height wrong\n");
660 ok(
r == 0,
"send message failed\n");
663 ok(
r == 0xff,
"height wrong\n");
670 static const DWORD styles[] =
675 static const DWORD selstyles[] =
682 static const LONG selexpect_single[] = { 0, 0, 1 };
683 static const LONG selexpect_single2[] = { 1, 0, 0 };
684 static const LONG selexpect_multi[] = { 1, 0, 1 };
685 static const LONG selexpect_multi2[] = { 1, 1, 0 };
693 ok(
parent !=
NULL,
"Failed to create parent window.\n");
699 LONG setcursel_expect, selitemrange_expect, getselcount_expect;
700 const LONG *selexpect;
704 ok(listbox !=
NULL,
"%u: Failed to create ListBox window.\n",
j);
708 setcursel_expect =
LB_ERR;
710 getselcount_expect = 2;
711 selexpect = selexpect_multi;
715 setcursel_expect = 2;
716 selitemrange_expect =
LB_ERR;
717 getselcount_expect =
LB_ERR;
718 selexpect = selexpect_single;
724 ok(
ret ==
k,
"%u: Unexpected return value %d, expected %d.\n",
j,
ret,
k);
731 ok(
ret == setcursel_expect,
"%u: Unexpected return value %d.\n",
j,
ret);
733 ok(
ret == selitemrange_expect,
"%u: Unexpected return value %d.\n",
j,
ret);
735 ok(
ret == selitemrange_expect,
"%u: Unexpected return value %d.\n",
j,
ret);
741 ok(
ret == selexpect[
k],
"%u: Unexpected selection state %d, expected %d.\n",
742 j,
ret, selexpect[
k]);
748 "%u: unexpected window styles %#x.\n",
j,
style);
755 ok(!(
style & selstyles[
j]),
"%u: unexpected window styles %#x.\n",
j,
style);
759 ok(
ret == getselcount_expect,
"%u: expected %d from LB_GETSELCOUNT, got %d\n",
760 j, getselcount_expect,
ret);
765 ok(
ret == selexpect[
k],
"%u: Unexpected selection state %d, expected %d.\n",
766 j,
ret, selexpect[
k]);
770 if (setcursel_expect !=
LB_ERR) setcursel_expect = 0;
772 ok(
ret == setcursel_expect,
"%u: Unexpected return value %d.\n",
j,
ret);
774 ok(
ret == selitemrange_expect,
"%u: Unexpected return value %d.\n",
j,
ret);
776 ok(
ret == selitemrange_expect,
"%u: Unexpected return value %d.\n",
j,
ret);
781 ok(
ret == getselcount_expect,
"%u: expected %d from LB_GETSELCOUNT, got %d\n",
782 j, getselcount_expect,
ret);
787 ok(
ret == selexpect[
k],
"%u: Unexpected selection state %d, expected %d.\n",
788 j,
ret, selexpect[
k]);
811 ok(
r == 0x1ffff ||
r == 0x10000 ||
r == 0xffffffff,
"ret %x\n",
r );
814 ok(
r == 0x1ffff ||
r == 0x10000 ||
r == 0xffffffff,
"ret %x\n",
r );
817 ok(
r == 0x1ffff ||
r == 0x10000 ||
r == 0xffffffff,
"ret %x\n",
r );
820 ok(
id == 0,
"item id wrong\n");
822 ok(
id == 1,
"item id wrong\n");
825 ok(
r == 0x1,
"ret %x\n",
r );
833 ok(
r == 1,
"ret %x\n",
r);
835 ok(
r != 0,
"ret %x\n",
r);
838 ok(
id == 2,
"item id wrong\n");
840 ok(
id == 3,
"item id wrong\n");
842 ok(
id == 4,
"item id wrong\n");
844 ok(
id == 5,
"item id wrong\n");
846 ok(
id == 6,
"item id wrong\n");
848 ok(
id == 7,
"item id wrong\n");
855 ok(
r == 1,
"top %d\n",
r);
858 ok(
r == 1,
"ret %x\n",
r);
860 ok(
r == 0,
"ret %x\n",
r);
863 ok(
r == 1,
"ret %x\n",
r);
894 ok(
id == 0,
"item id wrong\n");
897 ok(
r ==
TRUE,
"LB_SETITEMDATA returned %d instead of TRUE\n",
r);
900 ok(
r == 20,
"get item data failed\n");
910 int itemCount_justFiles;
911 int itemCount_justDrives;
912 int itemCount_allFiles;
913 int itemCount_allDirs;
918 const char *wildcard =
"*";
926 ok(
ret,
"Failed to set current directory.\n");
929 ok(
ret,
"Failed to create test directory.\n");
960 ok (itemCount > 0,
"SendMessage(LB_DIR) did NOT fill the listbox!\n");
961 itemCount_allFiles = itemCount;
962 ok(
res + 1 == itemCount,
963 "SendMessage(LB_DIR, 0, *) returned incorrect index (expected %d got %d)!\n",
974 ok (itemCount == 0,
"SendMessage(LB_DIR) DID fill the listbox!\n");
987 "expected no change to pathBuffer, got %s\n",
pathBuffer);
991 ok (itemCount > 0,
"SendMessage(LB_DIR) did NOT fill the listbox!\n");
992 itemCount_justFiles = itemCount;
993 ok(
res + 1 == itemCount,
994 "SendMessage(LB_DIR, 0, w*.c) returned incorrect index (expected %d got %d)!\n",
998 for (
i = 0;
i < itemCount;
i++) {
1003 (*(
p-1) ==
'c' || *(
p-1) ==
'C') &&
1004 (*(
p-2) ==
'.')),
"Element %d (%s) does not fit requested w*.c\n",
i,
pathBuffer);
1011 ok (
res > 0,
"SendMessage(LB_DIR, DDL_DIRECTORY, *) failed - 0x%08x\n",
GetLastError());
1017 itemCount_allDirs = itemCount - itemCount_allFiles;
1018 ok (itemCount > itemCount_allFiles,
1019 "SendMessage(LB_DIR, DDL_DIRECTORY, *) filled with %d entries, expected > %d\n",
1020 itemCount, itemCount_allFiles);
1021 ok(
res + 1 == itemCount,
1022 "SendMessage(LB_DIR, DDL_DIRECTORY, *) returned incorrect index (expected %d got %d)!\n",
1023 itemCount - 1,
res);
1029 ok (
res == -1,
"SendMessage(LB_DIR, DDL_DIRECTORY, %s) returned %d, expected -1\n",
BAD_EXTENSION,
res);
1033 ok (itemCount == 0,
"SendMessage(LB_DIR) DID fill the listbox!\n");
1040 ok (
res >= 0,
"SendMessage(LB_DIR, DDL_DIRECTORY, w*.c) failed - 0x%08x\n",
GetLastError());
1046 ok (itemCount == itemCount_justFiles,
1047 "SendMessage(LB_DIR, DDL_DIRECTORY, w*.c) filled with %d entries, expected %d\n",
1048 itemCount, itemCount_justFiles);
1049 ok(
res + 1 == itemCount,
1050 "SendMessage(LB_DIR, DDL_DIRECTORY, w*.c) returned incorrect index (expected %d got %d)!\n",
1051 itemCount - 1,
res);
1054 for (
i = 0;
i < itemCount;
i++) {
1060 (*(
p-1) ==
'c' || *(
p-1) ==
'C') &&
1061 (*(
p-2) ==
'.')),
"Element %d (%s) does not fit requested w*.c\n",
i,
pathBuffer);
1069 ok (
res >= 0,
"SendMessage(LB_DIR, DDL_DRIVES|DDL_EXCLUSIVE, *) failed - 0x%08x\n",
GetLastError());
1078 "SendMessage(LB_DIR, DDL_DRIVES|DDL_EXCLUSIVE, *) filled with %d entries, expected at least %d\n",
1080 itemCount_justDrives = itemCount;
1081 ok(
res + 1 == itemCount,
"SendMessage(LB_DIR, DDL_DRIVES|DDL_EXCLUSIVE, *) returned incorrect index!\n");
1084 for (
i = 0;
i < itemCount;
i++) {
1090 ok( driveletter >=
'a' && driveletter <=
'z',
"Drive letter not in range a..z, got ascii %d\n", driveletter);
1091 if (!(driveletter >=
'a' && driveletter <=
'z')) {
1094 itemCount_justDrives--;
1102 ok (
res == itemCount_justDrives -1,
"SendMessage(LB_DIR, DDL_DRIVES|DDL_EXCLUSIVE, %s) returned %d, expected %d\n",
1106 ok (itemCount == itemCount_justDrives,
"SendMessage(LB_DIR) returned %d expected %d\n",
1107 itemCount, itemCount_justDrives);
1109 trace(
"Files with w*.c: %d Mapped drives: %d Directories: 1\n",
1110 itemCount_justFiles, itemCount_justDrives);
1116 ok (
res > 0,
"SendMessage(LB_DIR, DDL_DRIVES, *) failed - 0x%08x\n",
GetLastError());
1124 ok (itemCount == itemCount_justDrives + itemCount_allFiles,
1125 "SendMessage(LB_DIR, DDL_DRIVES, *) filled with %d entries, expected %d\n",
1126 itemCount, itemCount_justDrives + itemCount_allFiles);
1127 ok(
res + 1 == itemCount,
"SendMessage(LB_DIR, DDL_DRIVES, *) returned incorrect index!\n");
1133 ok (
res == itemCount_justDrives -1,
"SendMessage(LB_DIR, DDL_DRIVES, %s) returned %d, expected %d\n",
1137 ok (itemCount ==
res + 1,
"SendMessage(LB_DIR) returned %d expected %d\n", itemCount,
res + 1);
1144 ok (
res > 0,
"SendMessage(LB_DIR, DDL_DRIVES, w*.c) failed - 0x%08x\n",
GetLastError());
1152 ok (itemCount == itemCount_justDrives + itemCount_justFiles,
1153 "SendMessage(LB_DIR, DDL_DRIVES, w*.c) filled with %d entries, expected %d\n",
1154 itemCount, itemCount_justDrives + itemCount_justFiles);
1155 ok(
res + 1 == itemCount,
"SendMessage(LB_DIR, DDL_DRIVES, w*.c) returned incorrect index!\n");
1158 for (
i = 0;
i < itemCount;
i++) {
1165 ok( driveletter >=
'a' && driveletter <=
'z',
"Drive letter not in range a..z, got ascii %d\n", driveletter);
1169 (*(
p-1) ==
'c' || *(
p-1) ==
'C') &&
1170 (*(
p-2) ==
'.')),
"Element %d (%s) does not fit requested w*.c\n",
i,
pathBuffer);
1179 ok (
res > 0,
"SendMessage(LB_DIR, DDL_DIRECTORY|DDL_DRIVES, *) failed - 0x%08x\n",
GetLastError());
1185 ok (itemCount == itemCount_allFiles + itemCount_justDrives + itemCount_allDirs,
1186 "SendMessage(LB_DIR, DDL_DIRECTORY|DDL_DRIVES) filled with %d entries, expected %d\n",
1187 itemCount, itemCount_allFiles + itemCount_justDrives + itemCount_allDirs);
1188 ok(
res + 1 == itemCount,
"SendMessage(LB_DIR, DDL_DIRECTORY|DDL_DRIVES, w*.c) returned incorrect index!\n");
1194 for (
i = 0;
i < itemCount;
i++) {
1199 ok( driveletter >=
'a' && driveletter <=
'z',
"Drive letter not in range a..z, got ascii %d\n", driveletter);
1207 ok (
res == itemCount_justDrives -1,
"SendMessage(LB_DIR, DDL_DIRECTORY|DDL_DRIVES, %s) returned %d, expected %d\n",
1211 ok (itemCount ==
res + 1,
"SendMessage(LB_DIR) returned %d expected %d\n", itemCount,
res + 1);
1219 ok (
res > 0,
"SendMessage(LB_DIR, DDL_DIRECTORY|DDL_DRIVES, w*.c) failed - 0x%08x\n",
GetLastError());
1225 ok (itemCount == itemCount_justFiles + itemCount_justDrives,
1226 "SendMessage(LB_DIR, DDL_DIRECTORY|DDL_DRIVES) filled with %d entries, expected %d\n",
1227 itemCount, itemCount_justFiles + itemCount_justDrives);
1228 ok(
res + 1 == itemCount,
"SendMessage(LB_DIR, DDL_DIRECTORY|DDL_DRIVES, w*.c) returned incorrect index!\n");
1234 for (
i = 0;
i < itemCount;
i++) {
1240 ok( driveletter >=
'a' && driveletter <=
'z',
"Drive letter not in range a..z, got ascii %d\n", driveletter);
1244 (*(
p-1) ==
'c' || *(
p-1) ==
'C') &&
1245 (*(
p-2) ==
'.')),
"Element %d (%s) does not fit requested w*.c\n",
i,
pathBuffer);
1253 ok (
res != -1,
"SendMessage(LB_DIR, DDL_DIRECTORY|DDL_EXCLUSIVE, *) failed err %u\n",
GetLastError());
1256 ok (itemCount == itemCount_allDirs,
1257 "SendMessage(LB_DIR, DDL_DIRECTORY|DDL_EXCLUSIVE) filled with %d entries, expected %d\n",
1258 itemCount, itemCount_allDirs);
1259 ok(
res + 1 == itemCount,
"SendMessage(LB_DIR, DDL_DIRECTORY|DDL_EXCLUSIVE, *) returned incorrect index!\n");
1272 ok (
res == -1,
"SendMessage(LB_DIR, DDL_DIRECTORY|DDL_EXCLUSIVE, %s) returned %d, expected %d\n",
1276 ok (itemCount ==
res + 1,
"SendMessage(LB_DIR) returned %d expected %d\n", itemCount,
res + 1);
1283 ok (
res ==
LB_ERR,
"SendMessage(LB_DIR, DDL_DIRECTORY|DDL_EXCLUSIVE, w*.c) returned %d expected %d\n",
res,
LB_ERR);
1288 "SendMessage(LB_DIR, DDL_DIRECTORY|DDL_EXCLUSIVE) filled with %d entries, expected %d\n",
1295 ok (
res > 0,
"SendMessage(LB_DIR, DDL_DIRECTORY|DDL_DRIVES|DDL_EXCLUSIVE, w*.c,) failed - 0x%08x\n",
GetLastError());
1299 ok (itemCount == itemCount_justDrives + itemCount_allDirs,
1300 "SendMessage(LB_DIR, DDL_DIRECTORY|DDL_DRIVES|DDL_EXCLUSIVE) filled with %d entries, expected %d\n",
1301 itemCount, itemCount_justDrives + itemCount_allDirs);
1302 ok(
res + 1 == itemCount,
"SendMessage(LB_DIR, DDL_DIRECTORY|DDL_DRIVES|DDL_EXCLUSIVE, w*.c) returned incorrect index!\n");
1304 for (
i = 0;
i < itemCount;
i++) {
1309 ok( driveletter >=
'a' && driveletter <=
'z',
"Drive letter not in range a..z, got ascii %d\n", driveletter);
1312 "Element %d (%s) does not fit expected [...]\n",
i,
pathBuffer);
1320 ok (
res == itemCount_justDrives -1,
"SendMessage(LB_DIR, DDL_DIRECTORY|DDL_DRIVES|DDL_EXCLUSIVE, %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|DDL_EXCLUSIVE, w*.c,) failed - 0x%08x\n",
GetLastError());
1334 ok (itemCount == itemCount_justDrives,
1335 "SendMessage(LB_DIR, DDL_DIRECTORY|DDL_DRIVES|DDL_EXCLUSIVE) filled with %d entries, expected %d\n",
1336 itemCount, itemCount_justDrives);
1337 ok(
res + 1 == itemCount,
"SendMessage(LB_DIR, DDL_DIRECTORY|DDL_DRIVES|DDL_EXCLUSIVE, w*.c) returned incorrect index!\n");
1339 for (
i = 0;
i < itemCount;
i++) {
1344 ok( driveletter >=
'a' && driveletter <=
'z',
"Drive letter not in range a..z, got ascii %d\n", driveletter);
1357#define ID_TEST_LABEL 1001
1358#define ID_TEST_LISTBOX 1002
1364 "Contents of static control before DlgDirList.",
1424 int itemCount_allDirs;
1425 int itemCount_justFiles;
1426 int itemCount_justDrives;
1467 "expected conversion to uppercase, got %s\n",
pathBuffer);
1472 ok (
strcmp(
"default contents",
pathBuffer),
"DlgDirList() did not modify static control!\n");
1476 ok (itemCount > 0,
"DlgDirList() did NOT fill the listbox!\n");
1477 itemCount_justFiles = itemCount;
1480 for (
i = 0;
i < itemCount;
i++) {
1485 (*(
p-1) ==
'c' || *(
p-1) ==
'C') &&
1486 (*(
p-2) ==
'.')),
"Element %d (%s) does not fit requested w*.c\n",
i,
pathBuffer);
1495 ok (itemCount == 0,
"DlgDirList() DID fill the listbox!\n");
1501 ok (
res == 1,
"DlgDirList(*.c, DDL_DIRECTORY) failed - 0x%08x\n",
GetLastError());
1508 itemCount_allDirs = itemCount - itemCount_justFiles;
1509 ok (itemCount >= itemCount_justFiles,
1510 "DlgDirList(DDL_DIRECTORY) filled with %d entries, expected > %d\n",
1511 itemCount, itemCount_justFiles);
1516 for (
i = 0;
i < itemCount;
i++) {
1522 (*(
p-1) ==
'c' || *(
p-1) ==
'C') &&
1523 (*(
p-2) ==
'.')),
"Element %d (%s) does not fit requested w*.c\n",
i,
pathBuffer);
1533 ok (itemCount == itemCount_allDirs,
1534 "DlgDirList() incorrectly filled the listbox! (expected %d got %d)\n",
1535 itemCount_allDirs, itemCount);
1536 for (
i = 0;
i < itemCount;
i++) {
1540 "Element %d (%s) does not fit requested [...]\n",
i,
pathBuffer);
1557 "DlgDirList(DDL_DRIVES) filled with %d entries, expected at least %d\n",
1559 itemCount_justDrives = itemCount;
1562 for (
i = 0;
i < itemCount;
i++) {
1568 ok( driveletter >=
'a' && driveletter <=
'z',
"Drive letter not in range a..z, got ascii %d\n", driveletter);
1569 if (!(driveletter >=
'a' && driveletter <=
'z')) {
1572 itemCount_justDrives--;
1583 ok (itemCount == itemCount_justDrives,
"DlgDirList() incorrectly filled the listbox!\n");
1590 ok (
res == 1,
"DlgDirList(*.c, DDL_DIRECTORY|DDL_DRIVES) failed - 0x%08x\n",
GetLastError());
1597 ok (itemCount == itemCount_justFiles + itemCount_justDrives + itemCount_allDirs,
1598 "DlgDirList(DDL_DIRECTORY|DDL_DRIVES) filled with %d entries, expected %d\n",
1599 itemCount, itemCount_justFiles + itemCount_justDrives + itemCount_allDirs);
1605 for (
i = 0;
i < itemCount;
i++) {
1611 ok( driveletter >=
'a' && driveletter <=
'z',
"Drive letter not in range a..z, got ascii %d\n", driveletter);
1615 (*(
p-1) ==
'c' || *(
p-1) ==
'C') &&
1616 (*(
p-2) ==
'.')),
"Element %d (%s) does not fit requested w*.c\n",
i,
pathBuffer);
1624 ok (
res == 1,
"DlgDirList(%s, DDL_DIRECTORY|DDL_DRIVES) returned %d expected 1\n",
BAD_EXTENSION,
res);
1627 ok (itemCount == itemCount_justDrives + itemCount_allDirs,
1628 "DlgDirList() incorrectly filled the listbox! (expected %d got %d)\n",
1629 itemCount_justDrives + itemCount_allDirs, itemCount);
1637 ok (
res == 1,
"DlgDirList(*.c, DDL_DIRECTORY|DDL_EXCLUSIVE) failed - 0x%08x\n",
GetLastError());
1641 ok (itemCount == itemCount_allDirs,
1642 "DlgDirList(DDL_DIRECTORY|DDL_EXCLUSIVE) filled with %d entries, expected %d\n",
1643 itemCount, itemCount_allDirs);
1656 ok (
res == 1,
"DlgDirList(%s, DDL_DIRECTORY|DDL_EXCLUSIVE) returned %d expected 1\n",
BAD_EXTENSION,
res);
1659 ok (itemCount == itemCount_allDirs,
"DlgDirList() incorrectly filled the listbox!\n");
1666 ok (
res == 1,
"DlgDirList(*.c, DDL_DIRECTORY|DDL_DRIVES|DDL_EXCLUSIVE) failed - 0x%08x\n",
GetLastError());
1670 ok (itemCount == itemCount_justDrives + itemCount_allDirs,
1671 "DlgDirList(DDL_DIRECTORY|DDL_EXCLUSIVE) filled with %d entries, expected %d\n",
1672 itemCount, itemCount_justDrives + itemCount_allDirs);
1674 for (
i = 0;
i < itemCount;
i++) {
1679 ok( driveletter >=
'a' && driveletter <=
'z',
"Drive letter not in range a..z, got ascii %d\n", driveletter);
1682 "Element %d (%s) does not fit expected [...]\n",
i,
pathBuffer);
1690 ok (
res == 1,
"DlgDirList(%s, DDL_DIRECTORY|DDL_DRIVES|DDL_EXCLUSIVE) returned %d expected 1\n",
BAD_EXTENSION,
res);
1693 ok (itemCount == itemCount_justDrives + itemCount_allDirs,
1694 "DlgDirList() incorrectly filled the listbox!\n");
1701 ok (
res != 0,
"DlgDirList(*, DDL_DIRECTORY|DDL_DRIVES) failed - 0x%08x\n",
GetLastError());
1708 "DlgDirSelectEx() with no selection modified last error code from 0xdeadbeef to 0x%08x\n",
1710 ok (
res == 0,
"DlgDirSelectEx() with no selection returned %d, expected 0\n",
res);
1717 for (
i = 0;
i < itemCount;
i++) {
1723 if (!
strstr(itemBuffer,
".exe"))
continue;
1725 ok (
res ==
i,
"SendMessageA(LB_SETCURSEL, %d) failed\n",
i);
1726 if (
sscanf(itemBuffer,
"[-%c-]", &driveletter) == 1) {
1731 "DlgDirSelectEx() with selection at %d modified last error code from 0xdeadbeef to 0x%08x\n",
1733 ok(
res == 1,
"DlgDirSelectEx() thinks %s (%s) is not a drive/directory!\n", itemBuffer,
pathBuffer);
1737 "%d: got \"%s\" expected \"%c:\"\n",
i,
pathBuffer, driveletter);
1738 }
else if (itemBuffer[0] ==
'[') {
1743 "DlgDirSelectEx() with selection at %d modified last error code from 0xdeadbeef to 0x%08x\n",
1745 ok(
res == 1,
"DlgDirSelectEx() thinks %s (%s) is not a drive/directory!\n", itemBuffer,
pathBuffer);
1749 ok (*(
p-1) ==
'\\',
"DlgDirSelectEx did NOT tack on a backslash to dir, got %s\n",
pathBuffer);
1751 tempBuffer[0] =
'[';
1754 ok (!
strcmp(tempBuffer, itemBuffer),
"Formatted directory should be %s, got %s\n", tempBuffer, itemBuffer);
1760 "DlgDirSelectEx() with selection at %d modified last error code from 0xdeadbeef to 0x%08x\n",
1762 ok(
res == 0,
"DlgDirSelectEx() thinks %s (%s) is a drive/directory!\n", itemBuffer,
pathBuffer);
1767 strcpy(tempBuffer, itemBuffer);
1781 for (
i = 0;
i < itemCount;
i++) {
1788 ok (
res ==
i,
"SendMessage(LB_SETCURSEL, %d) failed\n",
i);
1789 if (
sscanf(itemBuffer,
"[-%c-]", &driveletter) == 1) {
1794 "DlgDirSelectEx() with selection at %d modified last error code from 0xdeadbeef to 0x%08x\n",
1796 ok(
res == 1,
"DlgDirSelectEx() thinks %s (%s) is not a drive/directory!\n", itemBuffer,
pathBuffer);
1800 "%d: got \"%s\" expected \"%c:\"\n",
i,
pathBuffer, driveletter);
1801 }
else if (itemBuffer[0] ==
'[') {
1806 "DlgDirSelectEx() with selection at %d modified last error code from 0xdeadbeef to 0x%08x\n",
1808 ok(
res == 1,
"DlgDirSelectEx() thinks %s (%s) is not a drive/directory!\n", itemBuffer,
pathBuffer);
1812 ok (*(
p-1) ==
'\\',
"DlgDirSelectEx did NOT tack on a backslash to dir, got %s\n",
pathBuffer);
1814 tempBuffer[0] =
'[';
1817 ok (!
strcmp(tempBuffer, itemBuffer),
"Formatted directory should be %s, got %s\n", tempBuffer, itemBuffer);
1823 "DlgDirSelectEx() with selection at %d modified last error code from 0xdeadbeef to 0x%08x\n",
1825 ok(
res == 0,
"DlgDirSelectEx() thinks %s (%s) is a drive/directory!\n", itemBuffer,
pathBuffer);
1830 strcpy(tempBuffer, itemBuffer);
1839 ok(
res ||
broken(!
res) ,
"DlgDirList failed to list C:\\ folders\n");
1841 "DlgDirList set the invalid path spec '%s', expected '*'\n",
pathBuffer);
1845 ok(
res ||
broken(!
res) ,
"DlgDirList failed to list C:\\* folders\n");
1847 "DlgDirList set the invalid path spec '%s', expected '*'\n",
pathBuffer);
1853 ok(!
res,
"DlgDirList should have failed with 0 but %d was returned\n",
res);
1855 "GetLastError should return 0x589, got 0x%X\n",
GetLastError());
1862 static const DWORD styles[] =
1940 if (!pGetListBoxInfo)
1942 win_skip(
"GetListBoxInfo() not available\n");
1953 ret = pGetListBoxInfo(listbox);
1964 static const DWORD styles[] =
1980 ok(items_size >= 100,
"expected at least 100, got %d\n", items_size);
1983 ok(
ret == items_size,
"expected %d, got %d\n", items_size,
ret);
1987 ok(
ret == items_size,
"expected %d, got %d\n", items_size,
ret);
1991 ok(
ret == items_size,
"expected %d, got %d\n", items_size,
ret);
1997 ok(
ret == 0,
"unexpected return value %d\n",
ret);
2001 for (
j = 0;
j < items_size - 1;
j++)
2004 ok(
ret ==
j,
"expected %d, got %d\n",
j,
ret);
2010 ok(
ret == items_size,
"expected %d, got %d\n", items_size,
ret);
2014 ok(
ret == items_size - 1,
"expected %d, got %d\n", items_size - 1,
ret);
2016 ok(
ret == items_size,
"expected %d, got %d\n", items_size,
ret);
2018 ok(
ret > items_size,
"expected it to grow past %d, got %d\n", items_size,
ret);
2035 ok(capture == listbox,
"got %p expected %p\n", capture, listbox);
2041 ok(capture ==
NULL,
"got %p\n", capture);
2060 ok(
res == 0,
"Got wrong initial horizontal extent: %u\n",
res);
2065 ok(br ==
TRUE,
"GetScrollInfo failed\n");
2066 ok(
sinfo.nMin == 0,
"got wrong min: %u\n",
sinfo.nMin);
2067 ok(
sinfo.nMax == 100,
"got wrong max: %u\n",
sinfo.nMax);
2069 "List box should not have a horizontal scroll bar\n");
2075 ok(
res == 64,
"Got wrong horizontal extent: %u\n",
res);
2080 ok(br ==
TRUE,
"GetScrollInfo failed\n");
2081 ok(
sinfo.nMin == 0,
"got wrong min: %u\n",
sinfo.nMin);
2082 ok(
sinfo.nMax == 100,
"got wrong max: %u\n",
sinfo.nMax);
2084 "List box should not have a horizontal scroll bar\n");
2090 ok(
res == 184,
"Got wrong horizontal extent: %u\n",
res);
2095 ok(br ==
TRUE,
"GetScrollInfo failed\n");
2096 ok(
sinfo.nMin == 0,
"got wrong min: %u\n",
sinfo.nMin);
2097 ok(
sinfo.nMax == 100,
"got wrong max: %u\n",
sinfo.nMax);
2099 "List box should not have a horizontal scroll bar\n");
2107 ok(
res == 0,
"Got wrong initial horizontal extent: %u\n",
res);
2112 ok(br ==
TRUE,
"GetScrollInfo failed\n");
2113 ok(
sinfo.nMin == 0,
"got wrong min: %u\n",
sinfo.nMin);
2114 ok(
sinfo.nMax == 100,
"got wrong max: %u\n",
sinfo.nMax);
2116 "List box should not have a horizontal scroll bar\n");
2122 ok(
res == 64,
"Got wrong horizontal extent: %u\n",
res);
2127 ok(br ==
TRUE,
"GetScrollInfo failed\n");
2128 ok(
sinfo.nMin == 0,
"got wrong min: %u\n",
sinfo.nMin);
2129 ok(
sinfo.nMax == 63,
"got wrong max: %u\n",
sinfo.nMax);
2131 "List box should not have a horizontal scroll bar\n");
2137 ok(
res == 184,
"Got wrong horizontal extent: %u\n",
res);
2142 ok(br ==
TRUE,
"GetScrollInfo failed\n");
2143 ok(
sinfo.nMin == 0,
"got wrong min: %u\n",
sinfo.nMin);
2144 ok(
sinfo.nMax == 183,
"got wrong max: %u\n",
sinfo.nMax);
2146 "List box should have a horizontal scroll bar\n");
2151 ok(
res == 0,
"Got wrong horizontal extent: %u\n",
res);
2156 ok(br ==
TRUE,
"GetScrollInfo failed\n");
2157 ok(
sinfo.nMin == 0,
"got wrong min: %u\n",
sinfo.nMin);
2158 ok(
sinfo.nMax == 0,
"got wrong max: %u\n",
sinfo.nMax);
2160 "List box should not have a horizontal scroll bar\n");
2168 ok(
res == 0,
"Got wrong initial horizontal extent: %u\n",
res);
2173 ok(br ==
TRUE,
"GetScrollInfo failed\n");
2174 ok(
sinfo.nMin == 0,
"got wrong min: %u\n",
sinfo.nMin);
2175 ok(
sinfo.nMax == 0,
"got wrong max: %u\n",
sinfo.nMax);
2177 "List box should have a horizontal scroll bar\n");
2183 ok(
res == 64,
"Got wrong horizontal extent: %u\n",
res);
2188 ok(br ==
TRUE,
"GetScrollInfo failed\n");
2189 ok(
sinfo.nMin == 0,
"got wrong min: %u\n",
sinfo.nMin);
2190 ok(
sinfo.nMax == 63,
"got wrong max: %u\n",
sinfo.nMax);
2192 "List box should have a horizontal scroll bar\n");
2198 ok(
res == 184,
"Got wrong horizontal extent: %u\n",
res);
2203 ok(br ==
TRUE,
"GetScrollInfo failed\n");
2204 ok(
sinfo.nMin == 0,
"got wrong min: %u\n",
sinfo.nMin);
2205 ok(
sinfo.nMax == 183,
"got wrong max: %u\n",
sinfo.nMax);
2207 "List box should have a horizontal scroll bar\n");
2212 ok(
res == 0,
"Got wrong horizontal extent: %u\n",
res);
2217 ok(br ==
TRUE,
"GetScrollInfo failed\n");
2218 ok(
sinfo.nMin == 0,
"got wrong min: %u\n",
sinfo.nMin);
2219 ok(
sinfo.nMax == 0,
"got wrong max: %u\n",
sinfo.nMax);
2221 "List box should have a horizontal scroll bar\n");
2250 static const DWORD invalid_styles[] =
2259 static const UINT invalid_idx[] = { -2, 2 };
2260 static const UINT valid_idx[] = { 0, 1 };
2269 ok(listbox !=
NULL,
"Failed to create ListBox window.\n");
2272 ok(
ret == 0,
"Unexpected return value %d.\n",
ret);
2274 ok(
ret == 1,
"Unexpected return value %d.\n",
ret);
2276 ok(
ret == 2,
"Unexpected return value %d.\n",
ret);
2300 ok(
ret ==
sizeof(
data),
"Unexpected return value %d.\n",
ret);
2304 ok(
ret ==
sizeof(
data),
"Unexpected return value %d.\n",
ret);
2308 ok(
ret == 0,
"Unexpected return value %d.\n",
ret);
2341 ok(
parent !=
NULL,
"Failed to create parent window.\n");
2349 ok(listbox !=
NULL,
"Failed to create a listbox.\n");
2352 ok((
style & invalid_styles[
i]) == invalid_styles[
i],
"%u: unexpected window styles %#x.\n",
i,
style);
2366 { 1, 1, 1,
LB_ERR}, {0,0,0,0},
2367 { 2, 2, 2,
LB_ERR}, {0,0,0,0},
2372 { 1, 1, 1,
LB_ERR}, {0,0,0,0},
2373 { 2, 2, 2,
LB_ERR}, {0,0,0,0},
2376 {{ 0,
LB_ERR, 0, 0}, {0,0,0,0},
2377 { 1, 1, 1, 1}, {0,0,0,0},
2378 { 2, 1, 2, 1}, {0,0,0,0},
2379 { 0,
LB_ERR, 0, 2}, {0,0,0,0}};
2382 { 1, 1, 1,
LB_ERR}, {0,0,0,0},
2383 { 2, 2, 2,
LB_ERR}, {0,0,0,0},
2386 {{ 0,
LB_ERR, 0, 0}, {0,0,0,0},
2387 { 1, 1, 1, 1}, {0,0,0,0},
2388 { 2, 2, 2, 1}, {0,0,0,0},
2389 { 0,
LB_ERR, 0, 2}, {0,0,0,0}};
2392 { 1, 1, 1,
LB_ERR}, {0,0,0,0},
2393 { 2, 2, 2,
LB_ERR}, {0,0,0,0},
2396 {{ 0,
LB_ERR, 0, 0}, {0,0,0,0},
2397 { 1, 1, 1, 1}, {0,0,0,0},
2398 { 2, 2, 2, 1}, {0,0,0,0},
2399 { 0,
LB_ERR, 0, 2}, {0,0,0,0}};
2402 { 1, 1, 1,
LB_ERR}, {0,0,0,0},
2403 { 2, 2, 2,
LB_ERR}, {0,0,0,0},
2406 trace (
" Testing single selection...\n");
2408 trace (
" ... with NOSEL\n");
2410 trace (
" ... LBS_NODATA variant ...\n");
2412 trace (
" ... with NOSEL\n");
2415 trace (
" Testing multiple selection...\n");
2417 trace (
" ... with NOSEL\n");
2419 trace (
" ... LBS_NODATA variant ...\n");
2421 trace (
" ... with NOSEL\n");
2424 trace (
" Testing extended selection...\n");
2426 trace (
" ... with NOSEL\n");
2428 trace (
" ... LBS_NODATA variant ...\n");
2430 trace (
" ... with NOSEL\n");
2433 trace (
" Testing extended and multiple selection...\n");
2435 trace (
" ... with NOSEL\n");
2437 trace (
" ... LBS_NODATA variant ...\n");
2439 trace (
" ... with NOSEL\n");
static struct _test_info results[8]
char * strcat(char *DstString, const char *SrcString)
int strcmp(const char *String1, const char *String2)
char * strstr(char *String1, 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 const char * wine_dbgstr_rect(const RECT *prc)
static NTSTATUS zero_data(device_extension *Vcb, fcb *fcb, uint64_t start, uint64_t length, PIRP Irp, LIST_ENTRY *rollback)
#define ERROR_INVALID_PARAMETER
#define GetProcAddress(x, y)
#define INVALID_HANDLE_VALUE
#define CreateFileA(a, b, c, d, e, f, g)
#define HeapFree(x, y, z)
#define FILE_ATTRIBUTE_NORMAL
#define WideCharToMultiByte
#define MultiByteToWideChar
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)
int WINAPI lstrcmpW(LPCWSTR str1, LPCWSTR str2)
#define check(expected, result)
GLint GLint GLint GLint GLint x
GLint GLint GLint GLint GLint GLint y
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLdouble GLdouble GLdouble r
GLsizei const GLchar *const * strings
GLenum GLuint GLenum GLsizei const GLchar * buf
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 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 HWND create_listbox(DWORD add_style, HWND parent)
static void test_listbox_LB_DIR(void)
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 void test_init_storage(void)
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 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 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 DWORD *static HFONT(WINAPI *pCreateFontIndirectExA)(const ENUMLOGFONTEXDVA *)
static const char * strw(LPCWSTR x)
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
static int strcmp_aw(LPCWSTR strw, const char *stra)
static LRESULT WINAPI listbox_subclass_proc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
static void check_item_height(void)
static int lb_getlistboxinfo
#define WS_OVERLAPPEDWINDOW
#define LBS_DISABLENOSCROLL
#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
DWORD WINAPI GetLastError(void)
#define ERROR_NO_WILDCARD_CHARACTERS
#define ERROR_SETCOUNT_ON_BAD_LB
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)
BOOL WINAPI ShowWindow(_In_ HWND, _In_ int)
LONG WINAPI GetWindowLongA(_In_ HWND, _In_ int)
LRESULT WINAPI DefWindowProcA(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
#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
#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)
HWND WINAPI GetWindow(_In_ HWND, _In_ UINT)
#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)
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)
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)