mirror of
https://github.com/reactos/reactos.git
synced 2025-08-06 13:02:59 +00:00
[USER32_WINETEST] Sync with Wine Staging 4.18 except win.c (PR #1980). CORE-16441
This commit is contained in:
parent
87801a65f7
commit
7a62c32bcc
22 changed files with 4140 additions and 911 deletions
|
@ -117,6 +117,8 @@ static void ClassTest(HINSTANCE hInstance, BOOL global)
|
|||
return;
|
||||
ok(classatom, "failed to register class\n");
|
||||
|
||||
ok(GetClipboardFormatNameW(classatom, str, ARRAY_SIZE(str)) != 0, "atom not found\n");
|
||||
|
||||
ok(!RegisterClassW (&cls),
|
||||
"RegisterClass of the same class should fail for the second time\n");
|
||||
|
||||
|
@ -171,7 +173,7 @@ static void ClassTest(HINSTANCE hInstance, BOOL global)
|
|||
}
|
||||
|
||||
/* check GetClassName */
|
||||
i = GetClassNameW(hTestWnd, str, sizeof(str)/sizeof(str[0]));
|
||||
i = GetClassNameW(hTestWnd, str, ARRAY_SIZE(str));
|
||||
ok(i == lstrlenW(className),
|
||||
"GetClassName returned incorrect length\n");
|
||||
ok(!lstrcmpW(className,str),
|
||||
|
@ -232,6 +234,8 @@ static void ClassTest(HINSTANCE hInstance, BOOL global)
|
|||
ok(UnregisterClassW(className, hInstance),
|
||||
"UnregisterClass() failed\n");
|
||||
|
||||
ok(GetClipboardFormatNameW(classatom, str, ARRAY_SIZE(str)) == 0,
|
||||
"atom still found\n");
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -647,7 +651,6 @@ static void test_builtinproc(void)
|
|||
"ScrollBar",
|
||||
"#32770", /* dialog */
|
||||
};
|
||||
static const int NUM_NORMAL_CLASSES = (sizeof(NORMAL_CLASSES)/sizeof(NORMAL_CLASSES[0]));
|
||||
static const char classA[] = "deftest";
|
||||
static const WCHAR classW[] = {'d','e','f','t','e','s','t',0};
|
||||
WCHAR unistring[] = {0x142, 0x40e, 0x3b4, 0}; /* a string that would be destroyed by a W->A->W conversion */
|
||||
|
@ -658,7 +661,7 @@ static void test_builtinproc(void)
|
|||
WCHAR buf[128];
|
||||
ATOM atom;
|
||||
HWND hwnd;
|
||||
int i;
|
||||
unsigned int i;
|
||||
|
||||
pDefWindowProcA = (void *)GetProcAddress(GetModuleHandleA("user32.dll"), "DefWindowProcA");
|
||||
pDefWindowProcW = (void *)GetProcAddress(GetModuleHandleA("user32.dll"), "DefWindowProcW");
|
||||
|
@ -728,7 +731,7 @@ static void test_builtinproc(void)
|
|||
ok(IsWindowUnicode(hwnd) ||
|
||||
broken(!IsWindowUnicode(hwnd)) /* Windows 8 and 10 */,
|
||||
"Windows should be Unicode\n");
|
||||
SendMessageW(hwnd, WM_GETTEXT, sizeof(buf) / sizeof(buf[0]), (LPARAM)buf);
|
||||
SendMessageW(hwnd, WM_GETTEXT, ARRAY_SIZE(buf), (LPARAM)buf);
|
||||
if (IsWindowUnicode(hwnd))
|
||||
ok(memcmp(buf, unistring, sizeof(unistring)) == 0, "WM_GETTEXT invalid return\n");
|
||||
else
|
||||
|
@ -773,7 +776,7 @@ static void test_builtinproc(void)
|
|||
|
||||
/* For most of the builtin controls both GetWindowLongPtrA and W returns a pointer that is executed directly
|
||||
* by CallWindowProcA/W */
|
||||
for (i = 0; i < NUM_NORMAL_CLASSES; i++)
|
||||
for (i = 0; i < ARRAY_SIZE(NORMAL_CLASSES); i++)
|
||||
{
|
||||
WNDPROC procA, procW;
|
||||
hwnd = CreateWindowExA(0, NORMAL_CLASSES[i], classA, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 680, 260,
|
||||
|
@ -880,7 +883,7 @@ static void test_builtinproc(void)
|
|||
|
||||
static LRESULT WINAPI TestDlgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
return DefWindowProcA(hWnd, uMsg, wParam, lParam);
|
||||
return DefDlgProcA(hWnd, uMsg, wParam, lParam);
|
||||
}
|
||||
|
||||
static BOOL RegisterTestDialog(HINSTANCE hInstance)
|
||||
|
@ -942,7 +945,7 @@ static const struct
|
|||
static void test_extra_values(void)
|
||||
{
|
||||
int i;
|
||||
for(i=0; i< sizeof(extra_values)/sizeof(extra_values[0]); i++)
|
||||
for(i = 0; i < ARRAY_SIZE(extra_values); i++)
|
||||
{
|
||||
WNDCLASSEXA wcx;
|
||||
BOOL ret = GetClassInfoExA(NULL,extra_values[i].name,&wcx);
|
||||
|
@ -1000,6 +1003,7 @@ if (0) { /* crashes under XP */
|
|||
SetLastError(0xdeadbeef);
|
||||
ret = GetClassInfoExA(0, "static", &wcx);
|
||||
ok(ret, "GetClassInfoExA() error %d\n", GetLastError());
|
||||
ok(GetLastError() == 0xdeadbeef, "Unexpected error code %d\n", GetLastError());
|
||||
ok(wcx.cbSize == 0, "expected 0, got %u\n", wcx.cbSize);
|
||||
ok(wcx.lpfnWndProc != NULL, "got null proc\n");
|
||||
|
||||
|
@ -1135,7 +1139,7 @@ static void test_comctl32_class( const char *name )
|
|||
|
||||
name++;
|
||||
|
||||
GetTempPathA(sizeof(path)/sizeof(path[0]), path);
|
||||
GetTempPathA(ARRAY_SIZE(path), path);
|
||||
strcat(path, "comctl32_class.manifest");
|
||||
|
||||
create_manifest_file(path, comctl32_manifest);
|
||||
|
@ -1163,7 +1167,7 @@ static void test_comctl32_class( const char *name )
|
|||
if (!ret)
|
||||
goto skiptest;
|
||||
|
||||
MultiByteToWideChar( CP_ACP, 0, name, -1, nameW, sizeof(nameW)/sizeof(WCHAR) );
|
||||
MultiByteToWideChar( CP_ACP, 0, name, -1, nameW, ARRAY_SIZE(nameW));
|
||||
ret = GetClassInfoW( 0, nameW, &wcW );
|
||||
ok( ret, "GetClassInfoW failed for %s\n", name );
|
||||
module = GetModuleHandleA( "comctl32" );
|
||||
|
@ -1189,7 +1193,7 @@ static void test_comctl32_class( const char *name )
|
|||
ret = GetClassInfoA( 0, name, &wcA );
|
||||
ok( ret || broken(!ret) /* <= winxp */, "GetClassInfoA failed for %s\n", name );
|
||||
if (!ret) return;
|
||||
MultiByteToWideChar( CP_ACP, 0, name, -1, nameW, sizeof(nameW)/sizeof(WCHAR) );
|
||||
MultiByteToWideChar( CP_ACP, 0, name, -1, nameW, ARRAY_SIZE(nameW));
|
||||
ret = GetClassInfoW( 0, nameW, &wcW );
|
||||
ok( ret, "GetClassInfoW failed for %s\n", name );
|
||||
module = GetModuleHandleA( "comctl32" );
|
||||
|
@ -1245,7 +1249,7 @@ static void test_comctl32_classes(void)
|
|||
};
|
||||
|
||||
winetest_get_mainargs( &argv );
|
||||
for (i = 0; i < sizeof(classes) / sizeof(classes[0]); i++)
|
||||
for (i = 0; i < ARRAY_SIZE(classes); i++)
|
||||
{
|
||||
memset( &startup, 0, sizeof(startup) );
|
||||
startup.cb = sizeof( startup );
|
||||
|
@ -1321,10 +1325,10 @@ static void test_actctx_classes(void)
|
|||
ATOM class;
|
||||
HINSTANCE hinst;
|
||||
char buff[64];
|
||||
HWND hwnd;
|
||||
HWND hwnd, hwnd2;
|
||||
char path[MAX_PATH];
|
||||
|
||||
GetTempPathA(sizeof(path)/sizeof(path[0]), path);
|
||||
GetTempPathA(ARRAY_SIZE(path), path);
|
||||
strcat(path, "actctx_classes.manifest");
|
||||
|
||||
create_manifest_file(path, main_manifest);
|
||||
|
@ -1355,6 +1359,12 @@ static void test_actctx_classes(void)
|
|||
hwnd = CreateWindowExA(0, testclass, "test", 0, 0, 0, 0, 0, 0, 0, hinst, 0);
|
||||
ok(hwnd != NULL, "Failed to create a window.\n");
|
||||
|
||||
hwnd2 = FindWindowExA(NULL, NULL, "MyTestClass", NULL);
|
||||
ok(hwnd2 == hwnd, "Failed to find test window.\n");
|
||||
|
||||
hwnd2 = FindWindowExA(NULL, NULL, "4.3.2.1!MyTestClass", NULL);
|
||||
ok(hwnd2 == NULL, "Unexpected find result %p.\n", hwnd2);
|
||||
|
||||
ret = GetClassNameA(hwnd, buff, sizeof(buff));
|
||||
ok(ret, "Failed to get class name.\n");
|
||||
ok(!strcmp(buff, testclass), "Unexpected class name.\n");
|
||||
|
@ -1380,6 +1390,17 @@ static void test_actctx_classes(void)
|
|||
|
||||
DestroyWindow(hwnd);
|
||||
|
||||
hwnd = CreateWindowExA(0, "4.3.2.1!MyTestClass", "test", 0, 0, 0, 0, 0, 0, 0, hinst, 0);
|
||||
ok(hwnd != NULL, "Failed to create a window.\n");
|
||||
|
||||
hwnd2 = FindWindowExA(NULL, NULL, "MyTestClass", NULL);
|
||||
ok(hwnd2 == hwnd, "Failed to find test window.\n");
|
||||
|
||||
hwnd2 = FindWindowExA(NULL, NULL, "4.3.2.1!MyTestClass", NULL);
|
||||
ok(hwnd2 == NULL, "Unexpected find result %p.\n", hwnd2);
|
||||
|
||||
DestroyWindow(hwnd);
|
||||
|
||||
ret = UnregisterClassA("MyTestClass", hinst);
|
||||
ok(!ret, "Unexpected ret value %d.\n", ret);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue