32#define ID_EDITTESTDBUTTON 0x123
33#define ID_EDITTEST2 99
58 static int num_ok_commands = 0;
125 else if (hfocus == hedit2)
127 else if (hfocus == hedit3)
133 if ((hfocus == hedit) && (num_ok_commands == 0))
269 if ((hfocus == hok) &&
len == 0)
278 else if (hfocus == hcancel)
280 else if (hfocus == hedit)
392 if ((hfocus == hedit) &&
len == 0)
399 if ((hfocus == hok) &&
len == 0)
514 if ((hfocus == hedit) &&
len == 0)
521 if ((hfocus == hok) &&
len == 0)
528 if ((hfocus == hedit) &&
len == 2)
564 ok (
handle !=
NULL,
"CreateWindow EDIT Control failed\n");
573 static const WCHAR testtextW[] = {
'T',
'e',
's',
't',
' ',
't',
'e',
'x',
't',0};
590 ok(
b,
"AdjustWindowRect failed\n");
599 ok (parentWnd !=
NULL,
"CreateWindow EDIT Test failed\n");
607 ok (editWnd !=
NULL,
"CreateWindow EDIT Test Text failed\n");
618 trace(
"Edit control has no parent!\n");
648 RECT ClientRect, WindowRect;
672 "The client height should be %d, but is %d\n",
685 trace(
"EDIT: Single line\n");
689 for (
i = 0;
i < 65535;
i++)
691 msMessage.wParam =
i;
694 "Expected DLGC_WANTCHARS | DLGC_HASSETSEL | DLGC_WANTARROWS got %x\n",
r);
698 trace(
"EDIT: Single line want returns\n");
702 for (
i = 0;
i < 65535;
i++)
704 msMessage.wParam =
i;
707 "Expected DLGC_WANTCHARS | DLGC_HASSETSEL | DLGC_WANTARROWS got %x\n",
r);
711 trace(
"EDIT: Multiline line\n");
715 for (
i = 0;
i < 65535;
i++)
717 msMessage.wParam =
i;
720 "Expected DLGC_WANTCHARS | DLGC_HASSETSEL | DLGC_WANTALLKEYS | DLGC_WANTARROWS got %x\n",
r);
724 trace(
"EDIT: Multi line want returns\n");
728 for (
i = 0;
i < 65535;
i++)
730 msMessage.wParam =
i;
733 "Expected DLGC_WANTCHARS | DLGC_HASSETSEL | DLGC_WANTALLKEYS | DLGC_WANTARROWS got %x\n",
r);
747 char szLocalString[
MAXLEN];
765 trace(
"EDIT: SETTEXT atomicity\n");
768 ok(1 ==
r,
"Expected: %d, got: %d\n", 1,
r);
770 ok(1 ==
r,
"Expected: %d, got: %d\n", 1,
r);
772 ok(1 ==
r,
"Expected: %d, got: %d\n", 1,
r);
776 "Wrong contents of edit: %s\n", szLocalString);
780 todo_wine ok(0 ==
r,
"SetCaretPos succeeded unexpectedly, expected: 0, got: %d\n",
r);
782 ok(phwnd !=
NULL,
"SetFocus failed unexpectedly, expected non-zero, got NULL\n");
784 ok(1 ==
r,
"SetCaretPos failed unexpectedly, expected: 1, got: %d\n",
r);
786 ok(1 ==
r,
"GetCaretPos failed unexpectedly, expected: 1, got: %d\n",
r);
787 ok(cpos.
x == 0 && cpos.
y == 0,
"Wrong caret position, expected: (0,0), got: (%d,%d)\n", cpos.
x, cpos.
y);
789 ok(1 ==
r,
"SetCaretPos failed unexpectedly, expected: 1, got: %d\n",
r);
791 ok(1 ==
r,
"GetCaretPos failed unexpectedly, expected: 1, got: %d\n",
r);
792 ok(cpos.
x == -1 && cpos.
y == -1,
"Wrong caret position, expected: (-1,-1), got: (%d,%d)\n", cpos.
x, cpos.
y);
794 ok(1 ==
r,
"SetCaretPos failed unexpectedly, expected: 1, got: %d\n",
r);
796 ok(1 ==
r,
"GetCaretPos failed unexpectedly, expected: 1, got: %d\n",
r);
797 ok(cpos.
x == (
w << 1) && cpos.
y == (
h << 1),
"Wrong caret position, expected: (%d,%d), got: (%d,%d)\n",
w << 1,
h << 1, cpos.
x, cpos.
y);
799 ok(1 ==
r,
"SetCaretPos failed unexpectedly, expected: 1, got: %d\n",
r);
801 ok(1 ==
r,
"GetCaretPos failed unexpectedly, expected: 1, got: %d\n",
r);
802 ok(cpos.
x ==
w && cpos.
y ==
h,
"Wrong caret position, expected: (%d,%d), got: (%d,%d)\n",
w,
h, cpos.
x, cpos.
y);
804 ok(1 ==
r,
"SetCaretPos failed unexpectedly, expected: 1, got: %d\n",
r);
806 ok(1 ==
r,
"GetCaretPos failed unexpectedly, expected: 1, got: %d\n",
r);
807 ok(cpos.
x == (
w - 1) && cpos.
y == (
h - 1),
"Wrong caret position, expected: (%d,%d), got: (%d,%d)\n",
w - 1,
h - 1, cpos.
x, cpos.
y);
815 char szLocalString[
MAXLEN];
818 if (!
strcmp(szLocalString,
"foo"))
820 strcpy(szLocalString,
"bar");
851#define test_notify(enchange, enmaxtext, enupdate) \
853 ok(notifications.en_change == enchange, "expected %d EN_CHANGE notifications, " \
854 "got %d\n", enchange, notifications.en_change); \
855 ok(notifications.en_maxtext == enmaxtext, "expected %d EN_MAXTEXT notifications, " \
856 "got %d\n", enmaxtext, notifications.en_maxtext); \
857 ok(notifications.en_update == enupdate, "expected %d EN_UPDATE notifications, " \
858 "got %d\n", enupdate, notifications.en_update); \
885 static LONG defwndproc_counter = 0;
907 defwndproc_counter++;
909 defwndproc_counter--;
917 static LONG defwndproc_counter = 0;
933 defwndproc_counter++;
938 defwndproc_counter--;
948 static const char *
str =
"this is a long string.";
949 static const char *str2 =
"this is a long string.\r\nthis is a long string.\r\nthis is a long string.\r\nthis is a long string.";
958 trace(
"EDIT: Test notifications\n");
966 ok(hParent !=
NULL,
"Failed to create control parent.\n");
968 trace(
"EDIT: Single line, no ES_AUTOHSCROLL\n");
969 hWnd =
CreateWindowExA(0,
WC_EDITA,
NULL, 0, 10, 10, 50, 50, hParent,
NULL,
NULL,
NULL);
970 ok(
hWnd !=
NULL,
"Failed to create Edit control.\n");
984 ok(1 ==
len,
"wrong text length, expected 1, got %d\n",
len);
1007 ok(5 ==
len,
"text should have been truncated to limit, expected 5, got %d\n",
len);
1018 trace(
"EDIT: Single line, ES_AUTOHSCROLL\n");
1019 hWnd =
CreateWindowExA(0,
WC_EDITA,
NULL,
ES_AUTOHSCROLL, 10, 10, 50, 50, hParent,
NULL,
NULL,
NULL);
1020 ok(
hWnd !=
NULL,
"Failed to create Edit control.\n");
1038 ok(
lstrlenA(str2) ==
len,
"text shouldn't have been truncated\n");
1044 ok(
lstrlenA(str2) ==
len,
"text shouldn't have been truncated\n");
1053 ok(5 ==
len,
"text should have been truncated to limit, expected 5, got %d\n",
len);
1064 trace(
"EDIT: Multline, no ES_AUTOHSCROLL, no ES_AUTOVSCROLL\n");
1066 10, 10, (50 *
dpi) / 96, (50 *
dpi) / 96,
1068 ok(
hWnd !=
NULL,
"Failed to create Edit control.\n");
1077 ok(0 ==
len,
"text should have been truncated, expected 0, got %d\n",
len);
1100 ok(5 ==
len,
"text should have been truncated to limit, expected 5, got %d\n",
len);
1111 trace(
"EDIT: Multline, ES_AUTOHSCROLL, no ES_AUTOVSCROLL\n");
1113 10, 10, (50 *
dpi) / 96, (50 *
dpi) / 96,
1115 ok(
hWnd !=
NULL,
"Failed to create Edit control.\n");
1120 ok(0 ==
len,
"text should have been truncated, expected 0, got %d\n",
len);
1133 ok(
lstrlenA(str2) ==
len,
"text shouldn't have been truncated\n");
1142 ok(5 ==
len,
"text should have been truncated to limit, expected 5, got %d\n",
len);
1148 ok(
lstrlenA(str2) ==
len,
"text shouldn't have been truncated\n");
1153 trace(
"EDIT: Multline, ES_AUTOHSCROLL and ES_AUTOVSCROLL\n");
1156 ok(
hWnd !=
NULL,
"Failed to create Edit control.\n");
1161 ok(
lstrlenA(str2) ==
len,
"text shouldn't have been truncated\n");
1167 ok(
lstrlenA(str2) ==
len,
"text shouldn't have been truncated\n");
1176 ok(5 ==
len,
"text should have been truncated to limit, expected 5, got %d\n",
len);
1182 ok(
lstrlenA(str2) ==
len,
"text shouldn't have been truncated\n");
1190 int lo, hi, mid,
ret,
i;
1197 mid = lo + (hi - lo) / 2;
1199 for (
i = lo;
i < mid;
i++)
1202 ok(0 ==
ret,
"expected 0 got %d\n",
ret);
1205 for (
i = mid;
i <= hi;
i++)
1208 ok(1 ==
ret,
"expected 1 got %d\n",
ret);
1212 ok(-1 ==
ret,
"expected -1 got %d\n",
ret);
1219 mid = lo + (hi - lo) / 2;
1221 for (
i = lo;
i < mid;
i++)
1224 ok(0 ==
ret,
"expected 0 got %d\n",
ret);
1227 for (
i = mid;
i <= hi;
i++)
1230 ok(1 ==
ret,
"expected 1 got %d\n",
ret);
1234 ok(-1 ==
ret,
"expected -1 got %d\n",
ret);
1241 mid = lo + (hi - lo) / 2;
1243 for (
i = lo;
i < mid;
i++)
1246 ok(0 ==
ret,
"expected 0 got %d\n",
ret);
1249 for (
i = mid;
i <= hi;
i++)
1252 ok(1 ==
ret,
"expected 1 got %d\n",
ret);
1256 ok(-1 ==
ret,
"expected -1 got %d\n",
ret);
1263 mid = lo + (hi - lo) / 2 + 1;
1265 for (
i = lo;
i < mid;
i++)
1268 ok((0 ==
ret || 1 ==
ret ),
"expected 0 or 1 got %d\n",
ret);
1271 for (
i = mid;
i <= hi;
i++)
1274 ok(1 ==
ret,
"expected 1 got %d\n",
ret);
1278 ok(-1 ==
ret,
"expected -1 got %d\n",
ret);
1285 mid = lo + (hi - lo) / 2 + 1;
1287 for (
i = lo;
i < mid;
i++)
1290 ok((0 ==
ret || 1 ==
ret ),
"expected 0 or 1 got %d\n",
ret);
1293 for (
i = mid;
i <= hi;
i++)
1296 ok(1 ==
ret,
"expected 1 got %d\n",
ret);
1300 ok(-1 ==
ret,
"expected -1 got %d\n",
ret);
1307 mid = lo + (hi - lo) / 2 + 1;
1309 for (
i = lo;
i < mid;
i++)
1312 ok((0 ==
ret || 1 ==
ret ),
"expected 0 or 1 got %d\n",
ret);
1315 for (
i = mid;
i <= hi;
i++)
1318 ok(1 ==
ret,
"expected 1 got %d\n",
ret);
1322 ok(-1 ==
ret,
"expected -1 got %d\n",
ret);
1331 static const char *
str =
"test\r\ntest";
1335 RECT rc1 = { 10, 10, 11, 11};
1339 hWnd =
CreateWindowExA(0,
WC_EDITA,
str, 0, 10, 10, 1, 1,
NULL,
NULL,
NULL,
NULL);
1340 ok(
hWnd !=
NULL,
"Failed to create Edit control.\n");
1344 ok( rc.
right - rc.
left > 20,
"size of the window (%d) is smaller than expected\n",
1355 ok(parentWnd !=
NULL,
"Failed to create control parent.\n");
1361 ok(
hWnd !=
NULL,
"Failed to create Edit control.\n");
1372 ok(
hWnd !=
NULL,
"Failed to create Edit control.\n");
1387 static const char *
str =
"test\r\ntest";
1392 hWnd =
CreateWindowExA(0,
"EDIT",
"Test", 0, 10, 10, 1, 1,
NULL,
NULL,
hinst,
NULL);
1393 ok(
hWnd !=
NULL,
"Failed to create edit control.\n");
1404 ok(
ret == 1,
"Unexpected return value %d\n",
ret);
1411 ok(
ret == 0,
"Expected 0, got %d\n",
ret);
1426 trace(
"EDIT: buffer limit for single-line\n");
1429 ok(
r == 30000,
"Incorrect default text limit, expected 30000 got %u\n",
r);
1432 ok(
r == 2147483646,
"got limit %u (expected 2147483646)\n",
r);
1436 trace(
"EDIT: buffer limit for multi-line\n");
1439 ok(
r == 30000,
"Incorrect default text limit, expected 30000 got %u\n",
r);
1442 ok(
r == 4294967295U,
"got limit %u (expected 4294967295)\n",
r);
1449 static const char *single_line_str =
"a";
1450 static const char *multiline_str =
"Test\r\nText";
1459 ok(hwEdit !=
NULL,
"Failed to create Edit control.\n");
1462 ok(!
ret,
"Returned %x, expected 0.\n",
ret);
1465 ok(!
ret,
"Returned %x, expected 0.\n",
ret);
1468 ok(!
ret,
"Returned %x, expected 0.\n",
ret);
1471 ok(!
ret,
"Returned %x, expected 0.\n",
ret);
1480 ok(hwEdit !=
NULL,
"Failed to create Edit control.\n");
1483 ok(!
ret,
"Returned %x, expected 0.\n",
ret);
1494 case 932:
case 936:
case 949:
case 950:
case 1361:
1498 (
fs.fsCsb[0] & FS_DBCS_MASK));
1514 memset(&lf, 0,
sizeof(lf));
1524 hwnd =
CreateWindowExA(0,
"Edit",
"A",
WS_POPUP, 0, 0, 5000, 1000,
NULL,
NULL,
NULL,
NULL);
1553 empty_expect = threshold > 80 ? small_margins :
expect;
1556 hwnd =
CreateWindowExA(0,
"Edit",
"A",
WS_POPUP, 0, 0, threshold - 1, 100,
NULL,
NULL,
NULL,
NULL);
1572 hwnd =
CreateWindowExA(0,
"Edit",
"A",
WS_POPUP, 0, 0, threshold, 100,
NULL,
NULL,
NULL,
NULL);
1588 hwnd =
CreateWindowExA(0,
"Edit",
"A",
WS_POPUP, 0, 0, 0, 0,
NULL,
NULL,
NULL,
NULL);
1609 if (side_bearing < 0)
1610 margin =
min(-side_bearing,
width/2);
1645 const WCHAR EditW[] = {
'E',
'd',
'i',
't',0},
strW[] = {
'W',0};
1646 struct char_width_info {
1650 BOOL (
WINAPI *pGetCharWidthInfo)(
HDC,
struct char_width_info *);
1655 memset(&lf, 0,
sizeof(lf));
1665 hwnd =
CreateWindowExW(0, EditW,
strW,
WS_POPUP, 0, 0, 5000, 1000,
NULL,
NULL,
NULL,
NULL);
1683 if (cjk && pGetCharWidthInfo && pGetCharWidthInfo(
hdc, &
info)) {
1693 font_expect = small_margins;
1710 ok(
margins ==
expect,
"%s:%d: expected %d, %d, got %d, %d\n", facename,
charset,
HIWORD(
expect),
LOWORD(
expect),
HIWORD(
margins),
LOWORD(
margins));
1714 hwnd =
CreateWindowExA(0,
"Edit",
"A",
WS_POPUP, 0, 0, 5000, 1000,
NULL,
NULL,
NULL,
NULL);
1728 ok(
margins ==
expect,
"%s:%d: expected %d, %d, got %d, %d\n", facename,
charset,
HIWORD(
expect),
LOWORD(
expect),
HIWORD(
margins),
LOWORD(
margins));
1753 DWORD old_margins, new_margins;
1754 RECT old_rect, new_rect;
1755 INT old_right_margin;
1761 old_right_margin =
HIWORD(old_margins);
1767 ok(
LOWORD(new_margins) == 10,
"Wrong left margin: %d\n",
LOWORD(new_margins));
1768 ok(
HIWORD(new_margins) == old_right_margin,
"Wrong right margin: %d\n",
HIWORD(new_margins));
1772 ok(
LOWORD(new_margins) == 10,
"Wrong left margin: %d\n",
LOWORD(new_margins));
1773 ok(
HIWORD(new_margins) == 10,
"Wrong right margin: %d\n",
HIWORD(new_margins));
1781 ok(new_rect.
left == old_rect.
left + 10,
"The left border of the rectangle is wrong\n");
1782 ok(new_rect.
right == old_rect.
right - 15,
"The right border of the rectangle is wrong\n");
1783 ok(new_rect.
top == old_rect.
top,
"The top border of the rectangle must not change\n");
1784 ok(new_rect.
bottom == old_rect.
bottom,
"The bottom border of the rectangle must not change\n");
1790 SetRect(&old_rect, 1, 1, 99, 99);
1795 ok(
EqualRect(&old_rect, &new_rect),
"The border of the rectangle has changed\n");
1802 ok(
EqualRect(&old_rect, &new_rect),
"The border of the rectangle has changed\n");
1805 ok(
EqualRect(&old_rect, &new_rect),
"The border of the rectangle has changed\n");
1808 ok(
EqualRect(&old_rect, &new_rect),
"The border of the rectangle has changed\n");
1811 ok(
EqualRect(&old_rect, &new_rect),
"The border of the rectangle has changed\n");
1837 skip(
"MS PGothic is not available, skipping some margin tests\n");
1844 skip(
"Ume P Gothic is not available, skipping some margin tests\n");
1851 skip(
"SimSun is not available, skipping some margin tests\n");
1863 skip(
"Arial not found - skipping font change margin tests\n");
1871 memset(&lf, 0,
sizeof(lf));
1946#define edit_pos_ok(exp, got, txt) \
1947 ok(exp == got, "wrong " #txt " expected %d got %d\n", exp, got);
1949#define check_pos(hwEdit, set_height, test_top, test_height, test_left) \
1953 set_client_height(hwEdit, set_height); \
1954 SendMessageA(hwEdit, EM_GETRECT, 0, (LPARAM) &format_rect); \
1955 left_margin = LOWORD(SendMessageA(hwEdit, EM_GETMARGINS, 0, 0)); \
1956 edit_pos_ok(test_top, format_rect.top, vertical position); \
1957 edit_pos_ok((int)test_height, format_rect.bottom - format_rect.top, height); \
1958 edit_pos_ok(test_left, format_rect.left - left_margin, left); \
1977 ok (
font !=
NULL,
"GetStockObject SYSTEM_FONT failed\n");
1979 ok (
dc !=
NULL,
"GetDC() failed\n");
1982 ok (xb,
"GetTextMetrics failed\n");
2084 trace(
"EDIT: Text position (Single line)\n");
2086 trace(
"EDIT: Text position (Multi line)\n");
2099 ok(
r ==
ES_PASSWORD,
"Wrong style expected ES_PASSWORD got: 0x%x\n",
r);
2107 ok(1 ==
r,
"Expected: %d, got: %d\n", 1,
r);
2124 ok(1 ==
r,
"Expected: %d, got: %d\n", 1,
r);
2126 ok(1 ==
r,
"Expected: %d, got: %d\n", 1,
r);
2131 ok(
r == 0,
"Expected: 0, got: %d\n",
r);
2143 const char*
text =
"undo this";
2147 ok(0 ==
r,
"Wrong style expected 0x%x got: 0x%x\n", 0,
r);
2154 cpMin = cpMax = 0xdeadbeef;
2158 ok(0 == cpMin,
"Expected: %d, got %d\n", 0, cpMin);
2159 ok(9 == cpMax,
"Expected: %d, got %d\n", 9, cpMax);
2163 ok(1 ==
r,
"Expected: %d, got: %d\n", 1,
r);
2168 ok(0 ==
r,
"Expected: %d, got len %d\n", 0,
r);
2173 ok(1 ==
r,
"Expected: %d, got: %d\n", 1,
r);
2183 ok(1 ==
r,
"Expected: %d, got: %d\n", 1,
r);
2188 ok(
r == 0,
"Expected: %d, got len %d\n", 0,
r);
2210 ok(1 ==
r,
"Expected: %d, got: %d\n", 1,
r);
2215 ok(2 ==
r,
"Expected: %d, got len %d\n", 2,
r);
2223 ok(0 ==
r,
"Wrong style expected 0x%x got: 0x%x\n", 0,
r);
2230 ok(1 ==
r,
"Expected: %d, got: %d\n", 1,
r);
2235 ok(0 ==
r,
"Expected: %d, got len %d\n", 0,
r);
2250 ok(1 ==
r,
"Expected: %d, got: %d\n", 1,
r);
2255 ok(0 ==
r,
"Expected: %d, got len %d\n", 0,
r);
2277 ok(1 ==
r,
"Expected: %d, got: %d\n", 1,
r);
2282 ok(1 ==
r,
"Expected: %d, got len %d\n", 1,
r);
2290 ok(0 ==
r,
"Wrong style expected 0x%x got: 0x%x\n", 0,
r);
2297 ok(1 ==
r,
"Expected: %d, got: %d\n", 1,
r);
2302 ok(0 ==
r,
"Expected: %d, got len %d\n", 0,
r);
2314 ok(333 ==
r,
"Expected %d, got %d\n", 333,
r);
2316 ok(111 ==
r,
"Expected %d, got %d\n", 111,
r);
2318 ok(444 ==
r,
"Expected %d, got %d\n", 444,
r);
2322 ok(444 ==
r,
"Expected %d, got %d\n", 444,
r);
2324 ok(444 ==
r,
"Expected %d, got %d\n", 444,
r);
2326 ok(444 ==
r,
"Expected %d, got %d\n", 444,
r);
2330 ok(444 ==
r,
"Expected %d, got %d\n", 444,
r);
2332 ok(444 ==
r,
"Expected %d, got %d\n", 444,
r);
2334 ok(444 ==
r,
"Expected %d, got %d\n", 444,
r);
2338 ok(333 ==
r,
"Expected %d, got %d\n", 333,
r);
2340 ok(111 ==
r,
"Expected %d, got %d\n", 111,
r);
2342 ok(444 ==
r,
"Expected %d, got %d\n", 444,
r);
2346 ok(444 ==
r,
"Expected %d, got %d\n", 444,
r);
2348 ok(444 ==
r,
"Expected %d, got %d\n", 444,
r);
2350 ok(444 ==
r,
"Expected %d, got %d\n", 444,
r);
2354 ok(444 ==
r,
"Expected %d, got %d\n", 444,
r);
2356 ok(444 ==
r,
"Expected %d, got %d\n", 444,
r);
2358 ok(444 ==
r,
"Expected %d, got %d\n", 444,
r);
2362 ok(22 ==
r,
"Expected %d, got %d\n", 22,
r);
2364 ok(33 ==
r,
"Expected %d, got %d\n", 33,
r);
2373 ok(2222 ==
r,
"Expected %d, got %d\n", 2222,
r);
2375 ok(1111 ==
r,
"Expected %d, got %d\n", 1111,
r);
2377 ok(2222 ==
r,
"Expected %d, got %d\n", 2222,
r);
2379 ok(11 ==
r,
"Expected %d, got %d\n", 11,
r);
2388 ok(333 ==
r,
"Expected %d, got %d\n", 333,
r);
2390 ok(444 ==
r,
"Expected %d, got %d\n", 444,
r);
2392 ok(444 ==
r,
"Expected %d, got %d\n", 444,
r);
2396 ok(444 ==
r,
"Expected %d, got %d\n", 444,
r);
2398 ok(444 ==
r,
"Expected %d, got %d\n", 444,
r);
2400 ok(444 ==
r,
"Expected %d, got %d\n", 444,
r);
2404 ok(444 ==
r,
"Expected %d, got %d\n", 444,
r);
2406 ok(444 ==
r,
"Expected %d, got %d\n", 444,
r);
2408 ok(444 ==
r,
"Expected %d, got %d\n", 444,
r);
2417 ok(222 ==
r,
"Expected %d, got %d\n", 222,
r);
2419 ok(111 ==
r,
"Expected %d, got %d\n", 111,
r);
2421 ok(444 ==
r,
"Expected %d, got %d\n", 444,
r);
2425 ok(444 ==
r,
"Expected %d, got %d\n", 444,
r);
2427 ok(444 ==
r,
"Expected %d, got %d\n", 444,
r);
2429 ok(444 ==
r,
"Expected %d, got %d\n", 444,
r);
2433 ok(222 ==
r,
"Expected %d, got %d\n", 222,
r);
2435 ok(111 ==
r,
"Expected %d, got %d\n", 111,
r);
2437 ok(444 ==
r,
"Expected %d, got %d\n", 444,
r);
2441 ok(222 ==
r,
"Expected %d, got %d\n", 222,
r);
2443 ok(111 ==
r,
"Expected %d, got %d\n", 111,
r);
2445 ok(444 ==
r,
"Expected %d, got %d\n", 444,
r);
2449 ok(444 ==
r,
"Expected %d, got %d\n", 444,
r);
2451 ok(444 ==
r,
"Expected %d, got %d\n", 444,
r);
2453 ok(444 ==
r,
"Expected %d, got %d\n", 444,
r);
2457 ok(222 ==
r,
"Expected %d, got %d\n", 222,
r);
2459 ok(111 ==
r,
"Expected %d, got %d\n", 111,
r);
2461 ok(444 ==
r,
"Expected %d, got %d\n", 444,
r);
2483 HWND hwEdit, hwParent;
2490 ok(1 ==
r,
"expected 1, got %d\n",
r);
2601 "Expected no WM_COMMAND messages, got %d\n",
menu_messages.wm_command);
2603 "Expected 1 EM_SETSEL message, got %d\n",
menu_messages.em_setsel);
2619 test2.cbClsExtra = 0;
2620 test2.cbWndExtra = 0;
2631 test3.cbClsExtra = 0;
2632 test3.cbWndExtra = 0;
2643 test4.cbClsExtra = 0;
2644 test4.cbWndExtra = 0;
2665 memset(&wc, 0,
sizeof(wc));
2689 char szLocalString[
MAXLEN];
2702 trace(
"EDIT: Oversized font (Multi line)\n");
2713 ok(1 ==
r,
"Expected: %d, got: %d\n", 1,
r);
2715 ok(1 ==
r,
"Expected: %d, got: %d\n", 1,
r);
2717 ok(1 ==
r,
"Expected: %d, got: %d\n", 1,
r);
2720 ok(
strcmp(szLocalString,
"ABC")==0,
2721 "Wrong contents of edit: %s\n", szLocalString);
2724 ok(
r != -1,
"EM_POSFROMCHAR failed index 0\n");
2726 ok(
r != -1,
"EM_POSFROMCHAR failed index 1\n");
2728 ok(
r != -1,
"EM_POSFROMCHAR failed index 2\n");
2730 ok(
r == -1,
"EM_POSFROMCHAR succeeded index 3\n");
2751#define test_dm_messages(wmcommand, wmclose, wmgetdefid, wmnextdlgctl) \
2752 ok(dm_messages.wm_command == wmcommand, "expected %d WM_COMMAND messages, " \
2753 "got %d\n", wmcommand, dm_messages.wm_command); \
2754 ok(dm_messages.wm_close == wmclose, "expected %d WM_CLOSE messages, " \
2755 "got %d\n", wmclose, dm_messages.wm_close); \
2756 ok(dm_messages.wm_getdefid == wmgetdefid, "expected %d WM_GETDIFID messages, " \
2757 "got %d\n", wmgetdefid, dm_messages.wm_getdefid);\
2758 ok(dm_messages.wm_nextdlgctl == wmnextdlgctl, "expected %d WM_NEXTDLGCTL messages, " \
2759 "got %d\n", wmnextdlgctl, dm_messages.wm_nextdlgctl)
2784 HWND hwEdit, hwParent, hwButton;
2790 ok(1 ==
r,
"expected 1, got %d\n",
r);
2792 ok(11 ==
len,
"expected 11, got %d\n",
len);
2795 ok(0x8d ==
r,
"expected 0x8d, got 0x%x\n",
r);
2798 ok(1 ==
r,
"expected 1, got %d\n",
r);
2800 ok(13 ==
len,
"expected 13, got %d\n",
len);
2803 ok(0x8d ==
r,
"expected 0x8d, got 0x%x\n",
r);
2805 ok(1 ==
r,
"expected 1, got %d\n",
r);
2807 ok(13 ==
len,
"expected 13, got %d\n",
len);
2810 ok(1 ==
r,
"expected 1, got %d\n",
r);
2812 ok(13 ==
len,
"expected 13, got %d\n",
len);
2819 ok(1 ==
r,
"expected 1, got %d\n",
r);
2821 ok(11 ==
len,
"expected 11, got %d\n",
len);
2826 msg.lParam = 0xe0001;
2828 ok(0x8d ==
r,
"expected 0x8d, got 0x%x\n",
r);
2831 ok(1 ==
r,
"expected 1, got %d\n",
r);
2833 ok(11 ==
len,
"expected 11, got %d\n",
len);
2843 ok(1 ==
r,
"expected 1, got %d\n",
r);
2848 ok(1 ==
r,
"expected 1, got %d\n",
r);
2855 msg.lParam = 0xf0001;
2857 ok(0x89 ==
r,
"expected 0x89, got 0x%x\n",
r);
2862 ok(1 ==
r,
"expected 1, got %d\n",
r);
2873 ok(1 ==
r,
"expected 1, got %d\n",
r);
2880 msg.lParam = 0x10001;
2882 ok(0x8d ==
r,
"expected 0x8d, got 0x%x\n",
r);
2887 ok(1 ==
r,
"expected 1, got %d\n",
r);
2892 ok(1 ==
r,
"expected 1, got %d\n",
r);
2897 ok(1 ==
r,
"expected 1, got %d\n",
r);
2906 ok(1 ==
r,
"expected 1, got %d\n",
r);
2916 static const WCHAR str1W[] = {
'1',
'1',
'1',
'1',
'+',
'1',
'1',
'1',
'1',
'+',
'1',
'1',
'1',
'1',
'#',0};
2917 static const WCHAR str2W[] = {
'2',
'2',
'2',
'2',
'-',
'2',
'2',
'2',
'2',
'-',
'2',
'2',
'2',
'2',
'-',
'2',
'2',
'2',
'2',
'#',0};
2918 static const char str0[] =
"untouched";
2919 static const char str1[] =
"1111+1111+1111#";
2920 static const char str1_1[] =
"2111+1111+1111#";
2921 static const char str2[] =
"2222-2222-2222-2222#";
2922 static const char str3[] =
"3333*3333*3333*3333*3333#";
2932 trace(
"EDIT: EM_GETHANDLE\n");
2939 ok(hmem ==
NULL,
"got %p (expected NULL)\n", hmem);
2954 "got %d and \"%s\" (expected %d and \"%s\")\n",
r,
current,
lstrlenA(str1), str1);
2957 ok(hmem !=
NULL,
"got %p (expected != NULL)\n", hmem);
2975 "Unexpected retval %d and text \"%s\" (expected %d and \"%s\")\n",
r,
current,
lstrlenA(str1), str1);
2989 "Unexpected retval %d and text \"%s\" (expected %d and \"%s\")\n",
r,
current,
lstrlenA(str1_1), str1_1);
2993 ok(
r,
"Failed to set text.\n");
3000 ok(
r,
"Failed to replace selection.\n");
3008 ok(halloc !=
NULL,
"got %p (expected != NULL)\n", halloc);
3019 ok(hmem2 !=
NULL,
"got %p (expected != NULL)\n", hmem2);
3029 "got %d and \"%s\" (expected %d and \"%s\")\n",
r,
current,
lstrlenA(str2), str2);
3039 "got %d and \"%s\" (expected %d and \"%s\")\n",
r,
current,
lstrlenA(str3), str3);
3059 ok(hmem2 == hmem,
"got %p (expected %p)\n", hmem2, hmem);
3069 static const char *
str =
"this is a simple text";
3070 static const char *str2 =
"first line\r\nsecond line";
3081 ok(hmem !=
NULL,
"got %p (expected != NULL)\n", hmem);
3092 ok(hmem_ret == hmem,
"expected %p, got %p\n", hmem, hmem_ret);
3104 ok(hmem !=
NULL,
"got %p (expected != NULL)\n", hmem);
3115 ok(hmem_ret == hmem,
"expected %p, got %p\n", hmem, hmem_ret);
3146 static const WCHAR strW[] = {
't',
'e',
'x',
't',0};
3147 static const char *
str =
"text";
3168 memset(buffW, 0,
sizeof(buffW));
3174 memset(buffW, 0,
sizeof(buffW));
3201 ok(
ret == 1,
"Unexpected return value %ld.\n",
ret);
3207 ok(
ret == 1,
"Unexpected return value %ld.\n",
ret);
3240 static WCHAR getcuetestW[5] = {
'T',0};
3241 static const WCHAR testcmp1W[] = {
'T',
'e',
's',
't',0};
3242 static const WCHAR testcmp2W[] = {
'T',
'e',
's',0};
3250 win_skip(
"skipping for Win XP and 2003 Server.\n");
3254 ok(
lstrcmpW(getcuetestW,
emptyW) == 0,
"First char is %c\n", getcuetestW[0]);
3255 ok(
ret ==
FALSE,
"EM_GETCUEBANNER should have returned FALSE.\n");
3260 ok(
ret ==
FALSE,
"EM_GETCUEBANNER should have returned FALSE.\n");
3263 ok(
ret ==
FALSE,
"EM_GETCUEBANNER should have returned FALSE.\n");
3266 ok(
ret ==
FALSE,
"EM_SETCUEBANNER should have returned FALSE.\n");
3269 ok(
ret ==
FALSE,
"EM_GETCUEBANNER should have returned FALSE.\n");
3273 ok(
ret ==
TRUE,
"EM_SETCUEBANNER should have returned TRUE.\n");
3276 ok(
ret ==
TRUE,
"EM_GETCUEBANNER should have returned TRUE.\n");
3279 ok(
ret ==
TRUE,
"EM_GETCUEBANNER should have returned TRUE.\n");
3280 ok(
lstrcmpW(getcuetestW, testcmp1W) == 0,
"EM_GETCUEBANNER returned string %s.\n",
wine_dbgstr_w(getcuetestW));
3283 ok(
ret ==
TRUE,
"EM_SETCUEBANNER should have returned TRUE.\n");
3286 ok(
ret ==
TRUE,
"EM_GETCUEBANNER should have returned TRUE.\n");
3291 ok(
ret ==
TRUE,
"EM_SETCUEBANNER should have returned TRUE.\n");
3294 ok(
ret ==
TRUE,
"EM_GETCUEBANNER should have returned TRUE.\n");
3295 ok(
lstrcmpW(getcuetestW, testcmp1W) == 0,
"EM_GETCUEBANNER returned string %s.\n",
wine_dbgstr_w(getcuetestW));
3298 ok(
lstrcmpW(getcuetestW, testcmp2W) == 0,
"EM_GETCUEBANNER returned string %s.\n",
wine_dbgstr_w(getcuetestW));
3330 ok(
hwnd !=
NULL,
"Failed to create Edit control.\n");
3366 ok(
b,
"Failed to register test classes.\n");
int strcmp(const char *String1, const char *String2)
ACPI_SIZE strlen(const char *String)
char * strcpy(char *DstString, const char *SrcString)
static const char * wine_dbgstr_rect(const RECT *prc)
static void init_msg_sequences(struct msg_sequence **seq, int n)
static void flush_sequences(struct msg_sequence **seq, int n)
static WCHAR unknown[MAX_STRING_RESOURCE_LEN]
#define GetProcAddress(x, y)
HMODULE WINAPI DECLSPEC_HOTPATCH GetModuleHandleA(LPCSTR lpModuleName)
static unsigned char buff[32768]
GLuint GLuint GLsizei GLenum type
GLdouble GLdouble GLdouble r
GLint GLint GLsizei width
GLsizei GLenum const GLvoid GLuint GLsizei GLfloat * metrics
GLboolean GLboolean GLboolean b
GLenum GLuint GLenum GLsizei const GLchar * buf
GLuint GLsizei GLsizei * length
GLubyte GLubyte GLubyte GLubyte w
GLfloat GLfloat GLfloat GLfloat h
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
LPVOID NTAPI GlobalLock(HGLOBAL hMem)
BOOL NTAPI GlobalUnlock(HGLOBAL hMem)
HLOCAL NTAPI LocalAlloc(UINT uFlags, SIZE_T dwBytes)
LPVOID NTAPI LocalLock(HLOCAL hMem)
BOOL NTAPI LocalUnlock(HLOCAL hMem)
HGLOBAL NTAPI GlobalAlloc(UINT uFlags, SIZE_T dwBytes)
HLOCAL NTAPI LocalFree(HLOCAL hMem)
static const WCHAR emptyW[]
LPSTR WINAPI lstrcpyA(LPSTR lpString1, LPCSTR lpString2)
int WINAPI lstrcmpW(LPCWSTR lpString1, LPCWSTR lpString2)
int WINAPI lstrcmpA(LPCSTR lpString1, LPCSTR lpString2)
int WINAPI lstrlenA(LPCSTR lpString)
struct task_struct * current
static struct dialog_mode_messages dm_messages
static LRESULT CALLBACK ET2_WndProc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
static void test_edit_control_limittext(void)
static void test_edit_dialog(void)
static INT_PTR CALLBACK child_edit_wmkeydown_proc(HWND hdlg, UINT msg, WPARAM wparam, LPARAM lparam)
static HWND create_editcontrol(DWORD style, DWORD exstyle)
static const char szEditTest2Class[]
static HWND create_child_editcontrol(DWORD style, DWORD exstyle)
static LRESULT CALLBACK dialog_mode_wnd_proc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
static void test_margins_usefontinfo(UINT charset)
static void test_paste(void)
static struct context_menu_messages menu_messages
static void zero_notify(void)
static HWND create_editcontrolW(DWORD style, DWORD exstyle)
#define check_pos(hwEdit, set_height, test_top, test_height, test_left)
static void zero_dm_messages(void)
static void test_edit_control_3(void)
static struct edit_notify notifications
static void test_EM_GETLINE(void)
static void UnregisterWindowClasses(void)
static LRESULT CALLBACK child_edit_menu_proc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
static LRESULT CALLBACK edit4_wnd_procA(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
static void test_multi_edit_dialog(void)
static void test_wantreturn_edit_dialog(void)
static DWORD get_cjk_font_margins(HDC hdc)
static BOOL got_wm_capturechanged
static void test_edit_control_5(void)
static void test_margins_font_change(void)
static void test_edit_control_6(void)
static void test_contextmenu(void)
static void ET2_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)
static INT_PTR CALLBACK edit_wantreturn_dialog_proc(HWND hdlg, UINT msg, WPARAM wparam, LPARAM lparam)
static LRESULT CALLBACK edit3_wnd_procA(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
static void test_margins_default(const char *facename, UINT charset)
static BOOL got_en_setfocus
static void test_char_from_pos(void)
static void set_client_height(HWND Wnd, unsigned Height)
static void test_dialogmode(void)
static const char szEditTextPositionClass[]
static struct msg_sequence * sequences[NUM_MSG_SEQUENCES]
static void test_wordbreak_proc(void)
static void test_edit_control_scroll(void)
static void destroy_child_editcontrol(HWND hwndEdit)
static void test_singleline_wantreturn_edit_dialog(void)
static void test_espassword(void)
static LRESULT CALLBACK parent_wnd_proc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
static LRESULT CALLBACK edit_subclass_proc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
static const char szEditTest4Class[]
static void test_cue_banner(void)
static INT CALLBACK find_font_proc(const LOGFONTA *elf, const TEXTMETRICA *ntm, DWORD type, LPARAM lParam)
#define ID_EDITTESTDBUTTON
static const char szEditTest3Class[]
static void test_child_edit_wmkeydown(void)
static LONG get_edit_style(HWND hwnd)
static void test_edit_control_1(void)
#define test_notify(enchange, enmaxtext, enupdate)
static INT_PTR CALLBACK multi_edit_dialog_proc(HWND hdlg, UINT msg, WPARAM wparam, LPARAM lparam)
static void test_change_focus(void)
static int CALLBACK test_wordbreak_procA(char *text, int current, int length, int code)
static const struct message setfocus_combined_seq[]
static void test_undo(void)
static void test_margins(void)
static INT_PTR CALLBACK edit_singleline_dialog_proc(HWND hdlg, UINT msg, WPARAM wparam, LPARAM lparam)
static void test_enter(void)
static void ET2_check_change(void)
static BOOL is_font_installed(const char *name)
static void test_EM_GETHANDLE(void)
static void test_text_position_style(DWORD style)
static int child_edit_wmkeydown_num_messages
static void test_text_position(void)
static BOOL register_classes(void)
static INT_PTR CALLBACK edit_dialog_proc(HWND hdlg, UINT msg, WPARAM wparam, LPARAM lparam)
static const struct message killfocus_combined_seq[]
static INT get_cjk_fontinfo_margin(INT width, INT side_bearing)
#define test_dm_messages(wmcommand, wmclose, wmgetdefid, wmnextdlgctl)
static void test_fontsize(void)
static void test_edit_control_2(void)
static void test_tab(void)
static CRYPT_DATA_BLOB b3[]
static CRYPT_DATA_BLOB b2[]
static UINT UINT LPWORD LPABC abc
static DWORD *static HFONT(WINAPI *pCreateFontIndirectExA)(const ENUMLOGFONTEXDVA *)
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
static const WCHAR testtextW[]
#define WS_OVERLAPPEDWINDOW
CHAR lfFaceName[LF_FACESIZE]
TW_UINT32 TW_UINT16 TW_UINT16 MSG
_In_ HFONT _Out_ PUINT Height
static BOOL load_v6_module(ULONG_PTR *pcookie, HANDLE *hCtx)
static void unload_v6_module(ULONG_PTR cookie, HANDLE hCtx)
int WINAPI GetWindowTextA(HWND hWnd, LPSTR lpString, int nMaxCount)
DWORD WINAPI GetLastError(void)
HGDIOBJ WINAPI GetStockObject(_In_ int)
int WINAPI GetTextCharsetInfo(_In_ HDC, _Out_opt_ LPFONTSIGNATURE, _In_ DWORD)
int WINAPI GetDeviceCaps(_In_opt_ HDC, _In_ int)
HFONT WINAPI CreateFontIndirectA(_In_ const LOGFONTA *)
LONG WINAPI GdiGetCharDimensions(HDC, LPTEXTMETRICW, LONG *)
HGDIOBJ WINAPI SelectObject(_In_ HDC, _In_ HGDIOBJ)
int WINAPI EnumFontFamiliesA(_In_ HDC, _In_opt_ LPCSTR, _In_ FONTENUMPROCA, _In_ LPARAM)
#define CHINESEBIG5_CHARSET
DWORD WINAPI GdiGetCodePage(HDC)
BOOL WINAPI GetTextMetricsA(_In_ HDC, _Out_ LPTEXTMETRICA)
#define EASTEUROPE_CHARSET
BOOL WINAPI GetCharABCWidthsW(_In_ HDC hdc, _In_ UINT wFirst, _In_ UINT wLast, _Out_writes_(wLast - wFirst+1) LPABC lpABC)
HWND WINAPI GetFocus(void)
HWND WINAPI SetCapture(_In_ HWND hWnd)
int WINAPI ReleaseDC(_In_opt_ HWND, _In_ HDC)
LRESULT WINAPI DispatchMessageA(_In_ const MSG *)
BOOL WINAPI EndMenu(void)
#define SetWindowLongPtrA
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)
#define EM_GETWORDBREAKPROC
BOOL WINAPI ShowWindow(_In_ HWND, _In_ int)
BOOL WINAPI UnregisterClassA(_In_ LPCSTR, HINSTANCE)
int(CALLBACK * EDITWORDBREAKPROCA)(LPSTR, int, int, int)
LONG WINAPI GetWindowLongA(_In_ HWND, _In_ int)
BOOL WINAPI AdjustWindowRect(_Inout_ LPRECT, _In_ DWORD, _In_ BOOL)
LRESULT WINAPI DefWindowProcA(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
#define WM_CAPTURECHANGED
#define CreateWindowA(a, b, c, d, e, f, g, h, i, j, k)
BOOL WINAPI GetWindowRect(_In_ HWND, _Out_ LPRECT)
struct tagMENUITEMINFOA MENUITEMINFOA
BOOL WINAPI SetWindowPos(_In_ HWND, _In_opt_ HWND, _In_ int, _In_ int, _In_ int, _In_ int, _In_ UINT)
HANDLE WINAPI SetClipboardData(_In_ UINT, _In_opt_ HANDLE)
#define WM_DWMNCRENDERINGCHANGED
BOOL WINAPI CloseClipboard(void)
BOOL WINAPI GetCursorPos(_Out_ LPPOINT)
LRESULT WINAPI SendMessageA(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
BOOL WINAPI IsRectEmpty(_In_ LPCRECT)
#define GetWindowLongPtrA
BOOL WINAPI OpenClipboard(_In_opt_ HWND)
BOOL WINAPI SetCursorPos(_In_ int, _In_ int)
HWND WINAPI GetDlgItem(_In_opt_ HWND, _In_ int)
#define WM_IME_SETCONTEXT
BOOL WINAPI IsWindowUnicode(_In_ HWND)
BOOL WINAPI GetClientRect(_In_ HWND, _Out_ LPRECT)
ATOM WINAPI RegisterClassA(_In_ CONST WNDCLASSA *)
HWND WINAPI SetFocus(_In_opt_ HWND)
HWND WINAPI CreateWindowExW(_In_ DWORD dwExStyle, _In_opt_ LPCWSTR lpClassName, _In_opt_ LPCWSTR lpWindowName, _In_ DWORD dwStyle, _In_ int X, _In_ int Y, _In_ int nWidth, _In_ int nHeight, _In_opt_ HWND hWndParent, _In_opt_ HMENU hMenu, _In_opt_ HINSTANCE hInstance, _In_opt_ LPVOID lpParam)
BOOL WINAPI EmptyClipboard(void)
#define EM_SETWORDBREAKPROC
BOOL WINAPI GetCaretPos(_Out_ LPPOINT)
HDC WINAPI GetDC(_In_opt_ HWND)
HWND WINAPI GetParent(_In_ HWND)
BOOL WINAPI PeekMessageA(_Out_ LPMSG, _In_opt_ HWND, _In_ UINT, _In_ UINT, _In_ UINT)
BOOL WINAPI GetMenuItemInfoA(_In_ HMENU, _In_ UINT, _In_ BOOL, _Inout_ LPMENUITEMINFOA)
BOOL WINAPI SetCaretPos(_In_ int, _In_ int)
LRESULT(CALLBACK * WNDPROC)(HWND, UINT, WPARAM, LPARAM)
LRESULT WINAPI CallWindowProcW(_In_ WNDPROC, _In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
BOOL WINAPI DestroyWindow(_In_ HWND)
BOOL WINAPI GetMenuBarInfo(_In_ HWND, _In_ LONG, _In_ LONG, _Inout_ PMENUBARINFO)
BOOL WINAPI PostMessageA(_In_opt_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
BOOL WINAPI EqualRect(_In_ LPCRECT, _In_ LPCRECT)
int WINAPI GetSystemMetrics(_In_ int)
LRESULT WINAPI CallWindowProcA(_In_ WNDPROC, _In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
INT_PTR WINAPI DialogBoxParamA(_In_opt_ HINSTANCE, _In_ LPCSTR, _In_opt_ HWND, _In_opt_ DLGPROC, _In_ LPARAM)
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
HCURSOR WINAPI LoadCursorA(_In_opt_ HINSTANCE, _In_ LPCSTR)
BOOL WINAPI SetRect(_Out_ LPRECT, _In_ int, _In_ int, _In_ int, _In_ int)
BOOL WINAPI EndDialog(_In_ HWND, _In_ INT_PTR)