58 (sig.
lsUsb[3] & 0x08000000) != 0);
69 {
"TestSomeText", 1, 1},
70 {
"TestSomeText\r", 1, 1},
71 {
"TestSomeText\rSomeMoreText\r", 2, 1, 1},
72 {
"TestSomeText\n\nTestSomeText", 3, 3},
73 {
"TestSomeText\r\r\nTestSomeText", 2, 2},
74 {
"TestSomeText\r\r\n\rTestSomeText", 3, 2, 2},
75 {
"TestSomeText\r\n\r\r\n\rTestSomeText", 4, 3, 3},
76 {
"TestSomeText\r\n", 2, 2},
77 {
"TestSomeText\r\nSomeMoreText\r\n", 3, 3},
78 {
"TestSomeText\r\n\r\nTestSomeText", 3, 3},
79 {
"TestSomeText TestSomeText", 1, 1},
80 {
"TestSomeText \r\nTestSomeText", 2, 2},
81 {
"TestSomeText\r\n \r\nTestSomeText", 3, 3},
82 {
"TestSomeText\n", 2, 2},
83 {
"TestSomeText\r\r\r", 3, 1, 1},
84 {
"TestSomeText\r\r\rSomeMoreText", 4, 1, 1}
109 char buf[1024] = {0};
113 ok (
result == 1,
"[%d] WM_SETTEXT returned %ld instead of 1\n",
i,
result);
116 "[%d] WM_GETTEXT returned %ld instead of expected %u\n",
120 "[%d] WM_SETTEXT round trip: strcmp = %ld\n",
i,
result);
123 broken(testitems[
i].lines_broken &&
result == testitems[
i].lines_broken),
124 "[%d] EM_GETLINECOUNT returned %ld, expected %d\n",
i,
result, testitems[
i].
lines);
133 static const char text1[] =
"aaa\r\nbbb\r\nccc\r\nddd\r\neee";
134 static const char text2[] =
"aaa\r\nbbb\r\nccc\r\nddd\r\neee\r\n";
135 static const char text3[] =
"abcdef\x8e\xf0";
142 "WM_GETTEXTLENGTH reports incorrect length %d, expected %d\n",
148 "WM_GETTEXTLENGTH reports incorrect length %d, expected %d\n",
153 skip(
"Skip multibyte character tests on non-Japanese platform\n");
158 ok(
result == 8,
"WM_GETTEXTLENGTH returned %d, expected 8\n",
result);
169 const char**
str = (
const char**)dwCookie;
190 const char * streamText0 =
"{\\rtf1 TestSomeText}";
191 const char * streamText0a =
"{\\rtf1 TestSomeText\\par}";
192 const char * streamText0b =
"{\\rtf1 TestSomeText\\par\\par}";
194 const char * streamText1 =
195 "{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang12298{\\fonttbl{\\f0\\fswiss\\fprq2\\fcharset0 System;}}\r\n"
196 "\\viewkind4\\uc1\\pard\\f0\\fs17 TestSomeText\\par\r\n"
200 const char * streamText2 =
201 "{{\\colortbl;\\red0\\green255\\blue102;\\red255\\green255\\blue255;"
202 "\\red170\\green255\\blue255;\\red255\\green238\\blue0;\\red51\\green255"
203 "\\blue221;\\red238\\green238\\blue238;}\\tx0 \\tx424 \\tx848 \\tx1272 "
204 "\\tx1696 \\tx2120 \\tx2544 \\tx2968 \\tx3392 \\tx3816 \\tx4240 \\tx4664 "
205 "\\tx5088 \\tx5512 \\tx5936 \\tx6360 \\tx6784 \\tx7208 \\tx7632 \\tx8056 "
206 "\\tx8480 \\tx8904 \\tx9328 \\tx9752 \\tx10176 \\tx10600 \\tx11024 "
207 "\\tx11448 \\tx11872 \\tx12296 \\tx12720 \\tx13144 \\cf2 RichEdit1\\line }";
209 const char * streamText3 =
"RichEdit1";
220 "EM_STREAMIN: Test 0 returned %ld, expected 12\n",
result);
223 "EM_STREAMIN: Test 0 set wrong text: Result: %s\n",
buffer);
224 ok(
es.dwError == 0,
"EM_STREAMIN: Test 0 set error %d, expected %d\n",
es.dwError, 0);
235 "EM_STREAMIN: Test 0-a returned %ld, expected 12\n",
result);
238 "EM_STREAMIN: Test 0-a set wrong text: Result: %s\n",
buffer);
239 ok(
es.dwError == 0,
"EM_STREAMIN: Test 0 set error %d, expected %d\n",
es.dwError, 0);
250 "EM_STREAMIN: Test 0-b returned %ld, expected 14\n",
result);
253 "EM_STREAMIN: Test 0-b set wrong text: Result: %s\n",
buffer);
254 ok(
es.dwError == 0,
"EM_STREAMIN: Test 0 set error %d, expected %d\n",
es.dwError, 0);
264 "EM_STREAMIN: Test 1 returned %ld, expected 12\n",
result);
267 "EM_STREAMIN: Test 1 set wrong text: Result: %s\n",
buffer);
268 ok(
es.dwError == 0,
"EM_STREAMIN: Test 0 set error %d, expected %d\n",
es.dwError, 0);
279 "EM_STREAMIN: Test 2 returned %ld, expected 9\n",
result);
284 "EM_STREAMIN: Test 2 set wrong text: Result: %s\n",
buffer);
286 ok(
es.dwError == 0,
"EM_STREAMIN: Test 0 set error %d, expected %d\n",
es.dwError, 0);
295 "EM_STREAMIN: Test 3 returned %ld, expected 0\n",
result);
297 "EM_STREAMIN: Test 3 set wrong text: Result: %s\n",
buffer);
298 ok(
es.dwError == -16,
"EM_STREAMIN: Test 0 set error %d, expected %d\n",
es.dwError, -16);
308 char**
str = (
char**)dwCookie;
322 char buf[1024] = {0};
325 const char * TestItem1 =
"TestSomeText";
326 const char * TestItem2 =
"TestSomeText\r";
327 const char * TestItem3 =
"TestSomeText\r\n";
338 ok(
r == 12,
"streamed text length is %d, expecting 12\n",
r);
340 "streamed text different, got %s\n",
buf);
352 ok(
r == 13,
"streamed text length is %d, expecting 13\n",
r);
354 "streamed text different, got %s\n",
buf);
365 ok(
r == 14,
"streamed text length is %d, expecting 14\n",
r);
367 "streamed text different, got %s\n",
buf);
378 {0, 10,
"foo bar\r\n",
"foo bar\r\n"},
379 {1, 10,
"\r",
"\r\r\r\n"},
380 {2, 10,
"\r\r\n",
"bar\n"},
381 {3, 10,
"bar\n",
"\r\n"},
394 static const int nBuf = 1024;
395 char dest[1024], origdest[1024];
397 const char text[] =
"foo bar\r\n"
409 win_skip(
"Win9x, WinME and NT4 handle '\\r only' differently\n");
412 memset(origdest, 0xBB, nBuf);
415 int nCopied, expected_nCopied, expected_bytes_written;
421 if (broken_os &&
gl[
i].broken_text)
437 ok(nCopied == expected_nCopied,
"%d: %d!=%d\n",
i, nCopied,
440 if (
gl[
i].buffer_len == 0)
443 else if (
gl[
i].buffer_len == 1)
445 !
strncmp(
dest+2, origdest+2, nBuf-2),
"buffer_len=1\n");
449 "%d: expected_bytes_written=%d\n",
i, expected_bytes_written);
450 if (!
rtl || expected_bytes_written ==
gl[
i].buffer_len)
452 + expected_bytes_written, nBuf - expected_bytes_written),
453 "%d: expected_bytes_written=%d\n",
i, expected_bytes_written);
455 ok(
dest[expected_bytes_written] == 0 &&
456 !
strncmp(
dest + expected_bytes_written + 1, origdest
457 + expected_bytes_written + 1, nBuf - (expected_bytes_written + 1)),
458 "%d: expected_bytes_written=%d\n",
i, expected_bytes_written);
477 int offset_test[16][2] = {
502 win_skip(
"Win9x, WinME and NT4 don't handle '\\r only' correctly\n");
509 ok(
result == offset_test[
i][1],
"Length of line at offset %d is %ld, expected %d\n",
510 offset_test[
i][0],
result, offset_test[
i][1]);
515 skip(
"Skip multibyte character tests on non-Japanese platform\n");
522 static int offset_test1[3][3] = {
531 ok(
result == offset_test1[
i][1],
"Length of line at offset %d is %ld, expected %d\n",
532 offset_test1[
i][0],
result, offset_test1[
i][1]);
542 const char * text1 =
"foo bar\r\nfoo bar";
543 const char * text3 =
"foo bar\rfoo bar";
544 const char * expect1 =
"bar\r\nfoo";
545 const char *
expect2 =
"\nfoo";
546 const char * expect3 =
"bar\rfoo";
579 skip(
"Skip multibyte character tests on non-Japanese platform\n");
596 const char * text1 =
"foo bar\r\nfoo bar";
597 const char * text2 =
"foo bar\rfoo bar";
598 const char * expect1 =
"bar\r\nfoo";
599 const char *
expect2 =
"bar\rfoo";
619 skip(
"Skip multibyte character tests on non-Japanese platform\n");
632static const char haystack[] =
"WINEWine wineWine wine WineWine";
649 {0, -1,
"foo", 0, -1},
679 {20, 5,
"Wine", 0, -1},
698 {-20, 20,
"Wine",
FR_DOWN, -1},
699 {-20, 20,
"Wine",
FR_DOWN, -1},
700 {-15, -20,
"Wine",
FR_DOWN, -1},
701 {1<<12, 1<<13,
"Wine",
FR_DOWN, -1},
715 {0, -1,
"wineWine wine",
FR_DOWN, 0},
716 {0, -1,
"wineWine wine", 0, 0},
717 {0, -1,
"INEW", 0, 1},
718 {0, 31,
"INEW", 0, 1},
719 {4, -1,
"INEW", 0, 10},
732 memset(&ft, 0,
sizeof(ft));
737 ok(findloc ==
f->expected_loc,
738 "EM_FINDTEXT(%s,%d) '%s' in range(%d,%d), flags %08x, got start at %d, expected %d\n",
739 name,
id,
f->needle,
f->start,
f->end,
f->flags, findloc,
f->expected_loc);
746 int expected_end_loc;
748 memset(&ft, 0,
sizeof(ft));
754 ok(findloc ==
f->expected_loc,
755 "EM_FINDTEXTEX(%s,%d) '%s' in range(%d,%d), flags %08x, start at %d\n",
756 name,
id,
f->needle,
f->start,
f->end,
f->flags, findloc);
758 "EM_FINDTEXTEX(%s,%d) '%s' in range(%d,%d), flags %08x, start at %d, expected %d\n",
760 expected_end_loc = ((
f->expected_loc == -1) ? -1
761 :
f->expected_loc +
strlen(
f->needle));
764 "EM_FINDTEXTEX(%s,%d) '%s' in range(%d,%d), flags %08x, end at %d, expected %d\n",
807 int xpos_rtl_adjusted = 0;
808 static const char text[] =
"aa\n"
809 "this is a long line of text that should be longer than the "
819 for (
i = 0;
i < 50;
i++)
838 for (
i = 0;
i < 50;
i++)
842 ok(
result == 0,
"EM_POSFROMCHAR returned %ld, expected 0\n",
result);
845 ok(pl.y == 0,
"EM_POSFROMCHAR reports y=%d, expected 0\n", pl.y);
848 "EM_POSFROMCHAR reports x=%d, expected 1\n", pl.x);
850 xpos_rtl_adjusted = xpos + (
is_rtl() ? 7 : 0);
854 ok(pl.y > 0,
"EM_POSFROMCHAR reports y=%d, expected > 0\n", pl.y);
855 ok(pl.x == xpos,
"EM_POSFROMCHAR reports x=%d, expected %d\n", pl.x, xpos);
860 ok(pl.y ==
i *
height,
"EM_POSFROMCHAR reports y=%d, expected %d\n", pl.y,
i *
height);
861 ok(pl.x == xpos,
"EM_POSFROMCHAR reports x=%d, expected %d\n", pl.x, xpos);
867 ok(
result == 0,
"EM_POSFROMCHAR returned %ld, expected 0\n",
result);
868 ok(pl.
y == 50 *
height,
"EM_POSFROMCHAR reports y=%d, expected %d\n", pl.
y, 50 *
height);
869 ok(pl.
x == xpos,
"EM_POSFROMCHAR reports x=%d, expected %d\n", pl.
x, xpos);
873 ok(
result == 0,
"EM_POSFROMCHAR returned %ld, expected 0\n",
result);
874 ok(pl.
y == 50 *
height,
"EM_POSFROMCHAR reports y=%d, expected %d\n", pl.
y, 50 *
height);
876 ok(pl.
x == xpos_rtl_adjusted,
"EM_POSFROMCHAR reports x=%d, expected %d\n", pl.
x, xpos_rtl_adjusted);
881 for (
i = 0;
i < 50;
i++)
885 ok(
result == 0,
"EM_POSFROMCHAR returned %ld, expected 0\n",
result);
887 "EM_POSFROMCHAR reports y=%d, expected %d\n",
889 ok(pl.x == xpos,
"EM_POSFROMCHAR reports x=%d, expected %d\n", pl.x, xpos);
894 ok(
result == 0,
"EM_POSFROMCHAR returned %ld, expected 0\n",
result);
895 ok(pl.
y == (50 - 1) *
height,
"EM_POSFROMCHAR reports y=%d, expected %d\n", pl.
y, (50 - 1) *
height);
896 ok(pl.
x == xpos,
"EM_POSFROMCHAR reports x=%d, expected %d\n", pl.
x, xpos);
900 ok(
result == 0,
"EM_POSFROMCHAR returned %ld, expected 0\n",
result);
901 ok(pl.
y == (50 - 1) *
height,
"EM_POSFROMCHAR reports y=%d, expected %d\n", pl.
y, (50 - 1) *
height);
902 ok(pl.
x == xpos_rtl_adjusted,
"EM_POSFROMCHAR reports x=%d, expected %d\n", pl.
x, xpos_rtl_adjusted);
909 ok(
result == 0,
"EM_POSFROMCHAR returned %ld, expected 0\n",
result);
910 ok(pl.
y == 0,
"EM_POSFROMCHAR reports y=%d, expected 0\n", pl.
y);
913 "EM_POSFROMCHAR reports x=%d, expected 1\n", pl.
x);
918 ok(
result == 0,
"EM_POSFROMCHAR returned %ld, expected 0\n",
result);
919 ok(pl.
y == 0,
"EM_POSFROMCHAR reports y=%d, expected 0\n", pl.
y);
924 "EM_POSFROMCHAR reports x=%d, expected value less than %d\n", pl.
x, xpos);
933 const char *
text =
"Must be long enough to test line wrapping";
943 ok(
res,
"WM_SETTEXT failed.\n");
945 ok(
pos,
"pos=%d indicating no word wrap when it is expected.\n",
pos);
947 ok(
lines > 1,
"Line was expected to wrap (lines=%d).\n",
lines);
951 ok(
pos,
"pos=%d indicating no word wrap when it is expected.\n",
pos);
959 ok(
res,
"WM_SETTEXT failed.\n");
961 ok(
pos,
"pos=%d indicating no word wrap when it is expected.\n",
pos);
963 ok(
lines > 1,
"Line was expected to wrap (lines=%d).\n",
lines);
967 ok(
pos,
"pos=%d indicating no word wrap when it is expected.\n",
pos);
974 ok(
res,
"WM_SETTEXT failed.\n");
978 "pos=%d indicating word wrap when none is expected.\n",
pos);
980 ok(
lines == 1,
"Line was not expected to wrap (lines=%d).\n",
lines);
986 "pos=%d indicating word wrap when none is expected.\n",
pos);
988 ok(
lines == 1,
"Line was not expected to wrap (lines=%d).\n",
lines);
996 ok(
res,
"WM_SETTEXT failed.\n");
1000 "pos=%d indicating word wrap when none is expected.\n",
pos);
1002 ok(
lines == 1,
"Line was not expected to wrap (lines=%d).\n",
lines);
1008 "pos=%d indicating word wrap when none is expected.\n",
pos);
1010 ok(
lines == 1,
"Line was not expected to wrap (lines=%d).\n",
lines);
1014 ok(
res,
"EM_SETTARGETDEVICE failed (returned %d).\n",
res);
1018 "pos=%d indicating word wrap when none is expected.\n",
pos);
1020 ok(
lines == 1,
"Line was not expected to wrap (lines=%d).\n",
lines);
1023 ok(
res,
"EM_SETTARGETDEVICE failed (returned %d).\n",
res);
1025 ok(
pos,
"pos=%d indicating no word wrap when it is expected.\n",
pos);
1034 ok(
res,
"EM_REPLACESEL failed.\n");
1037 ok(reflines[0] > 1,
"Line was expected to wrap (%d lines).\n", reflines[0]);
1042 ok(reflines[1] == 1,
"Line wasn't expected to wrap (%d lines).\n", reflines[1]);
1046 ok(reflines[2] > 1,
"Line was expected to wrap (%d lines).\n", reflines[2]);
1058 ok(
res,
"EM_REPLACESEL failed.\n");
1061 ok(prevlines == reflines[0],
1062 "Line was expected to wrap (%d lines).\n", prevlines);
1069 "Expected no change in the number of lines\n");
1076 "Expected no change in the number of lines\n");
1098 "Incorrect initial options %x\n",
options);
1116 "ECO_AUTOVSCROLL isn't set.\n");
1122 "ES_AUTOVSCROLL isn't set.\n");
1143 while (*szChars !=
'\0') {
1146 ok(
ret == 0,
"WM_CHAR('%c') ret=%d\n", *szChars,
ret);
1170 static const struct {
1171 const char *initialtext;
1173 const char *expectedtext;
1174 } testenteritems[] = {
1175 {
"aaabbb\r\n", 3,
"aaa\r\nbbb\r\n"},
1176 {
"aaabbb\r\n", 6,
"aaabbb\r\n\r\n"},
1177 {
"aa\rabbb\r\n", 7,
"aa\rabbb\r\n\r\n"},
1178 {
"aa\rabbb\r\n", 3,
"aa\r\r\nabbb\r\n"},
1179 {
"aa\rabbb\r\n", 2,
"aa\r\n\rabbb\r\n"}
1182 char expectedbuf[1024];
1183 char resultbuf[1024];
1186 char buf[1024] = {0};
1195 ok (
result == 1,
"[%d] WM_SETTEXT returned %ld instead of 1\n",
i,
result);
1204 expected = testenteritems[
i].expectedtext;
1211 "[%d] WM_GETTEXT unexpected '%s' expected '%s'\n",
1212 i, resultbuf, expectedbuf);
1219 expected = testenteritems[
i].expectedtext;
1226 "[%d] EM_GETTEXTEX, GT_DEFAULT unexpected '%s', expected '%s'\n",
1227 i, resultbuf, expectedbuf);
1231 getText.codepage =
CP_ACP;
1234 expected = testenteritems[
i].expectedtext;
1241 "[%d] EM_GETTEXTEX, GT_USECRLF unexpected '%s', expected '%s'\n",
1242 i, resultbuf, expectedbuf);
1250 ok (
result == 1,
"[%d] WM_SETTEXT returned %ld instead of 1\n",
i,
result);
1259 ok (
result == 0,
"[%d] EM_GETTEXTEX, GT_DEFAULT unexpected '%s', expected '%s'\n",
i, resultbuf, expectedbuf);
1262 ok (
result == 1,
"[%d] WM_SETTEXT returned %ld instead of 1\n",
i,
result);
1271 ok (
result == 0,
"[%d] EM_GETTEXTEX, GT_DEFAULT unexpected '%s', expected '%s'\n",
i, resultbuf, expectedbuf);
1288 {5, 10, 10, 5, 10, 0, 0 },
1289 {15, 17, 17, 15, 17, 0, 0 },
1291 {0, 100, 19, 0, 19, 1, 0 },
1293 {-1, 1, 17, 17, 17, 1, 0 },
1295 {5, 5, 5, 5, 5, 0, 0 },
1297 {-1, 0, 5, 5, 5, 0, 0 },
1298 {-1, 17, 5, 5, 5, 0, 0 },
1299 {-1, 18, 5, 5, 5, 0, 0 },
1301 {-1, -1, 17, 17, 17, 0, 0 },
1302 {-4, -5, 17, 17, 17, 0, 0 },
1304 {0, -1, 19, 0, 19, 1, 0 },
1305 {17, -5, 19, 17, 19, 1, 0 },
1306 {18, -3, 19, 17, 19, 1, 1 },
1308 {15, 19, 19, 15, 19, 1, 0 },
1309 {19, 15, 19, 15, 19, 1, 0 },
1311 {17, 18, 17, 17, 17, 1, 1 },
1312 {17, 50, 19, 17, 19, 1, 0 },
1331 "EM_EXSETSEL(%d): expected (%d,%d) actual:(%d,%d)\n",
1350 skip(
"Skip multibyte character tests on non-Japanese platform\n");
1355#define MAX_BUF_LEN 1024
1365 todo_wine ok(!
strcmp(bufA,
"ef\x8e\xf0"),
"EM_GETSELTEXT return incorrect string\n");
1367 ok(cr.
cpMin == 4,
"Selection start incorrectly: %d expected 4\n", cr.
cpMin);
1368 ok(cr.
cpMax == 8,
"Selection end incorrectly: %d expected 8\n", cr.
cpMax);
1387 "EM_SETSEL(%d): expected (%d,%d) actual:(%d,%d)\n",
1393 char buffA[32] = {0};
1409 ok(buffA[0] == 0,
"selection text %s\n", buffA);
1412 skip(
"Skip multibyte character tests on non-Japanese platform\n");
1415 int sel_start, sel_end;
1424 todo_wine ok(!
strcmp(buffA,
"ef\x8e\xf0"),
"EM_GETSELTEXT return incorrect string\n");
1426 ok(sel_start == 4,
"Selection start incorrectly: %d expected 4\n", sel_start);
1427 ok(sel_end == 8,
"Selection end incorrectly: %d expected 8\n", sel_end);
1468 if (
getenv(
"WINETEST_RICHED32" )) {
int strcmp(const char *String1, const char *String2)
ACPI_SIZE strlen(const char *String)
int strncmp(const char *String1, const char *String2, ACPI_SIZE Count)
char * strcpy(char *DstString, const char *SrcString)
HINSTANCE WINAPI DECLSPEC_HOTPATCH LoadLibraryA(LPCSTR lpLibFileName)
INT WINAPI GetLocaleInfoA(LCID lcid, LCTYPE lctype, LPSTR buffer, INT len)
LANGID WINAPI GetUserDefaultLangID(void)
HRESULT WINAPI OleFlushClipboard(void)
GLint GLint GLsizei GLsizei height
GLdouble GLdouble GLdouble r
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
_Check_return_ char *__cdecl getenv(_In_z_ const char *_VarName)
int WINAPI lstrlenA(LPCSTR lpString)
#define memcpy(s1, s2, n)
#define sprintf(buf, format,...)
#define expect2(expected1, expected2, got1, got2)
static HMODULE MODULEINFO DWORD cb
#define todo_wine_if(is_todo)
static void simulate_typing_characters(HWND hwnd, const char *szChars)
static void test_EM_EXSETSEL(void)
static void test_EM_GETSELTEXT(void)
static void check_EM_SETSEL(HWND hwnd, const struct exsetsel_s *setsel, int id)
static HMODULE hmoduleRichEdit
static void format_test_result(char *target, const char *src)
static HWND new_richedit(HWND parent)
static void test_EM_GETLINE(void)
static void test_WM_GETTEXTLENGTH(void)
static DWORD CALLBACK test_EM_STREAMIN_esCallback(DWORD_PTR dwCookie, LPBYTE pbBuff, LONG cb, LONG *pcb)
static void run_tests_EM_FINDTEXT(HWND hwnd, const char *name, struct find_s *find, int num_tests, BOOL unicode)
static const struct exsetsel_s exsetsel_tests[]
static void test_EM_STREAMIN(void)
static void check_EM_EXSETSEL(HWND hwnd, const struct exsetsel_s *setsel, int id)
static void test_EM_STREAMOUT(void)
static void test_WM_SETTEXT(void)
static BOOL is_lang_japanese
static struct find_s find_tests2[]
static void test_EM_LINELENGTH(void)
static struct find_s find_tests[]
static void test_EM_SETSEL(void)
static void check_EM_FINDTEXT(HWND hwnd, const char *name, struct find_s *f, int id, BOOL unicode)
static void test_autoscroll(void)
static void check_EM_FINDTEXTEX(HWND hwnd, const char *name, struct find_s *f, int id, BOOL unicode)
static void test_word_wrap(void)
static void test_enter(void)
static DWORD CALLBACK test_WM_SETTEXT_esCallback(DWORD_PTR dwCookie, LPBYTE pbBuff, LONG cb, LONG *pcb)
static void test_EM_POSFROMCHAR(void)
static HWND new_window(LPCSTR lpClassName, DWORD dwStyle, HWND parent)
static const struct getline_s gl[]
static const char haystack[]
static void test_EM_GETTEXTRANGE(void)
static void test_EM_GETOPTIONS(void)
static const char haystack2[]
static struct find_s find_tests3[]
static void test_EM_FINDTEXT(void)
#define LOCALE_USER_DEFAULT
#define RICHEDIT_CLASS10A
#define EM_SETTARGETDEVICE
static int gl_text(adns_state ads, getline_ctx *src_io, const char *filename, int lno, char *buf, int buflen)
int expected_getsel_start
VOID WINAPI DECLSPEC_HOTPATCH Sleep(IN DWORD dwMilliseconds)
TW_UINT32 TW_UINT16 TW_UINT16 MSG
DWORD WINAPI GetLastError(void)
#define LOCALE_FONTSIGNATURE
LRESULT WINAPI DispatchMessageA(_In_ const MSG *)
BOOL WINAPI TranslateMessage(_In_ const MSG *)
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)
#define CreateWindowA(a, b, c, d, e, f, g, h, i, j, k)
LONG WINAPI SetWindowLongA(_In_ HWND, _In_ int, _In_ LONG)
LRESULT WINAPI SendMessageA(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
BOOL WINAPI PeekMessageA(_Out_ LPMSG, _In_opt_ HWND, _In_ UINT, _In_ UINT, _In_ UINT)
BOOL WINAPI IsWindowVisible(_In_ HWND)
BOOL WINAPI DestroyWindow(_In_ HWND)
BOOL WINAPI MoveWindow(_In_ HWND, _In_ int, _In_ int, _In_ int, _In_ int, _In_ BOOL)
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)