mirror of
https://github.com/reactos/reactos.git
synced 2025-08-03 18:45:46 +00:00
[User32_wineTest] - Sync to Wine 1.3.37.
svn path=/trunk/; revision=55209
This commit is contained in:
parent
75cfcb0115
commit
81ec63a850
16 changed files with 788 additions and 179 deletions
|
@ -20,7 +20,6 @@
|
|||
|
||||
//#define _WIN32_WINNT 0x0501
|
||||
|
||||
#include <assert.h>
|
||||
#include <stdarg.h>
|
||||
#include <stdio.h>
|
||||
|
||||
|
|
|
@ -21,7 +21,6 @@
|
|||
/* To get CS_DROPSHADOW with the MSVC headers */
|
||||
//#define _WIN32_WINNT 0x0501
|
||||
|
||||
#include <assert.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdarg.h>
|
||||
#include <stdio.h>
|
||||
|
|
|
@ -17,7 +17,6 @@
|
|||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#include <assert.h>
|
||||
#include <stdarg.h>
|
||||
#include <stdio.h>
|
||||
|
||||
|
|
|
@ -20,7 +20,6 @@
|
|||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#include <assert.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdarg.h>
|
||||
#include <stdio.h>
|
||||
|
@ -185,7 +184,7 @@ typedef struct {
|
|||
0, /* biYPelsPerMeter */ \
|
||||
0, /* biClrUsed */ \
|
||||
0 /* biClrImportant */ \
|
||||
}, \
|
||||
} \
|
||||
/* DIB data: left uninitialized */ \
|
||||
} \
|
||||
}
|
||||
|
@ -697,7 +696,7 @@ static void test_initial_cursor(void)
|
|||
ok(error == 0xdeadbeef, "Last error: 0x%08x\n", error);
|
||||
}
|
||||
|
||||
static void test_icon_info_dbg(HICON hIcon, UINT exp_cx, UINT exp_cy, UINT exp_bpp, int line)
|
||||
static void test_icon_info_dbg(HICON hIcon, UINT exp_cx, UINT exp_cy, UINT exp_mask_cy, UINT exp_bpp, int line)
|
||||
{
|
||||
ICONINFO info;
|
||||
DWORD ret;
|
||||
|
@ -737,13 +736,13 @@ static void test_icon_info_dbg(HICON hIcon, UINT exp_cx, UINT exp_cy, UINT exp_b
|
|||
|
||||
ok_(__FILE__, line)(bmMask.bmBitsPixel == 1, "bmMask.bmBitsPixel = %d\n", bmMask.bmBitsPixel);
|
||||
ok_(__FILE__, line)(bmMask.bmWidth == exp_cx, "bmMask.bmWidth = %d\n", bmMask.bmWidth);
|
||||
ok_(__FILE__, line)(bmMask.bmHeight == exp_cy, "bmMask.bmHeight = %d\n", bmMask.bmHeight);
|
||||
ok_(__FILE__, line)(bmMask.bmHeight == exp_mask_cy, "bmMask.bmHeight = %d\n", bmMask.bmHeight);
|
||||
}
|
||||
else
|
||||
{
|
||||
ok_(__FILE__, line)(bmMask.bmBitsPixel == 1, "bmMask.bmBitsPixel = %d\n", bmMask.bmBitsPixel);
|
||||
ok_(__FILE__, line)(bmMask.bmWidth == exp_cx, "bmMask.bmWidth = %d\n", bmMask.bmWidth);
|
||||
ok_(__FILE__, line)(bmMask.bmHeight == exp_cy * 2, "bmMask.bmHeight = %d\n", bmMask.bmHeight);
|
||||
ok_(__FILE__, line)(bmMask.bmHeight == exp_mask_cy, "bmMask.bmHeight = %d\n", bmMask.bmHeight);
|
||||
}
|
||||
if (pGetIconInfoExA)
|
||||
{
|
||||
|
@ -778,7 +777,7 @@ static void test_icon_info_dbg(HICON hIcon, UINT exp_cx, UINT exp_cy, UINT exp_b
|
|||
}
|
||||
}
|
||||
|
||||
#define test_icon_info(a,b,c,d) test_icon_info_dbg((a),(b),(c),(d),__LINE__)
|
||||
#define test_icon_info(a,b,c,d,e) test_icon_info_dbg((a),(b),(c),(d),(e),__LINE__)
|
||||
|
||||
static void test_CreateIcon(void)
|
||||
{
|
||||
|
@ -790,6 +789,7 @@ static void test_CreateIcon(void)
|
|||
HDC hdc;
|
||||
void *bits;
|
||||
UINT display_bpp;
|
||||
int i;
|
||||
|
||||
hdc = GetDC(0);
|
||||
display_bpp = GetDeviceCaps(hdc, BITSPIXEL);
|
||||
|
@ -801,12 +801,12 @@ static void test_CreateIcon(void)
|
|||
|
||||
hIcon = CreateIcon(0, 16, 16, 1, 1, bmp_bits, bmp_bits);
|
||||
ok(hIcon != 0, "CreateIcon failed\n");
|
||||
test_icon_info(hIcon, 16, 16, 1);
|
||||
test_icon_info(hIcon, 16, 16, 32, 1);
|
||||
DestroyIcon(hIcon);
|
||||
|
||||
hIcon = CreateIcon(0, 16, 16, 1, display_bpp, bmp_bits, bmp_bits);
|
||||
ok(hIcon != 0, "CreateIcon failed\n");
|
||||
test_icon_info(hIcon, 16, 16, display_bpp);
|
||||
test_icon_info(hIcon, 16, 16, 16, display_bpp);
|
||||
DestroyIcon(hIcon);
|
||||
|
||||
hbmMask = CreateBitmap(16, 16, 1, 1, bmp_bits);
|
||||
|
@ -841,7 +841,7 @@ static void test_CreateIcon(void)
|
|||
info.hbmColor = hbmColor;
|
||||
hIcon = CreateIconIndirect(&info);
|
||||
ok(hIcon != 0, "CreateIconIndirect failed\n");
|
||||
test_icon_info(hIcon, 16, 16, display_bpp);
|
||||
test_icon_info(hIcon, 16, 16, 16, display_bpp);
|
||||
DestroyIcon(hIcon);
|
||||
|
||||
DeleteObject(hbmMask);
|
||||
|
@ -858,11 +858,27 @@ static void test_CreateIcon(void)
|
|||
SetLastError(0xdeadbeaf);
|
||||
hIcon = CreateIconIndirect(&info);
|
||||
ok(hIcon != 0, "CreateIconIndirect failed\n");
|
||||
test_icon_info(hIcon, 16, 16, 1);
|
||||
test_icon_info(hIcon, 16, 16, 32, 1);
|
||||
DestroyIcon(hIcon);
|
||||
|
||||
DeleteObject(hbmMask);
|
||||
DeleteObject(hbmColor);
|
||||
|
||||
for (i = 0; i <= 4; i++)
|
||||
{
|
||||
hbmMask = CreateBitmap(1, i, 1, 1, bmp_bits);
|
||||
ok(hbmMask != 0, "CreateBitmap failed\n");
|
||||
|
||||
info.fIcon = TRUE;
|
||||
info.xHotspot = 0;
|
||||
info.yHotspot = 0;
|
||||
info.hbmMask = hbmMask;
|
||||
info.hbmColor = 0;
|
||||
SetLastError(0xdeadbeaf);
|
||||
hIcon = CreateIconIndirect(&info);
|
||||
ok(hIcon != 0, "CreateIconIndirect failed\n");
|
||||
test_icon_info(hIcon, 1, i / 2, max(i,1), 1);
|
||||
DestroyIcon(hIcon);
|
||||
DeleteObject(hbmMask);
|
||||
}
|
||||
|
||||
/* test creating an icon from a DIB section */
|
||||
|
||||
|
@ -891,7 +907,7 @@ static void test_CreateIcon(void)
|
|||
SetLastError(0xdeadbeaf);
|
||||
hIcon = CreateIconIndirect(&info);
|
||||
ok(hIcon != 0, "CreateIconIndirect failed\n");
|
||||
test_icon_info(hIcon, 32, 32, 8);
|
||||
test_icon_info(hIcon, 32, 32, 32, 8);
|
||||
DestroyIcon(hIcon);
|
||||
DeleteObject(hbmColor);
|
||||
|
||||
|
@ -909,7 +925,7 @@ static void test_CreateIcon(void)
|
|||
SetLastError(0xdeadbeaf);
|
||||
hIcon = CreateIconIndirect(&info);
|
||||
ok(hIcon != 0, "CreateIconIndirect failed\n");
|
||||
test_icon_info(hIcon, 32, 32, 8);
|
||||
test_icon_info(hIcon, 32, 32, 32, 8);
|
||||
DestroyIcon(hIcon);
|
||||
DeleteObject(hbmColor);
|
||||
|
||||
|
@ -927,7 +943,7 @@ static void test_CreateIcon(void)
|
|||
SetLastError(0xdeadbeaf);
|
||||
hIcon = CreateIconIndirect(&info);
|
||||
ok(hIcon != 0, "CreateIconIndirect failed\n");
|
||||
test_icon_info(hIcon, 32, 32, 8);
|
||||
test_icon_info(hIcon, 32, 32, 32, 8);
|
||||
DestroyIcon(hIcon);
|
||||
|
||||
DeleteObject(hbmMask);
|
||||
|
|
|
@ -18,7 +18,6 @@
|
|||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#include <assert.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdarg.h>
|
||||
#include <stdio.h>
|
||||
|
|
|
@ -33,6 +33,9 @@
|
|||
#include <stdio.h>
|
||||
#include <stdarg.h>
|
||||
|
||||
#undef WINVER
|
||||
#define WINVER 0x0600 /* For NONCLIENTMETRICS with padding */
|
||||
|
||||
#include "wine/test.h"
|
||||
#include "windef.h"
|
||||
#include "winbase.h"
|
||||
|
@ -830,8 +833,7 @@ static void test_initial_focus(void)
|
|||
{
|
||||
/* Test 1:
|
||||
* This test intentionally returns FALSE in response to WM_INITDIALOG
|
||||
* without setting focus to a control. This is not allowed according to
|
||||
* MSDN, but it is exactly what MFC's CFormView does.
|
||||
* without setting focus to a control. This is what MFC's CFormView does.
|
||||
*
|
||||
* Since the WM_INITDIALOG handler returns FALSE without setting the focus,
|
||||
* the focus should initially be NULL. Later, when we manually set focus to
|
||||
|
@ -913,6 +915,31 @@ static void test_initial_focus(void)
|
|||
|
||||
DestroyWindow(hDlg);
|
||||
}
|
||||
|
||||
/* Test 4:
|
||||
* If the dialog has no tab-accessible controls, set focus to first control */
|
||||
{
|
||||
HWND hDlg;
|
||||
HRSRC hResource;
|
||||
HANDLE hTemplate;
|
||||
DLGTEMPLATE* pTemplate;
|
||||
HWND hLabel;
|
||||
|
||||
hResource = FindResourceA(g_hinst,"FOCUS_TEST_DIALOG_2", RT_DIALOG);
|
||||
hTemplate = LoadResource(g_hinst, hResource);
|
||||
pTemplate = LockResource(hTemplate);
|
||||
|
||||
hDlg = CreateDialogIndirectParamA(g_hinst, pTemplate, NULL, focusDlgWinProc, 0);
|
||||
g_hwndInitialFocusT1 = GetFocus();
|
||||
hLabel = GetDlgItem(hDlg, 200);
|
||||
ok (hDlg != 0, "Failed to create test dialog.\n");
|
||||
|
||||
ok ((g_hwndInitialFocusT1 == hLabel),
|
||||
"Focus should have been set to the first control, expected (%p) got (%p).\n",
|
||||
hLabel, g_hwndInitialFocusT1);
|
||||
|
||||
DestroyWindow(hDlg);
|
||||
}
|
||||
}
|
||||
|
||||
static void test_GetDlgItemText(void)
|
||||
|
@ -1058,11 +1085,50 @@ static INT_PTR CALLBACK TestReturnKeyDlgProc (HWND hDlg, UINT uiMsg,
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
static INT_PTR CALLBACK TestControlStyleDlgProc(HWND hdlg, UINT msg,
|
||||
WPARAM wparam, LPARAM lparam)
|
||||
{
|
||||
HWND control;
|
||||
DWORD style, exstyle;
|
||||
char buf[256];
|
||||
|
||||
switch (msg)
|
||||
{
|
||||
case WM_INITDIALOG:
|
||||
control = GetDlgItem(hdlg, 7);
|
||||
ok(control != 0, "dialog control with id 7 not found\n");
|
||||
style = GetWindowLong(control, GWL_STYLE);
|
||||
ok(style == (WS_CHILD|WS_VISIBLE), "expected WS_CHILD|WS_VISIBLE, got %#x\n", style);
|
||||
exstyle = GetWindowLong(control, GWL_EXSTYLE);
|
||||
ok(exstyle == (WS_EX_NOPARENTNOTIFY|WS_EX_TRANSPARENT|WS_EX_CLIENTEDGE), "expected WS_EX_NOPARENTNOTIFY|WS_EX_TRANSPARENT|WS_EX_CLIENTEDGE, got %#x\n", exstyle);
|
||||
buf[0] = 0;
|
||||
GetWindowText(control, buf, sizeof(buf));
|
||||
ok(lstrcmp(buf, "bump7") == 0, "expected bump7, got %s\n", buf);
|
||||
|
||||
control = GetDlgItem(hdlg, 8);
|
||||
ok(control != 0, "dialog control with id 8 not found\n");
|
||||
style = GetWindowLong(control, GWL_STYLE);
|
||||
ok(style == (WS_CHILD|WS_VISIBLE), "expected WS_CHILD|WS_VISIBLE, got %#x\n", style);
|
||||
exstyle = GetWindowLong(control, GWL_EXSTYLE);
|
||||
ok(exstyle == (WS_EX_NOPARENTNOTIFY|WS_EX_TRANSPARENT), "expected WS_EX_NOPARENTNOTIFY|WS_EX_TRANSPARENT, got %#x\n", exstyle);
|
||||
buf[0] = 0;
|
||||
GetWindowText(control, buf, sizeof(buf));
|
||||
ok(lstrcmp(buf, "bump8") == 0, "expected bump8, got %s\n", buf);
|
||||
|
||||
EndDialog(hdlg, -7);
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static void test_DialogBoxParamA(void)
|
||||
{
|
||||
INT_PTR ret;
|
||||
HWND hwnd_invalid = (HWND)0x4444;
|
||||
|
||||
ret = DialogBoxParamA(GetModuleHandle(0), "TEST_DLG_CHILD_POPUP", 0, TestControlStyleDlgProc, 0);
|
||||
ok(ret == -7, "expected -7, got %ld\n", ret);
|
||||
|
||||
SetLastError(0xdeadbeef);
|
||||
ret = DialogBoxParamA(GetModuleHandle(NULL), "IDD_DIALOG" , hwnd_invalid, 0 , 0);
|
||||
ok(0 == ret || broken(ret == -1), "DialogBoxParamA returned %ld, expected 0\n", ret);
|
||||
|
@ -1109,7 +1175,7 @@ static void test_DialogBoxParamA(void)
|
|||
static void test_DisabledDialogTest(void)
|
||||
{
|
||||
g_terminated = FALSE;
|
||||
DialogBoxParam(g_hinst, "IDD_DIALOG", NULL, (DLGPROC)disabled_test_proc, 0);
|
||||
DialogBoxParam(g_hinst, "IDD_DIALOG", NULL, disabled_test_proc, 0);
|
||||
ok(FALSE == g_terminated, "dialog with disabled ok button has been terminated\n");
|
||||
}
|
||||
|
||||
|
@ -1198,7 +1264,7 @@ static void test_MessageBoxFontTest(void)
|
|||
}
|
||||
GetObjectW(hFont, sizeof(LOGFONTW), &lfStaticFont);
|
||||
|
||||
ncMetrics.cbSize = sizeof(NONCLIENTMETRICSW);
|
||||
ncMetrics.cbSize = FIELD_OFFSET(NONCLIENTMETRICSW, iPaddedBorderWidth);
|
||||
SystemParametersInfoW(SPI_GETNONCLIENTMETRICS, 0, &ncMetrics, 0);
|
||||
ok( !memcmp(&lfStaticFont, &ncMetrics.lfMessageFont, FIELD_OFFSET(LOGFONTW, lfFaceName)) &&
|
||||
!lstrcmpW(lfStaticFont.lfFaceName, ncMetrics.lfMessageFont.lfFaceName),
|
||||
|
|
|
@ -1736,7 +1736,7 @@ static void test_espassword(void)
|
|||
|
||||
hwEdit = create_editcontrol(ES_PASSWORD, 0);
|
||||
r = get_edit_style(hwEdit);
|
||||
ok(r == ES_PASSWORD, "Wrong style expected 0x%x got: 0x%x\n", ES_PASSWORD, r);
|
||||
ok(r == ES_PASSWORD, "Wrong style expected ES_PASSWORD got: 0x%x\n", r);
|
||||
/* set text */
|
||||
r = SendMessage(hwEdit , WM_SETTEXT, 0, (LPARAM) password);
|
||||
ok(r == TRUE, "Expected: %d, got: %d\n", TRUE, r);
|
||||
|
@ -1840,7 +1840,7 @@ static void test_enter(void)
|
|||
/* multiline */
|
||||
hwEdit = create_editcontrol(ES_MULTILINE, 0);
|
||||
r = get_edit_style(hwEdit);
|
||||
ok(ES_MULTILINE == r, "Wrong style expected 0x%x got: 0x%x\n", ES_MULTILINE, r);
|
||||
ok(ES_MULTILINE == r, "Wrong style expected ES_MULTILINE got: 0x%x\n", r);
|
||||
|
||||
/* set text */
|
||||
r = SendMessage(hwEdit , WM_SETTEXT, 0, (LPARAM) "");
|
||||
|
@ -1880,7 +1880,7 @@ static void test_enter(void)
|
|||
/* single line with ES_WANTRETURN */
|
||||
hwEdit = create_editcontrol(ES_WANTRETURN, 0);
|
||||
r = get_edit_style(hwEdit);
|
||||
ok(ES_WANTRETURN == r, "Wrong style expected 0x%x got: 0x%x\n", ES_WANTRETURN, r);
|
||||
ok(ES_WANTRETURN == r, "Wrong style expected ES_WANTRETURN got: 0x%x\n", r);
|
||||
|
||||
/* set text */
|
||||
r = SendMessage(hwEdit , WM_SETTEXT, 0, (LPARAM) "");
|
||||
|
@ -1907,7 +1907,7 @@ static void test_tab(void)
|
|||
/* multiline */
|
||||
hwEdit = create_editcontrol(ES_MULTILINE, 0);
|
||||
r = get_edit_style(hwEdit);
|
||||
ok(ES_MULTILINE == r, "Wrong style expected 0x%x got: 0x%x\n", ES_MULTILINE, r);
|
||||
ok(ES_MULTILINE == r, "Wrong style expected ES_MULTILINE got: 0x%x\n", r);
|
||||
|
||||
/* set text */
|
||||
r = SendMessage(hwEdit , WM_SETTEXT, 0, (LPARAM) "");
|
||||
|
@ -1950,57 +1950,57 @@ static void test_edit_dialog(void)
|
|||
int r;
|
||||
|
||||
/* from bug 11841 */
|
||||
r = DialogBoxParam(hinst, "EDIT_READONLY_DIALOG", NULL, (DLGPROC)edit_dialog_proc, 0);
|
||||
r = DialogBoxParam(hinst, "EDIT_READONLY_DIALOG", NULL, edit_dialog_proc, 0);
|
||||
ok(333 == r, "Expected %d, got %d\n", 333, r);
|
||||
r = DialogBoxParam(hinst, "EDIT_READONLY_DIALOG", NULL, (DLGPROC)edit_dialog_proc, 1);
|
||||
r = DialogBoxParam(hinst, "EDIT_READONLY_DIALOG", NULL, edit_dialog_proc, 1);
|
||||
ok(111 == r, "Expected %d, got %d\n", 111, r);
|
||||
r = DialogBoxParam(hinst, "EDIT_READONLY_DIALOG", NULL, (DLGPROC)edit_dialog_proc, 2);
|
||||
r = DialogBoxParam(hinst, "EDIT_READONLY_DIALOG", NULL, edit_dialog_proc, 2);
|
||||
ok(444 == r, "Expected %d, got %d\n", 444, r);
|
||||
|
||||
/* more tests for WM_CHAR */
|
||||
r = DialogBoxParam(hinst, "EDIT_READONLY_DIALOG", NULL, (DLGPROC)edit_dialog_proc, 3);
|
||||
r = DialogBoxParam(hinst, "EDIT_READONLY_DIALOG", NULL, edit_dialog_proc, 3);
|
||||
ok(444 == r, "Expected %d, got %d\n", 444, r);
|
||||
r = DialogBoxParam(hinst, "EDIT_READONLY_DIALOG", NULL, (DLGPROC)edit_dialog_proc, 4);
|
||||
r = DialogBoxParam(hinst, "EDIT_READONLY_DIALOG", NULL, edit_dialog_proc, 4);
|
||||
ok(444 == r, "Expected %d, got %d\n", 444, r);
|
||||
r = DialogBoxParam(hinst, "EDIT_READONLY_DIALOG", NULL, (DLGPROC)edit_dialog_proc, 5);
|
||||
r = DialogBoxParam(hinst, "EDIT_READONLY_DIALOG", NULL, edit_dialog_proc, 5);
|
||||
ok(444 == r, "Expected %d, got %d\n", 444, r);
|
||||
|
||||
/* more tests for WM_KEYDOWN + WM_CHAR */
|
||||
r = DialogBoxParam(hinst, "EDIT_READONLY_DIALOG", NULL, (DLGPROC)edit_dialog_proc, 6);
|
||||
r = DialogBoxParam(hinst, "EDIT_READONLY_DIALOG", NULL, edit_dialog_proc, 6);
|
||||
ok(444 == r, "Expected %d, got %d\n", 444, r);
|
||||
r = DialogBoxParam(hinst, "EDIT_READONLY_DIALOG", NULL, (DLGPROC)edit_dialog_proc, 7);
|
||||
r = DialogBoxParam(hinst, "EDIT_READONLY_DIALOG", NULL, edit_dialog_proc, 7);
|
||||
ok(444 == r, "Expected %d, got %d\n", 444, r);
|
||||
r = DialogBoxParam(hinst, "EDIT_READONLY_DIALOG", NULL, (DLGPROC)edit_dialog_proc, 8);
|
||||
r = DialogBoxParam(hinst, "EDIT_READONLY_DIALOG", NULL, edit_dialog_proc, 8);
|
||||
ok(444 == r, "Expected %d, got %d\n", 444, r);
|
||||
|
||||
/* tests with an editable edit control */
|
||||
r = DialogBoxParam(hinst, "EDIT_DIALOG", NULL, (DLGPROC)edit_dialog_proc, 0);
|
||||
r = DialogBoxParam(hinst, "EDIT_DIALOG", NULL, edit_dialog_proc, 0);
|
||||
ok(333 == r, "Expected %d, got %d\n", 333, r);
|
||||
r = DialogBoxParam(hinst, "EDIT_DIALOG", NULL, (DLGPROC)edit_dialog_proc, 1);
|
||||
r = DialogBoxParam(hinst, "EDIT_DIALOG", NULL, edit_dialog_proc, 1);
|
||||
ok(111 == r, "Expected %d, got %d\n", 111, r);
|
||||
r = DialogBoxParam(hinst, "EDIT_DIALOG", NULL, (DLGPROC)edit_dialog_proc, 2);
|
||||
r = DialogBoxParam(hinst, "EDIT_DIALOG", NULL, edit_dialog_proc, 2);
|
||||
ok(444 == r, "Expected %d, got %d\n", 444, r);
|
||||
|
||||
/* tests for WM_CHAR */
|
||||
r = DialogBoxParam(hinst, "EDIT_DIALOG", NULL, (DLGPROC)edit_dialog_proc, 3);
|
||||
r = DialogBoxParam(hinst, "EDIT_DIALOG", NULL, edit_dialog_proc, 3);
|
||||
ok(444 == r, "Expected %d, got %d\n", 444, r);
|
||||
r = DialogBoxParam(hinst, "EDIT_DIALOG", NULL, (DLGPROC)edit_dialog_proc, 4);
|
||||
r = DialogBoxParam(hinst, "EDIT_DIALOG", NULL, edit_dialog_proc, 4);
|
||||
ok(444 == r, "Expected %d, got %d\n", 444, r);
|
||||
r = DialogBoxParam(hinst, "EDIT_DIALOG", NULL, (DLGPROC)edit_dialog_proc, 5);
|
||||
r = DialogBoxParam(hinst, "EDIT_DIALOG", NULL, edit_dialog_proc, 5);
|
||||
ok(444 == r, "Expected %d, got %d\n", 444, r);
|
||||
|
||||
/* tests for WM_KEYDOWN + WM_CHAR */
|
||||
r = DialogBoxParam(hinst, "EDIT_DIALOG", NULL, (DLGPROC)edit_dialog_proc, 6);
|
||||
r = DialogBoxParam(hinst, "EDIT_DIALOG", NULL, edit_dialog_proc, 6);
|
||||
ok(444 == r, "Expected %d, got %d\n", 444, r);
|
||||
r = DialogBoxParam(hinst, "EDIT_DIALOG", NULL, (DLGPROC)edit_dialog_proc, 7);
|
||||
r = DialogBoxParam(hinst, "EDIT_DIALOG", NULL, edit_dialog_proc, 7);
|
||||
ok(444 == r, "Expected %d, got %d\n", 444, r);
|
||||
r = DialogBoxParam(hinst, "EDIT_DIALOG", NULL, (DLGPROC)edit_dialog_proc, 8);
|
||||
r = DialogBoxParam(hinst, "EDIT_DIALOG", NULL, edit_dialog_proc, 8);
|
||||
ok(444 == r, "Expected %d, got %d\n", 444, r);
|
||||
|
||||
/* multiple tab tests */
|
||||
r = DialogBoxParam(hinst, "EDIT_DIALOG", NULL, (DLGPROC)edit_dialog_proc, 9);
|
||||
r = DialogBoxParam(hinst, "EDIT_DIALOG", NULL, edit_dialog_proc, 9);
|
||||
ok(22 == r, "Expected %d, got %d\n", 22, r);
|
||||
r = DialogBoxParam(hinst, "EDIT_DIALOG", NULL, (DLGPROC)edit_dialog_proc, 10);
|
||||
r = DialogBoxParam(hinst, "EDIT_DIALOG", NULL, edit_dialog_proc, 10);
|
||||
ok(33 == r, "Expected %d, got %d\n", 33, r);
|
||||
}
|
||||
|
||||
|
@ -2009,13 +2009,13 @@ static void test_multi_edit_dialog(void)
|
|||
int r;
|
||||
|
||||
/* test for multiple edit dialogs (bug 12319) */
|
||||
r = DialogBoxParam(hinst, "MULTI_EDIT_DIALOG", NULL, (DLGPROC)multi_edit_dialog_proc, 0);
|
||||
r = DialogBoxParam(hinst, "MULTI_EDIT_DIALOG", NULL, multi_edit_dialog_proc, 0);
|
||||
ok(2222 == r, "Expected %d, got %d\n", 2222, r);
|
||||
r = DialogBoxParam(hinst, "MULTI_EDIT_DIALOG", NULL, (DLGPROC)multi_edit_dialog_proc, 1);
|
||||
r = DialogBoxParam(hinst, "MULTI_EDIT_DIALOG", NULL, multi_edit_dialog_proc, 1);
|
||||
ok(1111 == r, "Expected %d, got %d\n", 1111, r);
|
||||
r = DialogBoxParam(hinst, "MULTI_EDIT_DIALOG", NULL, (DLGPROC)multi_edit_dialog_proc, 2);
|
||||
r = DialogBoxParam(hinst, "MULTI_EDIT_DIALOG", NULL, multi_edit_dialog_proc, 2);
|
||||
ok(2222 == r, "Expected %d, got %d\n", 2222, r);
|
||||
r = DialogBoxParam(hinst, "MULTI_EDIT_DIALOG", NULL, (DLGPROC)multi_edit_dialog_proc, 3);
|
||||
r = DialogBoxParam(hinst, "MULTI_EDIT_DIALOG", NULL, multi_edit_dialog_proc, 3);
|
||||
ok(11 == r, "Expected %d, got %d\n", 11, r);
|
||||
}
|
||||
|
||||
|
@ -2024,27 +2024,27 @@ static void test_wantreturn_edit_dialog(void)
|
|||
int r;
|
||||
|
||||
/* tests for WM_KEYDOWN */
|
||||
r = DialogBoxParam(hinst, "EDIT_WANTRETURN_DIALOG", NULL, (DLGPROC)edit_wantreturn_dialog_proc, 0);
|
||||
r = DialogBoxParam(hinst, "EDIT_WANTRETURN_DIALOG", NULL, edit_wantreturn_dialog_proc, 0);
|
||||
ok(333 == r, "Expected %d, got %d\n", 333, r);
|
||||
r = DialogBoxParam(hinst, "EDIT_WANTRETURN_DIALOG", NULL, (DLGPROC)edit_wantreturn_dialog_proc, 1);
|
||||
r = DialogBoxParam(hinst, "EDIT_WANTRETURN_DIALOG", NULL, edit_wantreturn_dialog_proc, 1);
|
||||
ok(444 == r, "Expected %d, got %d\n", 444, r);
|
||||
r = DialogBoxParam(hinst, "EDIT_WANTRETURN_DIALOG", NULL, (DLGPROC)edit_wantreturn_dialog_proc, 2);
|
||||
r = DialogBoxParam(hinst, "EDIT_WANTRETURN_DIALOG", NULL, edit_wantreturn_dialog_proc, 2);
|
||||
ok(444 == r, "Expected %d, got %d\n", 444, r);
|
||||
|
||||
/* tests for WM_CHAR */
|
||||
r = DialogBoxParam(hinst, "EDIT_WANTRETURN_DIALOG", NULL, (DLGPROC)edit_wantreturn_dialog_proc, 3);
|
||||
r = DialogBoxParam(hinst, "EDIT_WANTRETURN_DIALOG", NULL, edit_wantreturn_dialog_proc, 3);
|
||||
ok(444 == r, "Expected %d, got %d\n", 444, r);
|
||||
r = DialogBoxParam(hinst, "EDIT_WANTRETURN_DIALOG", NULL, (DLGPROC)edit_wantreturn_dialog_proc, 4);
|
||||
r = DialogBoxParam(hinst, "EDIT_WANTRETURN_DIALOG", NULL, edit_wantreturn_dialog_proc, 4);
|
||||
ok(444 == r, "Expected %d, got %d\n", 444, r);
|
||||
r = DialogBoxParam(hinst, "EDIT_WANTRETURN_DIALOG", NULL, (DLGPROC)edit_wantreturn_dialog_proc, 5);
|
||||
r = DialogBoxParam(hinst, "EDIT_WANTRETURN_DIALOG", NULL, edit_wantreturn_dialog_proc, 5);
|
||||
ok(444 == r, "Expected %d, got %d\n", 444, r);
|
||||
|
||||
/* tests for WM_KEYDOWN + WM_CHAR */
|
||||
r = DialogBoxParam(hinst, "EDIT_WANTRETURN_DIALOG", NULL, (DLGPROC)edit_wantreturn_dialog_proc, 6);
|
||||
r = DialogBoxParam(hinst, "EDIT_WANTRETURN_DIALOG", NULL, edit_wantreturn_dialog_proc, 6);
|
||||
ok(444 == r, "Expected %d, got %d\n", 444, r);
|
||||
r = DialogBoxParam(hinst, "EDIT_WANTRETURN_DIALOG", NULL, (DLGPROC)edit_wantreturn_dialog_proc, 7);
|
||||
r = DialogBoxParam(hinst, "EDIT_WANTRETURN_DIALOG", NULL, edit_wantreturn_dialog_proc, 7);
|
||||
ok(444 == r, "Expected %d, got %d\n", 444, r);
|
||||
r = DialogBoxParam(hinst, "EDIT_WANTRETURN_DIALOG", NULL, (DLGPROC)edit_wantreturn_dialog_proc, 8);
|
||||
r = DialogBoxParam(hinst, "EDIT_WANTRETURN_DIALOG", NULL, edit_wantreturn_dialog_proc, 8);
|
||||
ok(444 == r, "Expected %d, got %d\n", 444, r);
|
||||
}
|
||||
|
||||
|
@ -2053,51 +2053,51 @@ static void test_singleline_wantreturn_edit_dialog(void)
|
|||
int r;
|
||||
|
||||
/* tests for WM_KEYDOWN */
|
||||
r = DialogBoxParam(hinst, "EDIT_SINGLELINE_DIALOG", NULL, (DLGPROC)edit_singleline_dialog_proc, 0);
|
||||
r = DialogBoxParam(hinst, "EDIT_SINGLELINE_DIALOG", NULL, edit_singleline_dialog_proc, 0);
|
||||
ok(222 == r, "Expected %d, got %d\n", 222, r);
|
||||
r = DialogBoxParam(hinst, "EDIT_SINGLELINE_DIALOG", NULL, (DLGPROC)edit_singleline_dialog_proc, 1);
|
||||
r = DialogBoxParam(hinst, "EDIT_SINGLELINE_DIALOG", NULL, edit_singleline_dialog_proc, 1);
|
||||
ok(111 == r, "Expected %d, got %d\n", 111, r);
|
||||
r = DialogBoxParam(hinst, "EDIT_SINGLELINE_DIALOG", NULL, (DLGPROC)edit_singleline_dialog_proc, 2);
|
||||
r = DialogBoxParam(hinst, "EDIT_SINGLELINE_DIALOG", NULL, edit_singleline_dialog_proc, 2);
|
||||
ok(444 == r, "Expected %d, got %d\n", 444, r);
|
||||
|
||||
/* tests for WM_CHAR */
|
||||
r = DialogBoxParam(hinst, "EDIT_SINGLELINE_DIALOG", NULL, (DLGPROC)edit_singleline_dialog_proc, 3);
|
||||
r = DialogBoxParam(hinst, "EDIT_SINGLELINE_DIALOG", NULL, edit_singleline_dialog_proc, 3);
|
||||
ok(444 == r, "Expected %d, got %d\n", 444, r);
|
||||
r = DialogBoxParam(hinst, "EDIT_SINGLELINE_DIALOG", NULL, (DLGPROC)edit_singleline_dialog_proc, 4);
|
||||
r = DialogBoxParam(hinst, "EDIT_SINGLELINE_DIALOG", NULL, edit_singleline_dialog_proc, 4);
|
||||
ok(444 == r, "Expected %d, got %d\n", 444, r);
|
||||
r = DialogBoxParam(hinst, "EDIT_SINGLELINE_DIALOG", NULL, (DLGPROC)edit_singleline_dialog_proc, 5);
|
||||
r = DialogBoxParam(hinst, "EDIT_SINGLELINE_DIALOG", NULL, edit_singleline_dialog_proc, 5);
|
||||
ok(444 == r, "Expected %d, got %d\n", 444, r);
|
||||
|
||||
/* tests for WM_KEYDOWN + WM_CHAR */
|
||||
r = DialogBoxParam(hinst, "EDIT_SINGLELINE_DIALOG", NULL, (DLGPROC)edit_singleline_dialog_proc, 6);
|
||||
r = DialogBoxParam(hinst, "EDIT_SINGLELINE_DIALOG", NULL, edit_singleline_dialog_proc, 6);
|
||||
ok(222 == r, "Expected %d, got %d\n", 222, r);
|
||||
r = DialogBoxParam(hinst, "EDIT_SINGLELINE_DIALOG", NULL, (DLGPROC)edit_singleline_dialog_proc, 7);
|
||||
r = DialogBoxParam(hinst, "EDIT_SINGLELINE_DIALOG", NULL, edit_singleline_dialog_proc, 7);
|
||||
ok(111 == r, "Expected %d, got %d\n", 111, r);
|
||||
r = DialogBoxParam(hinst, "EDIT_SINGLELINE_DIALOG", NULL, (DLGPROC)edit_singleline_dialog_proc, 8);
|
||||
r = DialogBoxParam(hinst, "EDIT_SINGLELINE_DIALOG", NULL, edit_singleline_dialog_proc, 8);
|
||||
ok(444 == r, "Expected %d, got %d\n", 444, r);
|
||||
|
||||
/* tests for WM_KEYDOWN */
|
||||
r = DialogBoxParam(hinst, "EDIT_SINGLELINE_WANTRETURN_DIALOG", NULL, (DLGPROC)edit_singleline_dialog_proc, 0);
|
||||
r = DialogBoxParam(hinst, "EDIT_SINGLELINE_WANTRETURN_DIALOG", NULL, edit_singleline_dialog_proc, 0);
|
||||
ok(222 == r, "Expected %d, got %d\n", 222, r);
|
||||
r = DialogBoxParam(hinst, "EDIT_SINGLELINE_WANTRETURN_DIALOG", NULL, (DLGPROC)edit_singleline_dialog_proc, 1);
|
||||
r = DialogBoxParam(hinst, "EDIT_SINGLELINE_WANTRETURN_DIALOG", NULL, edit_singleline_dialog_proc, 1);
|
||||
ok(111 == r, "Expected %d, got %d\n", 111, r);
|
||||
r = DialogBoxParam(hinst, "EDIT_SINGLELINE_WANTRETURN_DIALOG", NULL, (DLGPROC)edit_singleline_dialog_proc, 2);
|
||||
r = DialogBoxParam(hinst, "EDIT_SINGLELINE_WANTRETURN_DIALOG", NULL, edit_singleline_dialog_proc, 2);
|
||||
ok(444 == r, "Expected %d, got %d\n", 444, r);
|
||||
|
||||
/* tests for WM_CHAR */
|
||||
r = DialogBoxParam(hinst, "EDIT_SINGLELINE_WANTRETURN_DIALOG", NULL, (DLGPROC)edit_singleline_dialog_proc, 3);
|
||||
r = DialogBoxParam(hinst, "EDIT_SINGLELINE_WANTRETURN_DIALOG", NULL, edit_singleline_dialog_proc, 3);
|
||||
ok(444 == r, "Expected %d, got %d\n", 444, r);
|
||||
r = DialogBoxParam(hinst, "EDIT_SINGLELINE_WANTRETURN_DIALOG", NULL, (DLGPROC)edit_singleline_dialog_proc, 4);
|
||||
r = DialogBoxParam(hinst, "EDIT_SINGLELINE_WANTRETURN_DIALOG", NULL, edit_singleline_dialog_proc, 4);
|
||||
ok(444 == r, "Expected %d, got %d\n", 444, r);
|
||||
r = DialogBoxParam(hinst, "EDIT_SINGLELINE_WANTRETURN_DIALOG", NULL, (DLGPROC)edit_singleline_dialog_proc, 5);
|
||||
r = DialogBoxParam(hinst, "EDIT_SINGLELINE_WANTRETURN_DIALOG", NULL, edit_singleline_dialog_proc, 5);
|
||||
ok(444 == r, "Expected %d, got %d\n", 444, r);
|
||||
|
||||
/* tests for WM_KEYDOWN + WM_CHAR */
|
||||
r = DialogBoxParam(hinst, "EDIT_SINGLELINE_WANTRETURN_DIALOG", NULL, (DLGPROC)edit_singleline_dialog_proc, 6);
|
||||
r = DialogBoxParam(hinst, "EDIT_SINGLELINE_WANTRETURN_DIALOG", NULL, edit_singleline_dialog_proc, 6);
|
||||
ok(222 == r, "Expected %d, got %d\n", 222, r);
|
||||
r = DialogBoxParam(hinst, "EDIT_SINGLELINE_WANTRETURN_DIALOG", NULL, (DLGPROC)edit_singleline_dialog_proc, 7);
|
||||
r = DialogBoxParam(hinst, "EDIT_SINGLELINE_WANTRETURN_DIALOG", NULL, edit_singleline_dialog_proc, 7);
|
||||
ok(111 == r, "Expected %d, got %d\n", 111, r);
|
||||
r = DialogBoxParam(hinst, "EDIT_SINGLELINE_WANTRETURN_DIALOG", NULL, (DLGPROC)edit_singleline_dialog_proc, 8);
|
||||
r = DialogBoxParam(hinst, "EDIT_SINGLELINE_WANTRETURN_DIALOG", NULL, edit_singleline_dialog_proc, 8);
|
||||
ok(444 == r, "Expected %d, got %d\n", 444, r);
|
||||
}
|
||||
|
||||
|
|
|
@ -5,7 +5,8 @@
|
|||
* Unit tests for data structure packing
|
||||
*/
|
||||
|
||||
//#define WINVER 0x0501
|
||||
#undef WINVER
|
||||
#define WINVER 0x0600
|
||||
//#define _WIN32_IE 0x0501
|
||||
//#define _WIN32_WINNT 0x0501
|
||||
|
||||
|
@ -1562,7 +1563,7 @@ static void test_pack_LPNONCLIENTMETRICSA(void)
|
|||
/* LPNONCLIENTMETRICSA */
|
||||
TEST_TYPE_SIZE (LPNONCLIENTMETRICSA, 8)
|
||||
TEST_TYPE_ALIGN (LPNONCLIENTMETRICSA, 8)
|
||||
TEST_TARGET_SIZE (LPNONCLIENTMETRICSA, 340)
|
||||
TEST_TARGET_SIZE (LPNONCLIENTMETRICSA, 344)
|
||||
TEST_TARGET_ALIGN(LPNONCLIENTMETRICSA, 4)
|
||||
}
|
||||
|
||||
|
@ -1571,7 +1572,7 @@ static void test_pack_LPNONCLIENTMETRICSW(void)
|
|||
/* LPNONCLIENTMETRICSW */
|
||||
TEST_TYPE_SIZE (LPNONCLIENTMETRICSW, 8)
|
||||
TEST_TYPE_ALIGN (LPNONCLIENTMETRICSW, 8)
|
||||
TEST_TARGET_SIZE (LPNONCLIENTMETRICSW, 500)
|
||||
TEST_TARGET_SIZE (LPNONCLIENTMETRICSW, 504)
|
||||
TEST_TARGET_ALIGN(LPNONCLIENTMETRICSW, 4)
|
||||
}
|
||||
|
||||
|
@ -2390,7 +2391,7 @@ static void test_pack_NMHDR(void)
|
|||
static void test_pack_NONCLIENTMETRICSA(void)
|
||||
{
|
||||
/* NONCLIENTMETRICSA */
|
||||
TEST_TYPE_SIZE (NONCLIENTMETRICSA, 340)
|
||||
TEST_TYPE_SIZE (NONCLIENTMETRICSA, 344)
|
||||
TEST_TYPE_ALIGN (NONCLIENTMETRICSA, 4)
|
||||
TEST_FIELD_SIZE (NONCLIENTMETRICSA, cbSize, 4)
|
||||
TEST_FIELD_ALIGN (NONCLIENTMETRICSA, cbSize, 4)
|
||||
|
@ -2437,12 +2438,15 @@ static void test_pack_NONCLIENTMETRICSA(void)
|
|||
TEST_FIELD_SIZE (NONCLIENTMETRICSA, lfMessageFont, 60)
|
||||
TEST_FIELD_ALIGN (NONCLIENTMETRICSA, lfMessageFont, 4)
|
||||
TEST_FIELD_OFFSET(NONCLIENTMETRICSA, lfMessageFont, 280)
|
||||
TEST_FIELD_SIZE (NONCLIENTMETRICSA, iPaddedBorderWidth, 4)
|
||||
TEST_FIELD_ALIGN (NONCLIENTMETRICSA, iPaddedBorderWidth, 4)
|
||||
TEST_FIELD_OFFSET(NONCLIENTMETRICSA, iPaddedBorderWidth, 340)
|
||||
}
|
||||
|
||||
static void test_pack_NONCLIENTMETRICSW(void)
|
||||
{
|
||||
/* NONCLIENTMETRICSW */
|
||||
TEST_TYPE_SIZE (NONCLIENTMETRICSW, 500)
|
||||
TEST_TYPE_SIZE (NONCLIENTMETRICSW, 504)
|
||||
TEST_TYPE_ALIGN (NONCLIENTMETRICSW, 4)
|
||||
TEST_FIELD_SIZE (NONCLIENTMETRICSW, cbSize, 4)
|
||||
TEST_FIELD_ALIGN (NONCLIENTMETRICSW, cbSize, 4)
|
||||
|
@ -2489,6 +2493,9 @@ static void test_pack_NONCLIENTMETRICSW(void)
|
|||
TEST_FIELD_SIZE (NONCLIENTMETRICSW, lfMessageFont, 92)
|
||||
TEST_FIELD_ALIGN (NONCLIENTMETRICSW, lfMessageFont, 4)
|
||||
TEST_FIELD_OFFSET(NONCLIENTMETRICSW, lfMessageFont, 408)
|
||||
TEST_FIELD_SIZE (NONCLIENTMETRICSW, iPaddedBorderWidth, 4)
|
||||
TEST_FIELD_ALIGN (NONCLIENTMETRICSW, iPaddedBorderWidth, 4)
|
||||
TEST_FIELD_OFFSET(NONCLIENTMETRICSW, iPaddedBorderWidth, 500)
|
||||
}
|
||||
|
||||
static void test_pack_PAINTSTRUCT(void)
|
||||
|
@ -2870,7 +2877,7 @@ static void test_pack_PNONCLIENTMETRICSA(void)
|
|||
/* PNONCLIENTMETRICSA */
|
||||
TEST_TYPE_SIZE (PNONCLIENTMETRICSA, 8)
|
||||
TEST_TYPE_ALIGN (PNONCLIENTMETRICSA, 8)
|
||||
TEST_TARGET_SIZE (PNONCLIENTMETRICSA, 340)
|
||||
TEST_TARGET_SIZE (PNONCLIENTMETRICSA, 344)
|
||||
TEST_TARGET_ALIGN(PNONCLIENTMETRICSA, 4)
|
||||
}
|
||||
|
||||
|
@ -2879,7 +2886,7 @@ static void test_pack_PNONCLIENTMETRICSW(void)
|
|||
/* PNONCLIENTMETRICSW */
|
||||
TEST_TYPE_SIZE (PNONCLIENTMETRICSW, 8)
|
||||
TEST_TYPE_ALIGN (PNONCLIENTMETRICSW, 8)
|
||||
TEST_TARGET_SIZE (PNONCLIENTMETRICSW, 500)
|
||||
TEST_TARGET_SIZE (PNONCLIENTMETRICSW, 504)
|
||||
TEST_TARGET_ALIGN(PNONCLIENTMETRICSW, 4)
|
||||
}
|
||||
|
||||
|
@ -5060,7 +5067,7 @@ static void test_pack_LPNONCLIENTMETRICSA(void)
|
|||
/* LPNONCLIENTMETRICSA */
|
||||
TEST_TYPE_SIZE (LPNONCLIENTMETRICSA, 4)
|
||||
TEST_TYPE_ALIGN (LPNONCLIENTMETRICSA, 4)
|
||||
TEST_TARGET_SIZE (LPNONCLIENTMETRICSA, 340)
|
||||
TEST_TARGET_SIZE (LPNONCLIENTMETRICSA, 344)
|
||||
TEST_TARGET_ALIGN(LPNONCLIENTMETRICSA, 4)
|
||||
}
|
||||
|
||||
|
@ -5069,7 +5076,7 @@ static void test_pack_LPNONCLIENTMETRICSW(void)
|
|||
/* LPNONCLIENTMETRICSW */
|
||||
TEST_TYPE_SIZE (LPNONCLIENTMETRICSW, 4)
|
||||
TEST_TYPE_ALIGN (LPNONCLIENTMETRICSW, 4)
|
||||
TEST_TARGET_SIZE (LPNONCLIENTMETRICSW, 500)
|
||||
TEST_TARGET_SIZE (LPNONCLIENTMETRICSW, 504)
|
||||
TEST_TARGET_ALIGN(LPNONCLIENTMETRICSW, 4)
|
||||
}
|
||||
|
||||
|
@ -5888,7 +5895,7 @@ static void test_pack_NMHDR(void)
|
|||
static void test_pack_NONCLIENTMETRICSA(void)
|
||||
{
|
||||
/* NONCLIENTMETRICSA */
|
||||
TEST_TYPE_SIZE (NONCLIENTMETRICSA, 340)
|
||||
TEST_TYPE_SIZE (NONCLIENTMETRICSA, 344)
|
||||
TEST_TYPE_ALIGN (NONCLIENTMETRICSA, 4)
|
||||
TEST_FIELD_SIZE (NONCLIENTMETRICSA, cbSize, 4)
|
||||
TEST_FIELD_ALIGN (NONCLIENTMETRICSA, cbSize, 4)
|
||||
|
@ -5935,12 +5942,15 @@ static void test_pack_NONCLIENTMETRICSA(void)
|
|||
TEST_FIELD_SIZE (NONCLIENTMETRICSA, lfMessageFont, 60)
|
||||
TEST_FIELD_ALIGN (NONCLIENTMETRICSA, lfMessageFont, 4)
|
||||
TEST_FIELD_OFFSET(NONCLIENTMETRICSA, lfMessageFont, 280)
|
||||
TEST_FIELD_SIZE (NONCLIENTMETRICSA, iPaddedBorderWidth, 4)
|
||||
TEST_FIELD_ALIGN (NONCLIENTMETRICSA, iPaddedBorderWidth, 4)
|
||||
TEST_FIELD_OFFSET(NONCLIENTMETRICSA, iPaddedBorderWidth, 340)
|
||||
}
|
||||
|
||||
static void test_pack_NONCLIENTMETRICSW(void)
|
||||
{
|
||||
/* NONCLIENTMETRICSW */
|
||||
TEST_TYPE_SIZE (NONCLIENTMETRICSW, 500)
|
||||
TEST_TYPE_SIZE (NONCLIENTMETRICSW, 504)
|
||||
TEST_TYPE_ALIGN (NONCLIENTMETRICSW, 4)
|
||||
TEST_FIELD_SIZE (NONCLIENTMETRICSW, cbSize, 4)
|
||||
TEST_FIELD_ALIGN (NONCLIENTMETRICSW, cbSize, 4)
|
||||
|
@ -5987,6 +5997,9 @@ static void test_pack_NONCLIENTMETRICSW(void)
|
|||
TEST_FIELD_SIZE (NONCLIENTMETRICSW, lfMessageFont, 92)
|
||||
TEST_FIELD_ALIGN (NONCLIENTMETRICSW, lfMessageFont, 4)
|
||||
TEST_FIELD_OFFSET(NONCLIENTMETRICSW, lfMessageFont, 408)
|
||||
TEST_FIELD_SIZE (NONCLIENTMETRICSW, iPaddedBorderWidth, 4)
|
||||
TEST_FIELD_ALIGN (NONCLIENTMETRICSW, iPaddedBorderWidth, 4)
|
||||
TEST_FIELD_OFFSET(NONCLIENTMETRICSW, iPaddedBorderWidth, 500)
|
||||
}
|
||||
|
||||
static void test_pack_PAINTSTRUCT(void)
|
||||
|
@ -6368,7 +6381,7 @@ static void test_pack_PNONCLIENTMETRICSA(void)
|
|||
/* PNONCLIENTMETRICSA */
|
||||
TEST_TYPE_SIZE (PNONCLIENTMETRICSA, 4)
|
||||
TEST_TYPE_ALIGN (PNONCLIENTMETRICSA, 4)
|
||||
TEST_TARGET_SIZE (PNONCLIENTMETRICSA, 340)
|
||||
TEST_TARGET_SIZE (PNONCLIENTMETRICSA, 344)
|
||||
TEST_TARGET_ALIGN(PNONCLIENTMETRICSA, 4)
|
||||
}
|
||||
|
||||
|
@ -6377,7 +6390,7 @@ static void test_pack_PNONCLIENTMETRICSW(void)
|
|||
/* PNONCLIENTMETRICSW */
|
||||
TEST_TYPE_SIZE (PNONCLIENTMETRICSW, 4)
|
||||
TEST_TYPE_ALIGN (PNONCLIENTMETRICSW, 4)
|
||||
TEST_TARGET_SIZE (PNONCLIENTMETRICSW, 500)
|
||||
TEST_TARGET_SIZE (PNONCLIENTMETRICSW, 504)
|
||||
TEST_TARGET_ALIGN(PNONCLIENTMETRICSW, 4)
|
||||
}
|
||||
|
||||
|
|
|
@ -1540,7 +1540,7 @@ static void test_key_map(void)
|
|||
|
||||
static void test_ToUnicode(void)
|
||||
{
|
||||
WCHAR wStr[2];
|
||||
WCHAR wStr[4];
|
||||
BYTE state[256];
|
||||
const BYTE SC_RETURN = 0x1c, SC_TAB = 0x0f;
|
||||
const BYTE HIGHEST_BIT = 0x80;
|
||||
|
@ -1548,8 +1548,9 @@ static void test_ToUnicode(void)
|
|||
for(i=0; i<256; i++)
|
||||
state[i]=0;
|
||||
|
||||
wStr[1] = 0xAA;
|
||||
SetLastError(0xdeadbeef);
|
||||
ret = ToUnicode(VK_RETURN, SC_RETURN, state, wStr, 2, 0);
|
||||
ret = ToUnicode(VK_RETURN, SC_RETURN, state, wStr, 4, 0);
|
||||
if (!ret && GetLastError() == ERROR_CALL_NOT_IMPLEMENTED)
|
||||
{
|
||||
win_skip("ToUnicode is not implemented\n");
|
||||
|
@ -1558,7 +1559,11 @@ static void test_ToUnicode(void)
|
|||
|
||||
ok(ret == 1, "ToUnicode for Return key didn't return 1 (was %i)\n", ret);
|
||||
if(ret == 1)
|
||||
{
|
||||
ok(wStr[0]=='\r', "ToUnicode for CTRL + Return was %i (expected 13)\n", wStr[0]);
|
||||
ok(wStr[1]==0 || broken(wStr[1]!=0) /* nt4 */,
|
||||
"ToUnicode didn't null-terminate the buffer when there was room.\n");
|
||||
}
|
||||
state[VK_CONTROL] |= HIGHEST_BIT;
|
||||
state[VK_LCONTROL] |= HIGHEST_BIT;
|
||||
|
||||
|
|
|
@ -8134,12 +8134,6 @@ static VOID CALLBACK tfunc(HWND hwnd, UINT uMsg, UINT_PTR id, DWORD dwTime)
|
|||
{
|
||||
}
|
||||
|
||||
static VOID CALLBACK tfunc_crash(HWND hwnd, UINT uMsg, UINT_PTR id, DWORD dwTime)
|
||||
{
|
||||
/* Crash on purpose */
|
||||
*(volatile int *)0 = 2;
|
||||
}
|
||||
|
||||
#define TIMER_ID 0x19
|
||||
|
||||
static DWORD WINAPI timer_thread_proc(LPVOID x)
|
||||
|
@ -8161,7 +8155,6 @@ static void test_timers(void)
|
|||
{
|
||||
struct timer_info info;
|
||||
DWORD id;
|
||||
MSG msg;
|
||||
|
||||
info.hWnd = CreateWindow ("TestWindowClass", NULL,
|
||||
WS_OVERLAPPEDWINDOW ,
|
||||
|
@ -8184,26 +8177,6 @@ static void test_timers(void)
|
|||
ok( KillTimer(info.hWnd, TIMER_ID), "KillTimer failed\n");
|
||||
|
||||
ok(DestroyWindow(info.hWnd), "failed to destroy window\n");
|
||||
|
||||
/* Test timer callback with crash */
|
||||
SetLastError(0xdeadbeef);
|
||||
info.hWnd = CreateWindowW(testWindowClassW, NULL,
|
||||
WS_OVERLAPPEDWINDOW ,
|
||||
CW_USEDEFAULT, CW_USEDEFAULT, 300, 300, 0,
|
||||
NULL, NULL, 0);
|
||||
if ((!info.hWnd && GetLastError() == ERROR_CALL_NOT_IMPLEMENTED) || /* Win9x/Me */
|
||||
(!pGetMenuInfo)) /* Win95/NT4 */
|
||||
{
|
||||
win_skip("Test would crash on Win9x/WinMe/NT4\n");
|
||||
DestroyWindow(info.hWnd);
|
||||
return;
|
||||
}
|
||||
info.id = SetTimer(info.hWnd, TIMER_ID, 0, tfunc_crash);
|
||||
ok(info.id, "SetTimer failed\n");
|
||||
Sleep(150);
|
||||
while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) DispatchMessage(&msg);
|
||||
|
||||
ok(DestroyWindow(info.hWnd), "failed to destroy window\n");
|
||||
}
|
||||
|
||||
static int count = 0;
|
||||
|
@ -9516,8 +9489,8 @@ static DWORD CALLBACK send_msg_thread_2(void *param)
|
|||
|
||||
case WAIT_OBJECT_0 + EV_SENDMSG:
|
||||
trace("thread: sending message\n");
|
||||
ok( SendNotifyMessageA(info->hwnd, WM_USER, 0, 0),
|
||||
"SendNotifyMessageA failed error %u\n", GetLastError());
|
||||
ret = SendNotifyMessageA(info->hwnd, WM_USER, 0, 0);
|
||||
ok(ret, "SendNotifyMessageA failed error %u\n", GetLastError());
|
||||
SetEvent(info->hevent[EV_ACK]);
|
||||
break;
|
||||
|
||||
|
@ -11236,7 +11209,7 @@ static void test_dialog_messages(void)
|
|||
cls.lpszClassName = "MyDialogClass";
|
||||
cls.hInstance = GetModuleHandle(0);
|
||||
/* need a cast since a dlgproc is used as a wndproc */
|
||||
cls.lpfnWndProc = (WNDPROC)test_dlg_proc;
|
||||
cls.lpfnWndProc = test_dlg_proc;
|
||||
if (!RegisterClass(&cls)) assert(0);
|
||||
|
||||
hdlg = CreateDialogParam(0, "CLASS_TEST_DIALOG_2", 0, test_dlg_proc, 0);
|
||||
|
@ -11256,6 +11229,52 @@ static void test_dialog_messages(void)
|
|||
UnregisterClass(cls.lpszClassName, cls.hInstance);
|
||||
}
|
||||
|
||||
static void test_EndDialog(void)
|
||||
{
|
||||
HWND hparent, hother, hactive, hdlg;
|
||||
WNDCLASS cls;
|
||||
|
||||
hparent = CreateWindowExA(0, "TestParentClass", "Test parent",
|
||||
WS_OVERLAPPEDWINDOW | WS_VISIBLE | WS_DISABLED,
|
||||
100, 100, 200, 200, 0, 0, 0, NULL);
|
||||
ok (hparent != 0, "Failed to create parent window\n");
|
||||
|
||||
hother = CreateWindowExA(0, "TestParentClass", "Test parent 2",
|
||||
WS_OVERLAPPEDWINDOW | WS_VISIBLE,
|
||||
100, 100, 200, 200, 0, 0, 0, NULL);
|
||||
ok (hother != 0, "Failed to create parent window\n");
|
||||
|
||||
ok(GetClassInfo(0, "#32770", &cls), "GetClassInfo failed\n");
|
||||
cls.lpszClassName = "MyDialogClass";
|
||||
cls.hInstance = GetModuleHandle(0);
|
||||
/* need a cast since a dlgproc is used as a wndproc */
|
||||
cls.lpfnWndProc = (WNDPROC)test_dlg_proc;
|
||||
if (!RegisterClass(&cls)) assert(0);
|
||||
|
||||
flush_sequence();
|
||||
SetForegroundWindow(hother);
|
||||
hactive = GetForegroundWindow();
|
||||
ok(hother == hactive, "Wrong window has focus (%p != %p)\n", hother, hactive);
|
||||
|
||||
/* create a dialog where the parent is disabled, this parent should still
|
||||
receive the focus when the dialog exits (even though "normally" a
|
||||
disabled window should not receive the focus) */
|
||||
hdlg = CreateDialogParam(0, "CLASS_TEST_DIALOG_2", hparent, test_dlg_proc, 0);
|
||||
ok(IsWindow(hdlg), "CreateDialogParam failed\n");
|
||||
SetForegroundWindow(hdlg);
|
||||
hactive = GetForegroundWindow();
|
||||
ok(hdlg == hactive, "Wrong window has focus (%p != %p)\n", hdlg, hactive);
|
||||
EndDialog(hdlg, 0);
|
||||
hactive = GetForegroundWindow();
|
||||
ok(hparent == hactive, "Wrong window has focus (parent != active) (active: %p, parent: %p, dlg: %p, other: %p)\n", hactive, hparent, hdlg, hother);
|
||||
DestroyWindow(hdlg);
|
||||
flush_sequence();
|
||||
|
||||
DestroyWindow( hother );
|
||||
DestroyWindow( hparent );
|
||||
UnregisterClass(cls.lpszClassName, cls.hInstance);
|
||||
}
|
||||
|
||||
static void test_nullCallback(void)
|
||||
{
|
||||
HWND hwnd;
|
||||
|
@ -13024,6 +13043,7 @@ static void test_keyflags(void)
|
|||
test_window = CreateWindowEx(0, "TestWindowClass", NULL, WS_OVERLAPPEDWINDOW | WS_VISIBLE,
|
||||
100, 100, 200, 200, 0, 0, 0, NULL);
|
||||
|
||||
flush_events();
|
||||
flush_sequence();
|
||||
|
||||
/* keyup without a keydown */
|
||||
|
@ -13470,6 +13490,234 @@ end:
|
|||
flush_sequence();
|
||||
}
|
||||
|
||||
|
||||
static const struct message WmSetFocus_1[] = {
|
||||
{ HCBT_SETFOCUS, hook }, /* child */
|
||||
{ HCBT_ACTIVATE, hook }, /* parent */
|
||||
{ WM_QUERYNEWPALETTE, sent|wparam|lparam|parent|optional, 0, 0 },
|
||||
{ WM_WINDOWPOSCHANGING, sent|parent, 0, SWP_NOSIZE|SWP_NOMOVE },
|
||||
{ WM_ACTIVATEAPP, sent|wparam|parent, 1 },
|
||||
{ WM_NCACTIVATE, sent|parent },
|
||||
{ WM_GETTEXT, sent|defwinproc|parent|optional },
|
||||
{ WM_GETTEXT, sent|defwinproc|parent|optional },
|
||||
{ WM_ACTIVATE, sent|wparam|parent, 1 },
|
||||
{ HCBT_SETFOCUS, hook }, /* parent */
|
||||
{ WM_SETFOCUS, sent|defwinproc|parent },
|
||||
{ WM_KILLFOCUS, sent|parent },
|
||||
{ WM_SETFOCUS, sent },
|
||||
{ 0 }
|
||||
};
|
||||
static const struct message WmSetFocus_2[] = {
|
||||
{ HCBT_SETFOCUS, hook }, /* parent */
|
||||
{ WM_KILLFOCUS, sent },
|
||||
{ WM_SETFOCUS, sent|parent },
|
||||
{ 0 }
|
||||
};
|
||||
static const struct message WmSetFocus_3[] = {
|
||||
{ HCBT_SETFOCUS, hook }, /* child */
|
||||
{ 0 }
|
||||
};
|
||||
static const struct message WmSetFocus_4[] = {
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
static void test_SetFocus(void)
|
||||
{
|
||||
HWND parent, old_parent, child, old_focus, old_active;
|
||||
MSG msg;
|
||||
struct wnd_event wnd_event;
|
||||
HANDLE hthread;
|
||||
DWORD ret, tid;
|
||||
|
||||
wnd_event.start_event = CreateEvent(NULL, 0, 0, NULL);
|
||||
ok(wnd_event.start_event != 0, "CreateEvent error %d\n", GetLastError());
|
||||
hthread = CreateThread(NULL, 0, thread_proc, &wnd_event, 0, &tid);
|
||||
ok(hthread != 0, "CreateThread error %d\n", GetLastError());
|
||||
ret = WaitForSingleObject(wnd_event.start_event, INFINITE);
|
||||
ok(ret == WAIT_OBJECT_0, "WaitForSingleObject failed\n");
|
||||
CloseHandle(wnd_event.start_event);
|
||||
|
||||
parent = CreateWindowEx(0, "TestParentClass", NULL, WS_OVERLAPPEDWINDOW,
|
||||
0, 0, 0, 0, 0, 0, 0, NULL);
|
||||
ok(parent != 0, "failed to create parent window\n");
|
||||
child = CreateWindowEx(0, "TestWindowClass", NULL, WS_CHILD,
|
||||
0, 0, 0, 0, parent, 0, 0, NULL);
|
||||
ok(child != 0, "failed to create child window\n");
|
||||
|
||||
trace("parent %p, child %p, thread window %p\n", parent, child, wnd_event.hwnd);
|
||||
|
||||
SetFocus(0);
|
||||
SetActiveWindow(0);
|
||||
|
||||
flush_events();
|
||||
flush_sequence();
|
||||
|
||||
ok(GetActiveWindow() == 0, "expected active 0, got %p\n", GetActiveWindow());
|
||||
ok(GetFocus() == 0, "expected focus 0, got %p\n", GetFocus());
|
||||
|
||||
log_all_parent_messages++;
|
||||
|
||||
old_focus = SetFocus(child);
|
||||
while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) DispatchMessage(&msg);
|
||||
ok_sequence(WmSetFocus_1, "SetFocus on a child window", TRUE);
|
||||
ok(old_focus == parent, "expected old focus %p, got %p\n", parent, old_focus);
|
||||
ok(GetActiveWindow() == parent, "expected active %p, got %p\n", parent, GetActiveWindow());
|
||||
ok(GetFocus() == child, "expected focus %p, got %p\n", child, GetFocus());
|
||||
|
||||
old_focus = SetFocus(parent);
|
||||
while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) DispatchMessage(&msg);
|
||||
ok_sequence(WmSetFocus_2, "SetFocus on a parent window", FALSE);
|
||||
ok(old_focus == child, "expected old focus %p, got %p\n", child, old_focus);
|
||||
ok(GetActiveWindow() == parent, "expected active %p, got %p\n", parent, GetActiveWindow());
|
||||
ok(GetFocus() == parent, "expected focus %p, got %p\n", parent, GetFocus());
|
||||
|
||||
SetLastError(0xdeadbeef);
|
||||
old_focus = SetFocus((HWND)0xdeadbeef);
|
||||
ok(GetLastError() == ERROR_INVALID_WINDOW_HANDLE || broken(GetLastError() == 0xdeadbeef),
|
||||
"expected ERROR_INVALID_WINDOW_HANDLE, got %d\n", GetLastError());
|
||||
while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) DispatchMessage(&msg);
|
||||
ok_sequence(WmEmptySeq, "SetFocus on an invalid window", FALSE);
|
||||
ok(old_focus == 0, "expected old focus 0, got %p\n", old_focus);
|
||||
ok(GetActiveWindow() == parent, "expected active %p, got %p\n", parent, GetActiveWindow());
|
||||
ok(GetFocus() == parent, "expected focus %p, got %p\n", parent, GetFocus());
|
||||
|
||||
SetLastError(0xdeadbeef);
|
||||
old_focus = SetFocus(GetDesktopWindow());
|
||||
ok(GetLastError() == ERROR_ACCESS_DENIED /* Vista+ */ ||
|
||||
broken(GetLastError() == 0xdeadbeef), "expected ERROR_ACCESS_DENIED, got %d\n", GetLastError());
|
||||
while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) DispatchMessage(&msg);
|
||||
ok_sequence(WmEmptySeq, "SetFocus on a desktop window", TRUE);
|
||||
ok(old_focus == 0, "expected old focus 0, got %p\n", old_focus);
|
||||
ok(GetActiveWindow() == parent, "expected active %p, got %p\n", parent, GetActiveWindow());
|
||||
ok(GetFocus() == parent, "expected focus %p, got %p\n", parent, GetFocus());
|
||||
|
||||
SetLastError(0xdeadbeef);
|
||||
old_focus = SetFocus(wnd_event.hwnd);
|
||||
ok(GetLastError() == ERROR_ACCESS_DENIED /* Vista+ */ ||
|
||||
broken(GetLastError() == 0xdeadbeef), "expected ERROR_ACCESS_DENIED, got %d\n", GetLastError());
|
||||
while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) DispatchMessage(&msg);
|
||||
ok_sequence(WmEmptySeq, "SetFocus on another thread window", TRUE);
|
||||
ok(old_focus == 0, "expected old focus 0, got %p\n", old_focus);
|
||||
ok(GetActiveWindow() == parent, "expected active %p, got %p\n", parent, GetActiveWindow());
|
||||
ok(GetFocus() == parent, "expected focus %p, got %p\n", parent, GetFocus());
|
||||
|
||||
SetLastError(0xdeadbeef);
|
||||
old_active = SetActiveWindow((HWND)0xdeadbeef);
|
||||
ok(GetLastError() == ERROR_INVALID_WINDOW_HANDLE || broken(GetLastError() == 0xdeadbeef),
|
||||
"expected ERROR_INVALID_WINDOW_HANDLE, got %d\n", GetLastError());
|
||||
while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) DispatchMessage(&msg);
|
||||
ok_sequence(WmEmptySeq, "SetActiveWindow on an invalid window", FALSE);
|
||||
ok(old_active == 0, "expected old focus 0, got %p\n", old_active);
|
||||
ok(GetActiveWindow() == parent, "expected active %p, got %p\n", parent, GetActiveWindow());
|
||||
ok(GetFocus() == parent, "expected focus %p, got %p\n", parent, GetFocus());
|
||||
|
||||
SetLastError(0xdeadbeef);
|
||||
old_active = SetActiveWindow(GetDesktopWindow());
|
||||
todo_wine
|
||||
ok(GetLastError() == 0xdeadbeef, "expected 0xdeadbeef, got %d\n", GetLastError());
|
||||
while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) DispatchMessage(&msg);
|
||||
ok_sequence(WmEmptySeq, "SetActiveWindow on a desktop window", TRUE);
|
||||
ok(old_active == 0, "expected old focus 0, got %p\n", old_focus);
|
||||
ok(GetActiveWindow() == parent, "expected active %p, got %p\n", parent, GetActiveWindow());
|
||||
ok(GetFocus() == parent, "expected focus %p, got %p\n", parent, GetFocus());
|
||||
|
||||
SetLastError(0xdeadbeef);
|
||||
old_active = SetActiveWindow(wnd_event.hwnd);
|
||||
todo_wine
|
||||
ok(GetLastError() == 0xdeadbeef, "expected 0xdeadbeef, got %d\n", GetLastError());
|
||||
while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) DispatchMessage(&msg);
|
||||
ok_sequence(WmEmptySeq, "SetActiveWindow on another thread window", TRUE);
|
||||
ok(old_active == 0, "expected old focus 0, got %p\n", old_active);
|
||||
ok(GetActiveWindow() == parent, "expected active %p, got %p\n", parent, GetActiveWindow());
|
||||
ok(GetFocus() == parent, "expected focus %p, got %p\n", parent, GetFocus());
|
||||
|
||||
SetLastError(0xdeadbeef);
|
||||
ret = AttachThreadInput(GetCurrentThreadId(), tid, TRUE);
|
||||
ok(ret, "AttachThreadInput error %d\n", GetLastError());
|
||||
|
||||
todo_wine {
|
||||
ok(GetActiveWindow() == parent, "expected active %p, got %p\n", parent, GetActiveWindow());
|
||||
ok(GetFocus() == parent, "expected focus %p, got %p\n", parent, GetFocus());
|
||||
}
|
||||
flush_events();
|
||||
flush_sequence();
|
||||
|
||||
old_focus = SetFocus(wnd_event.hwnd);
|
||||
while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) DispatchMessage(&msg);
|
||||
ok(old_focus == wnd_event.hwnd, "expected old focus %p, got %p\n", wnd_event.hwnd, old_focus);
|
||||
ok(GetActiveWindow() == wnd_event.hwnd, "expected active %p, got %p\n", wnd_event.hwnd, GetActiveWindow());
|
||||
ok(GetFocus() == wnd_event.hwnd, "expected focus %p, got %p\n", wnd_event.hwnd, GetFocus());
|
||||
|
||||
old_focus = SetFocus(parent);
|
||||
while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) DispatchMessage(&msg);
|
||||
ok(old_focus == parent, "expected old focus %p, got %p\n", parent, old_focus);
|
||||
ok(GetActiveWindow() == parent, "expected active %p, got %p\n", parent, GetActiveWindow());
|
||||
ok(GetFocus() == parent, "expected focus %p, got %p\n", parent, GetFocus());
|
||||
|
||||
flush_events();
|
||||
flush_sequence();
|
||||
|
||||
old_active = SetActiveWindow(wnd_event.hwnd);
|
||||
while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) DispatchMessage(&msg);
|
||||
ok(old_active == parent, "expected old focus %p, got %p\n", parent, old_active);
|
||||
ok(GetActiveWindow() == wnd_event.hwnd, "expected active %p, got %p\n", wnd_event.hwnd, GetActiveWindow());
|
||||
ok(GetFocus() == wnd_event.hwnd, "expected focus %p, got %p\n", wnd_event.hwnd, GetFocus());
|
||||
|
||||
SetLastError(0xdeadbeef);
|
||||
ret = AttachThreadInput(GetCurrentThreadId(), tid, FALSE);
|
||||
ok(ret, "AttachThreadInput error %d\n", GetLastError());
|
||||
|
||||
ok(GetActiveWindow() == 0, "expected active 0, got %p\n", GetActiveWindow());
|
||||
ok(GetFocus() == 0, "expected focus 0, got %p\n", GetFocus());
|
||||
|
||||
old_parent = SetParent(child, GetDesktopWindow());
|
||||
ok(old_parent == parent, "expected old parent %p, got %p\n", parent, old_parent);
|
||||
|
||||
ok(GetActiveWindow() == 0, "expected active 0, got %p\n", GetActiveWindow());
|
||||
ok(GetFocus() == 0, "expected focus 0, got %p\n", GetFocus());
|
||||
|
||||
old_focus = SetFocus(parent);
|
||||
while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) DispatchMessage(&msg);
|
||||
ok(old_focus == parent, "expected old focus %p, got %p\n", parent, old_focus);
|
||||
ok(GetActiveWindow() == parent, "expected active %p, got %p\n", parent, GetActiveWindow());
|
||||
ok(GetFocus() == parent, "expected focus %p, got %p\n", parent, GetFocus());
|
||||
|
||||
flush_events();
|
||||
flush_sequence();
|
||||
|
||||
SetLastError(0xdeadbeef);
|
||||
old_focus = SetFocus(child);
|
||||
todo_wine
|
||||
ok(GetLastError() == ERROR_INVALID_PARAMETER /* Vista+ */ ||
|
||||
broken(GetLastError() == 0) /* XP */ ||
|
||||
broken(GetLastError() == 0xdeadbeef), "expected ERROR_INVALID_PARAMETER, got %d\n", GetLastError());
|
||||
while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) DispatchMessage(&msg);
|
||||
ok_sequence(WmSetFocus_3, "SetFocus on a child window", TRUE);
|
||||
ok(old_focus == 0, "expected old focus 0, got %p\n", old_focus);
|
||||
ok(GetActiveWindow() == parent, "expected active %p, got %p\n", parent, GetActiveWindow());
|
||||
ok(GetFocus() == parent, "expected focus %p, got %p\n", parent, GetFocus());
|
||||
|
||||
SetLastError(0xdeadbeef);
|
||||
old_active = SetActiveWindow(child);
|
||||
ok(GetLastError() == 0xdeadbeef, "expected 0xdeadbeef, got %d\n", GetLastError());
|
||||
while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) DispatchMessage(&msg);
|
||||
ok_sequence(WmEmptySeq, "SetActiveWindow on a child window", FALSE);
|
||||
ok(old_active == parent, "expected old active %p, got %p\n", parent, old_active);
|
||||
ok(GetActiveWindow() == parent, "expected active %p, got %p\n", parent, GetActiveWindow());
|
||||
ok(GetFocus() == parent, "expected focus %p, got %p\n", parent, GetFocus());
|
||||
|
||||
log_all_parent_messages--;
|
||||
|
||||
DestroyWindow(child);
|
||||
DestroyWindow(parent);
|
||||
|
||||
ret = PostMessage(wnd_event.hwnd, WM_QUIT, 0, 0);
|
||||
ok(ret, "PostMessage(WM_QUIT) error %d\n", GetLastError());
|
||||
ret = WaitForSingleObject(hthread, INFINITE);
|
||||
ok(ret == WAIT_OBJECT_0, "WaitForSingleObject failed\n");
|
||||
CloseHandle(hthread);
|
||||
}
|
||||
|
||||
START_TEST(msg)
|
||||
{
|
||||
char **test_argv;
|
||||
|
@ -13533,6 +13781,7 @@ START_TEST(msg)
|
|||
hEvent_hook = 0;
|
||||
#endif
|
||||
|
||||
test_SetFocus();
|
||||
test_SetParent();
|
||||
test_PostMessage();
|
||||
test_ShowWindow();
|
||||
|
@ -13572,6 +13821,7 @@ START_TEST(msg)
|
|||
test_SetWindowRgn();
|
||||
test_sys_menu();
|
||||
test_dialog_messages();
|
||||
test_EndDialog();
|
||||
test_nullCallback();
|
||||
test_dbcs_wm_char();
|
||||
test_menu_messages();
|
||||
|
|
|
@ -90,7 +90,7 @@ static void test_LoadStringA (void)
|
|||
{sizeof str, sizeof str - 1},
|
||||
{sizeof str - 1, sizeof str - 2}};
|
||||
unsigned int i;
|
||||
int ret;
|
||||
int ret, ret2;
|
||||
|
||||
assert (sizeof str < sizeof buf);
|
||||
for (i = 0; i < sizeof tests / sizeof tests[0]; i++) {
|
||||
|
@ -110,17 +110,17 @@ static void test_LoadStringA (void)
|
|||
|
||||
ret = LoadStringA(hInst, 1, buf, sizeof(buf) );
|
||||
ok( ret > 0, "LoadString failed: ret %d err %d\n", ret, GetLastError());
|
||||
ok( LoadStringA( hInst, MAKELONG( 1, 0x8000 ), buf, sizeof(buf)) == ret,
|
||||
"LoadString failed: ret %d err %d\n", ret, GetLastError());
|
||||
ok( LoadStringA( hInst, MAKELONG( 1, 0xffff ), buf, sizeof(buf)) == ret,
|
||||
"LoadString failed: ret %d err %d\n", ret, GetLastError());
|
||||
ret2 = LoadStringA( hInst, MAKELONG( 1, 0x8000 ), buf, sizeof(buf));
|
||||
ok( ret2 == ret, "LoadString failed: ret %d err %d\n", ret, GetLastError());
|
||||
ret2 = LoadStringA( hInst, MAKELONG( 1, 0xffff ), buf, sizeof(buf));
|
||||
ok( ret2 == ret, "LoadString failed: ret %d err %d\n", ret, GetLastError());
|
||||
|
||||
ret = LoadStringA(hInst, 65534, buf, sizeof(buf) );
|
||||
ok( ret > 0, "LoadString failed: ret %d err %d\n", ret, GetLastError());
|
||||
ok( LoadStringA( hInst, MAKELONG( 65534, 0x8000 ), buf, sizeof(buf)) == ret,
|
||||
"LoadString failed: ret %d err %d\n", ret, GetLastError());
|
||||
ok( LoadStringA( hInst, MAKELONG( 65534, 0xffff ), buf, sizeof(buf)) == ret,
|
||||
"LoadString failed: ret %d err %d\n", ret, GetLastError());
|
||||
ret2 = LoadStringA( hInst, MAKELONG( 65534, 0x8000 ), buf, sizeof(buf));
|
||||
ok( ret2 == ret, "LoadString failed: ret %d err %d\n", ret, GetLastError());
|
||||
ret2 = LoadStringA( hInst, MAKELONG( 65534, 0xffff ), buf, sizeof(buf));
|
||||
ok( ret2 == ret, "LoadString failed: ret %d err %d\n", ret, GetLastError());
|
||||
|
||||
ret = LoadStringA(hInst, 0, buf, 0);
|
||||
ok( ret == -1 || broken(ret == 0),
|
||||
|
|
|
@ -45,6 +45,16 @@ STRINGTABLE
|
|||
65534 "Test high id"
|
||||
}
|
||||
|
||||
/* Test dialog with a mixed style WS_CHILD | WS_POPUP control */
|
||||
TEST_DLG_CHILD_POPUP DIALOG 0, 0, 60, 30
|
||||
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Test dialog with mixed style controls"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
{
|
||||
CONTROL "bump7",7,"static",WS_CHILD|WS_POPUP|WS_BORDER,0,0,40,10,WS_EX_TRANSPARENT
|
||||
CONTROL "bump8",8,"static",WS_POPUP,0,10,40,10,WS_EX_TRANSPARENT
|
||||
}
|
||||
|
||||
TEST_DIALOG DIALOG 0, 0, 60, 30
|
||||
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
|
||||
CAPTION "Test dialog"
|
||||
|
@ -89,6 +99,14 @@ FONT 8, "MS Shell Dlg"
|
|||
EDITTEXT 200,4,4,50,14
|
||||
}
|
||||
|
||||
FOCUS_TEST_DIALOG_2 DIALOG 0, 0, 60, 30
|
||||
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Test dialog"
|
||||
FONT 8, "MS Shell Dlg"
|
||||
{
|
||||
LTEXT "Hello world", 200,4,4,50,14
|
||||
}
|
||||
|
||||
IDD_DIALOG DIALOG 0, 0, 186, 95
|
||||
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Dialog"
|
||||
|
|
|
@ -302,13 +302,10 @@ todo_wine
|
|||
if (bThemeActive || style != WS_HSCROLL)
|
||||
todo_wine
|
||||
ok( (winstyle & (WS_HSCROLL|WS_VSCROLL)) == ( style | WS_VSCROLL),
|
||||
"unexpected style change %8lx expected %8lx\n",
|
||||
(winstyle & (WS_HSCROLL|WS_VSCROLL)), style | WS_VSCROLL);
|
||||
"unexpected style change %08x/%08x\n", winstyle, style);
|
||||
else
|
||||
ok( (winstyle & (WS_HSCROLL|WS_VSCROLL)) == style ||
|
||||
broken((winstyle & (WS_HSCROLL|WS_VSCROLL)) == (WS_HSCROLL|WS_VSCROLL)), /* Win 9x/ME */
|
||||
"unexpected style change %8lx expected %8x\n",
|
||||
(winstyle & (WS_HSCROLL|WS_VSCROLL)), style);
|
||||
ok( (winstyle & (WS_HSCROLL|WS_VSCROLL)) == style,
|
||||
"unexpected style change %08x/%08x\n", winstyle, style);
|
||||
}
|
||||
/* do the test again with H and V reversed.
|
||||
* Start with a clean window */
|
||||
|
@ -341,13 +338,10 @@ todo_wine
|
|||
if (bThemeActive || style != WS_VSCROLL)
|
||||
todo_wine
|
||||
ok( (winstyle & (WS_HSCROLL|WS_VSCROLL)) == ( style | WS_HSCROLL),
|
||||
"unexpected style change %8lx expected %8lx\n",
|
||||
(winstyle & (WS_HSCROLL|WS_VSCROLL)), style | WS_HSCROLL);
|
||||
"unexpected style change %08x/%08x\n", winstyle, style);
|
||||
else
|
||||
ok( (winstyle & (WS_HSCROLL|WS_VSCROLL)) == style ||
|
||||
broken((winstyle & (WS_HSCROLL|WS_VSCROLL)) == (WS_HSCROLL|WS_VSCROLL)), /* Win 9x/ME */
|
||||
"unexpected style change %8lx expected %8x\n",
|
||||
(winstyle & (WS_HSCROLL|WS_VSCROLL)), style);
|
||||
ok( (winstyle & (WS_HSCROLL|WS_VSCROLL)) == style,
|
||||
"unexpected style change %08x/%08x\n", winstyle, style);
|
||||
}
|
||||
/* Slightly change the test to use SetScrollInfo
|
||||
* Start with a clean window */
|
||||
|
|
|
@ -17,7 +17,6 @@
|
|||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#include <assert.h>
|
||||
#include <stdarg.h>
|
||||
#include <stdio.h>
|
||||
|
||||
|
|
|
@ -25,6 +25,8 @@
|
|||
#undef _WIN32_WINNT
|
||||
#define _WIN32_WINNT 0x0600 /* For SPI_GETMOUSEHOVERWIDTH and more */
|
||||
//#define _WIN32_IE 0x0700
|
||||
#undef WINVER
|
||||
#define WINVER 0x0600 /* For COLOR_MENUBAR, NONCLIENTMETRICS with padding */
|
||||
|
||||
#include "wine/test.h"
|
||||
#include "windef.h"
|
||||
|
@ -682,7 +684,7 @@ static BOOL test_setborder(UINT curr_val, int usesetborder, int dpi)
|
|||
INT frame;
|
||||
NONCLIENTMETRICSA ncm;
|
||||
|
||||
ncm.cbSize = sizeof( ncm);
|
||||
ncm.cbSize = FIELD_OFFSET(NONCLIENTMETRICS, iPaddedBorderWidth);
|
||||
rc=SystemParametersInfo( SPI_GETNONCLIENTMETRICS, 0, &ncm, 0);
|
||||
ok(rc!=0,"SystemParametersInfoA: rc=%d err=%d\n",rc,GetLastError());
|
||||
if( usesetborder) {
|
||||
|
@ -727,11 +729,11 @@ static void test_SPI_SETBORDER( void ) /* 6 */
|
|||
{
|
||||
BOOL rc;
|
||||
UINT old_border;
|
||||
NONCLIENTMETRICSA ncmsave;
|
||||
NONCLIENTMETRICS ncmsave;
|
||||
INT CaptionWidth,
|
||||
PaddedBorderWidth;
|
||||
|
||||
ncmsave.cbSize = sizeof( ncmsave);
|
||||
ncmsave.cbSize = FIELD_OFFSET(NONCLIENTMETRICS, iPaddedBorderWidth);
|
||||
rc=SystemParametersInfo( SPI_GETNONCLIENTMETRICS, 0, &ncmsave, 0);
|
||||
if( !rc) {
|
||||
win_skip("SPI_GETNONCLIENTMETRICS is not available\n");
|
||||
|
@ -1415,10 +1417,10 @@ static void test_SPI_SETNONCLIENTMETRICS( void ) /* 44 */
|
|||
NONCLIENTMETRICSA Ncmcur;
|
||||
NONCLIENTMETRICSA Ncmstart;
|
||||
|
||||
Ncmorig.cbSize = sizeof(NONCLIENTMETRICSA);
|
||||
Ncmnew.cbSize = sizeof(NONCLIENTMETRICSA);
|
||||
Ncmcur.cbSize = sizeof(NONCLIENTMETRICSA);
|
||||
Ncmstart.cbSize = sizeof(NONCLIENTMETRICSA);
|
||||
Ncmorig.cbSize = FIELD_OFFSET(NONCLIENTMETRICSA, iPaddedBorderWidth);
|
||||
Ncmnew.cbSize = FIELD_OFFSET(NONCLIENTMETRICSA, iPaddedBorderWidth);
|
||||
Ncmcur.cbSize = FIELD_OFFSET(NONCLIENTMETRICSA, iPaddedBorderWidth);
|
||||
Ncmstart.cbSize = FIELD_OFFSET(NONCLIENTMETRICSA, iPaddedBorderWidth);
|
||||
|
||||
trace("testing SPI_{GET,SET}NONCLIENTMETRICS\n");
|
||||
change_counter = 0;
|
||||
|
@ -2574,8 +2576,28 @@ static void test_GetSystemMetrics( void)
|
|||
NONCLIENTMETRICS ncm;
|
||||
SIZE screen;
|
||||
|
||||
assert(sizeof(ncm) == 344);
|
||||
|
||||
ncm.cbSize = FIELD_OFFSET(NONCLIENTMETRICS, iPaddedBorderWidth);
|
||||
rc = SystemParametersInfo(SPI_GETNONCLIENTMETRICS, 0, &ncm, 0);
|
||||
ok(rc, "SystemParametersInfoA failed\n");
|
||||
|
||||
ncm.cbSize = FIELD_OFFSET(NONCLIENTMETRICS, iPaddedBorderWidth) - 1;
|
||||
rc = SystemParametersInfo(SPI_GETNONCLIENTMETRICS, 0, &ncm, 0);
|
||||
ok(!rc, "SystemParametersInfoA should fail\n");
|
||||
|
||||
ncm.cbSize = FIELD_OFFSET(NONCLIENTMETRICS, iPaddedBorderWidth) + 1;
|
||||
SetLastError(0xdeadbeef);
|
||||
rc = SystemParametersInfo(SPI_GETNONCLIENTMETRICS, 0, &ncm, 0);
|
||||
ok(!rc, "SystemParametersInfoA should fail\n");
|
||||
|
||||
ncm.cbSize = sizeof(ncm); /* Vista added padding */
|
||||
SetLastError(0xdeadbeef);
|
||||
rc = SystemParametersInfo(SPI_GETNONCLIENTMETRICS, 0, &ncm, 0);
|
||||
ok(rc || broken(!rc) /* before Vista */, "SystemParametersInfoA failed\n");
|
||||
|
||||
minim.cbSize = sizeof( minim);
|
||||
ncm.cbSize = sizeof( ncm);
|
||||
ncm.cbSize = FIELD_OFFSET(NONCLIENTMETRICS, iPaddedBorderWidth);
|
||||
SystemParametersInfo( SPI_GETMINIMIZEDMETRICS, 0, &minim, 0);
|
||||
rc = SystemParametersInfo( SPI_GETNONCLIENTMETRICS, 0, &ncm, 0);
|
||||
if( !rc) {
|
||||
|
|
|
@ -2513,7 +2513,7 @@ static LRESULT WINAPI set_focus_on_activate_proc(HWND hwnd, UINT msg, WPARAM wp,
|
|||
|
||||
static void test_SetFocus(HWND hwnd)
|
||||
{
|
||||
HWND child, child2;
|
||||
HWND child, child2, ret;
|
||||
WNDPROC old_wnd_proc;
|
||||
|
||||
/* check if we can set focus to non-visible windows */
|
||||
|
@ -2588,9 +2588,32 @@ todo_wine
|
|||
ok( GetActiveWindow() == hwnd, "parent window %p should be active\n", hwnd);
|
||||
todo_wine
|
||||
ok( GetFocus() == child, "Focus should be on child %p, not %p\n", child, GetFocus() );
|
||||
|
||||
SetWindowLongPtr(hwnd, GWLP_WNDPROC, (LONG_PTR)old_wnd_proc);
|
||||
|
||||
SetFocus( hwnd );
|
||||
SetParent( child, GetDesktopWindow());
|
||||
SetParent( child2, child );
|
||||
ok( GetActiveWindow() == hwnd, "parent window %p should be active\n", hwnd);
|
||||
ok( GetFocus() == hwnd, "Focus should be on parent %p\n", hwnd );
|
||||
ret = SetFocus( child2 );
|
||||
ok( ret == 0, "SetFocus %p should fail\n", child2);
|
||||
ok( GetActiveWindow() == hwnd, "parent window %p should be active\n", hwnd);
|
||||
ok( GetFocus() == hwnd, "Focus should be on parent %p\n", hwnd );
|
||||
ret = SetFocus( child );
|
||||
ok( ret == 0, "SetFocus %p should fail\n", child);
|
||||
ok( GetActiveWindow() == hwnd, "parent window %p should be active\n", hwnd);
|
||||
ok( GetFocus() == hwnd, "Focus should be on parent %p\n", hwnd );
|
||||
SetWindowLongW( child, GWL_STYLE, WS_POPUP|WS_CHILD );
|
||||
SetFocus( child2 );
|
||||
ok( GetActiveWindow() == child, "child window %p should be active\n", child);
|
||||
ok( GetFocus() == child2, "Focus should be on child2 %p\n", child2 );
|
||||
SetFocus( hwnd );
|
||||
ok( GetActiveWindow() == hwnd, "parent window %p should be active\n", hwnd);
|
||||
ok( GetFocus() == hwnd, "Focus should be on parent %p\n", hwnd );
|
||||
SetFocus( child );
|
||||
ok( GetActiveWindow() == child, "child window %p should be active\n", child);
|
||||
ok( GetFocus() == child, "Focus should be on child %p\n", child );
|
||||
|
||||
DestroyWindow( child2 );
|
||||
DestroyWindow( child );
|
||||
}
|
||||
|
@ -3642,7 +3665,7 @@ static LRESULT WINAPI StyleCheckProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM
|
|||
ok(!(lpcs->dwExStyle & WS_EX_WINDOWEDGE), "Window shouldn't have WS_EX_WINDOWEDGE style\n");
|
||||
|
||||
ok((lpss->styleOld & ~WS_EX_WINDOWEDGE) == (lpcs->dwExStyle & ~WS_EX_WINDOWEDGE),
|
||||
"Ex style (0x%08lx) should match what the caller passed to CreateWindowEx (0x%08lx)\n",
|
||||
"Ex style (0x%08x) should match what the caller passed to CreateWindowEx (0x%08x)\n",
|
||||
(lpss->styleOld & ~WS_EX_WINDOWEDGE), (lpcs->dwExStyle & ~WS_EX_WINDOWEDGE));
|
||||
|
||||
ok(lpss->styleNew == lpcs->style,
|
||||
|
@ -3673,6 +3696,7 @@ static void register_style_check_class(void)
|
|||
};
|
||||
|
||||
atomStyleCheckClass = RegisterClass(&wc);
|
||||
assert(atomStyleCheckClass);
|
||||
}
|
||||
|
||||
static void check_window_style(DWORD dwStyleIn, DWORD dwExStyleIn, DWORD dwStyleOut, DWORD dwExStyleOut)
|
||||
|
@ -3700,28 +3724,42 @@ static void check_window_style(DWORD dwStyleIn, DWORD dwExStyleIn, DWORD dwStyle
|
|||
|
||||
dwActualStyle = GetWindowLong(hwnd, GWL_STYLE);
|
||||
dwActualExStyle = GetWindowLong(hwnd, GWL_EXSTYLE);
|
||||
ok((dwActualStyle == dwStyleOut) && (dwActualExStyle == dwExStyleOut),
|
||||
"Style (0x%08x) should really be 0x%08x and/or Ex style (0x%08x) should really be 0x%08x\n",
|
||||
dwActualStyle, dwStyleOut, dwActualExStyle, dwExStyleOut);
|
||||
ok(dwActualStyle == dwStyleOut, "expected style %#x, got %#x\n", dwStyleOut, dwActualStyle);
|
||||
ok(dwActualExStyle == dwExStyleOut, "expected ex_style %#x, got %#x\n", dwExStyleOut, dwActualExStyle);
|
||||
|
||||
/* try setting the styles explicitly */
|
||||
SetWindowLong( hwnd, GWL_EXSTYLE, dwExStyleIn );
|
||||
dwActualStyle = GetWindowLong(hwnd, GWL_STYLE);
|
||||
dwActualExStyle = GetWindowLong(hwnd, GWL_EXSTYLE);
|
||||
/* WS_EX_WINDOWEDGE can't always be changed */
|
||||
if (dwExStyleIn & WS_EX_DLGMODALFRAME)
|
||||
dwExStyleOut = dwExStyleIn | WS_EX_WINDOWEDGE;
|
||||
else if ((dwActualStyle & (WS_DLGFRAME | WS_THICKFRAME)) && !(dwExStyleIn & WS_EX_STATICEDGE))
|
||||
dwExStyleOut = dwExStyleIn | WS_EX_WINDOWEDGE;
|
||||
else
|
||||
dwExStyleOut = dwExStyleIn & ~WS_EX_WINDOWEDGE;
|
||||
ok(dwActualStyle == dwStyleOut, "expected style %#x, got %#x\n", dwStyleOut, dwActualStyle);
|
||||
ok(dwActualExStyle == dwExStyleOut, "expected ex_style %#x, got %#x\n", dwExStyleOut, dwActualExStyle);
|
||||
|
||||
SetWindowLong( hwnd, GWL_STYLE, dwStyleIn );
|
||||
dwActualStyle = GetWindowLong(hwnd, GWL_STYLE);
|
||||
dwActualExStyle = GetWindowLong(hwnd, GWL_EXSTYLE);
|
||||
/* WS_CLIPSIBLINGS can't be reset on top-level windows */
|
||||
if (dwStyleIn & WS_CHILD) dwStyleOut = dwStyleIn;
|
||||
if ((dwStyleIn & (WS_CHILD|WS_POPUP)) == WS_CHILD) dwStyleOut = dwStyleIn;
|
||||
else dwStyleOut = dwStyleIn | WS_CLIPSIBLINGS;
|
||||
/* WS_EX_WINDOWEDGE can't always be changed */
|
||||
if ((dwExStyleIn & WS_EX_DLGMODALFRAME) || (dwStyleIn & WS_THICKFRAME))
|
||||
if (dwExStyleIn & WS_EX_DLGMODALFRAME)
|
||||
dwExStyleOut = dwExStyleIn | WS_EX_WINDOWEDGE;
|
||||
else if ((dwActualStyle & (WS_DLGFRAME | WS_THICKFRAME)) && !(dwExStyleIn & WS_EX_STATICEDGE))
|
||||
dwExStyleOut = dwExStyleIn | WS_EX_WINDOWEDGE;
|
||||
else if (dwStyleIn & (WS_CHILD | WS_POPUP))
|
||||
dwExStyleOut = dwExStyleIn & ~WS_EX_WINDOWEDGE;
|
||||
else
|
||||
dwExStyleOut = dwExStyleIn;
|
||||
ok((dwActualStyle == dwStyleOut) && (dwActualExStyle == dwExStyleOut),
|
||||
"%08x/%08x: Style (0x%08x) should really be 0x%08x and/or Ex style (0x%08x) should really be 0x%08x\n",
|
||||
dwStyleIn, dwExStyleIn, dwActualStyle, dwStyleOut, dwActualExStyle, dwExStyleOut);
|
||||
dwExStyleOut = dwExStyleIn & ~WS_EX_WINDOWEDGE;
|
||||
ok(dwActualStyle == dwStyleOut, "expected style %#x, got %#x\n", dwStyleOut, dwActualStyle);
|
||||
/* FIXME: Remove the condition below once Wine is fixed */
|
||||
if (dwActualExStyle != dwExStyleOut)
|
||||
todo_wine ok(dwActualExStyle == dwExStyleOut, "expected ex_style %#x, got %#x\n", dwExStyleOut, dwActualExStyle);
|
||||
else
|
||||
ok(dwActualExStyle == dwExStyleOut, "expected ex_style %#x, got %#x\n", dwExStyleOut, dwActualExStyle);
|
||||
|
||||
DestroyWindow(hwnd);
|
||||
if (hwndParent) DestroyWindow(hwndParent);
|
||||
|
@ -3733,14 +3771,36 @@ static void test_window_styles(void)
|
|||
register_style_check_class();
|
||||
|
||||
check_window_style(0, 0, WS_CLIPSIBLINGS|WS_CAPTION, WS_EX_WINDOWEDGE);
|
||||
check_window_style(WS_DLGFRAME, 0, WS_CLIPSIBLINGS|WS_CAPTION, WS_EX_WINDOWEDGE);
|
||||
check_window_style(WS_THICKFRAME, 0, WS_THICKFRAME|WS_CLIPSIBLINGS|WS_CAPTION, WS_EX_WINDOWEDGE);
|
||||
check_window_style(WS_DLGFRAME, WS_EX_STATICEDGE, WS_CLIPSIBLINGS|WS_CAPTION, WS_EX_WINDOWEDGE|WS_EX_STATICEDGE);
|
||||
check_window_style(WS_THICKFRAME, WS_EX_STATICEDGE, WS_THICKFRAME|WS_CLIPSIBLINGS|WS_CAPTION, WS_EX_WINDOWEDGE|WS_EX_STATICEDGE);
|
||||
check_window_style(WS_OVERLAPPEDWINDOW, 0, WS_CLIPSIBLINGS|WS_OVERLAPPEDWINDOW, WS_EX_WINDOWEDGE);
|
||||
check_window_style(WS_CHILD, 0, WS_CHILD, 0);
|
||||
check_window_style(WS_CHILD|WS_DLGFRAME, 0, WS_CHILD|WS_DLGFRAME, WS_EX_WINDOWEDGE);
|
||||
check_window_style(WS_CHILD|WS_THICKFRAME, 0, WS_CHILD|WS_THICKFRAME, WS_EX_WINDOWEDGE);
|
||||
check_window_style(WS_CHILD|WS_DLGFRAME, WS_EX_STATICEDGE, WS_CHILD|WS_DLGFRAME, WS_EX_STATICEDGE);
|
||||
check_window_style(WS_CHILD|WS_THICKFRAME, WS_EX_STATICEDGE, WS_CHILD|WS_THICKFRAME, WS_EX_STATICEDGE);
|
||||
check_window_style(WS_CHILD|WS_CAPTION, 0, WS_CHILD|WS_CAPTION, WS_EX_WINDOWEDGE);
|
||||
check_window_style(WS_CHILD|WS_CAPTION|WS_SYSMENU, 0, WS_CHILD|WS_CAPTION|WS_SYSMENU, WS_EX_WINDOWEDGE);
|
||||
check_window_style(WS_CHILD, WS_EX_WINDOWEDGE, WS_CHILD, 0);
|
||||
check_window_style(WS_CHILD, WS_EX_DLGMODALFRAME, WS_CHILD, WS_EX_WINDOWEDGE|WS_EX_DLGMODALFRAME);
|
||||
check_window_style(WS_CHILD, WS_EX_DLGMODALFRAME|WS_EX_STATICEDGE, WS_CHILD, WS_EX_STATICEDGE|WS_EX_WINDOWEDGE|WS_EX_DLGMODALFRAME);
|
||||
check_window_style(WS_CHILD|WS_POPUP, 0, WS_CHILD|WS_POPUP|WS_CLIPSIBLINGS, 0);
|
||||
check_window_style(WS_CHILD|WS_POPUP|WS_DLGFRAME, 0, WS_CHILD|WS_POPUP|WS_DLGFRAME|WS_CLIPSIBLINGS, WS_EX_WINDOWEDGE);
|
||||
check_window_style(WS_CHILD|WS_POPUP|WS_THICKFRAME, 0, WS_CHILD|WS_POPUP|WS_THICKFRAME|WS_CLIPSIBLINGS, WS_EX_WINDOWEDGE);
|
||||
check_window_style(WS_CHILD|WS_POPUP|WS_DLGFRAME, WS_EX_STATICEDGE, WS_CHILD|WS_POPUP|WS_DLGFRAME|WS_CLIPSIBLINGS, WS_EX_STATICEDGE);
|
||||
check_window_style(WS_CHILD|WS_POPUP|WS_THICKFRAME, WS_EX_STATICEDGE, WS_CHILD|WS_POPUP|WS_THICKFRAME|WS_CLIPSIBLINGS, WS_EX_STATICEDGE);
|
||||
check_window_style(WS_CHILD|WS_POPUP, WS_EX_APPWINDOW, WS_CHILD|WS_POPUP|WS_CLIPSIBLINGS, WS_EX_APPWINDOW);
|
||||
check_window_style(WS_CHILD|WS_POPUP, WS_EX_WINDOWEDGE, WS_CHILD|WS_POPUP|WS_CLIPSIBLINGS, 0);
|
||||
check_window_style(WS_CHILD, WS_EX_WINDOWEDGE, WS_CHILD, 0);
|
||||
check_window_style(0, WS_EX_TOOLWINDOW, WS_CLIPSIBLINGS|WS_CAPTION, WS_EX_WINDOWEDGE|WS_EX_TOOLWINDOW);
|
||||
check_window_style(WS_POPUP, 0, WS_POPUP|WS_CLIPSIBLINGS, 0);
|
||||
check_window_style(WS_POPUP, WS_EX_WINDOWEDGE, WS_POPUP|WS_CLIPSIBLINGS, 0);
|
||||
check_window_style(WS_CHILD, WS_EX_DLGMODALFRAME, WS_CHILD, WS_EX_WINDOWEDGE|WS_EX_DLGMODALFRAME);
|
||||
check_window_style(WS_CHILD, WS_EX_DLGMODALFRAME|WS_EX_STATICEDGE, WS_CHILD, WS_EX_STATICEDGE|WS_EX_WINDOWEDGE|WS_EX_DLGMODALFRAME);
|
||||
check_window_style(WS_POPUP|WS_DLGFRAME, 0, WS_POPUP|WS_DLGFRAME|WS_CLIPSIBLINGS, WS_EX_WINDOWEDGE);
|
||||
check_window_style(WS_POPUP|WS_THICKFRAME, 0, WS_POPUP|WS_THICKFRAME|WS_CLIPSIBLINGS, WS_EX_WINDOWEDGE);
|
||||
check_window_style(WS_POPUP|WS_DLGFRAME, WS_EX_STATICEDGE, WS_POPUP|WS_DLGFRAME|WS_CLIPSIBLINGS, WS_EX_STATICEDGE);
|
||||
check_window_style(WS_POPUP|WS_THICKFRAME, WS_EX_STATICEDGE, WS_POPUP|WS_THICKFRAME|WS_CLIPSIBLINGS, WS_EX_STATICEDGE);
|
||||
check_window_style(WS_CAPTION, WS_EX_STATICEDGE, WS_CLIPSIBLINGS|WS_CAPTION, WS_EX_STATICEDGE|WS_EX_WINDOWEDGE);
|
||||
check_window_style(0, WS_EX_APPWINDOW, WS_CLIPSIBLINGS|WS_CAPTION, WS_EX_APPWINDOW|WS_EX_WINDOWEDGE);
|
||||
|
||||
|
@ -3753,6 +3813,175 @@ static void test_window_styles(void)
|
|||
}
|
||||
}
|
||||
|
||||
static INT_PTR WINAPI empty_dlg_proc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void check_dialog_style(DWORD style_in, DWORD ex_style_in, DWORD style_out, DWORD ex_style_out)
|
||||
{
|
||||
struct
|
||||
{
|
||||
DLGTEMPLATE dt;
|
||||
WORD menu_name;
|
||||
WORD class_id;
|
||||
WORD class_atom;
|
||||
WCHAR caption[1];
|
||||
} dlg_data;
|
||||
DWORD style, ex_style;
|
||||
HWND hwnd, parent = 0;
|
||||
|
||||
if (style_in & WS_CHILD)
|
||||
parent = CreateWindowEx(0, "static", NULL, WS_OVERLAPPEDWINDOW,
|
||||
0, 0, 0, 0, NULL, NULL, NULL, NULL);
|
||||
|
||||
dlg_data.dt.style = style_in;
|
||||
dlg_data.dt.dwExtendedStyle = ex_style_in;
|
||||
dlg_data.dt.cdit = 0;
|
||||
dlg_data.dt.x = 0;
|
||||
dlg_data.dt.y = 0;
|
||||
dlg_data.dt.cx = 100;
|
||||
dlg_data.dt.cy = 100;
|
||||
dlg_data.menu_name = 0;
|
||||
dlg_data.class_id = 0;
|
||||
dlg_data.class_atom = 0;
|
||||
dlg_data.caption[0] = 0;
|
||||
|
||||
hwnd = CreateDialogIndirectParam(GetModuleHandle(0), &dlg_data.dt, parent, empty_dlg_proc, 0);
|
||||
ok(hwnd != 0, "dialog creation failed, style %#x, exstyle %#x\n", style_in, ex_style_in);
|
||||
|
||||
flush_events( TRUE );
|
||||
|
||||
style = GetWindowLong(hwnd, GWL_STYLE);
|
||||
ex_style = GetWindowLong(hwnd, GWL_EXSTYLE);
|
||||
ok(style == (style_out | DS_3DLOOK), "expected style %#x, got %#x\n", style_out | DS_3DLOOK, style);
|
||||
ok(ex_style == ex_style_out, "expected ex_style %#x, got %#x\n", ex_style_out, ex_style);
|
||||
|
||||
/* try setting the styles explicitly */
|
||||
SetWindowLong(hwnd, GWL_EXSTYLE, ex_style_in);
|
||||
style = GetWindowLong(hwnd, GWL_STYLE);
|
||||
ex_style = GetWindowLong(hwnd, GWL_EXSTYLE);
|
||||
ok(style == (style_out | DS_3DLOOK), "expected style %#x, got %#x\n", style_out|DS_3DLOOK, style);
|
||||
/* WS_EX_WINDOWEDGE can't always be changed */
|
||||
if (ex_style_in & WS_EX_DLGMODALFRAME)
|
||||
ex_style_out = ex_style_in | WS_EX_WINDOWEDGE;
|
||||
else if ((style & (WS_DLGFRAME | WS_THICKFRAME)) && !(ex_style_in & WS_EX_STATICEDGE))
|
||||
ex_style_out = ex_style_in | WS_EX_WINDOWEDGE;
|
||||
else
|
||||
ex_style_out = ex_style_in & ~WS_EX_WINDOWEDGE;
|
||||
ok(ex_style == ex_style_out, "expected ex_style %#x, got %#x\n", ex_style_out, ex_style);
|
||||
|
||||
SetWindowLong(hwnd, GWL_STYLE, style_in);
|
||||
style = GetWindowLong(hwnd, GWL_STYLE);
|
||||
ex_style = GetWindowLong(hwnd, GWL_EXSTYLE);
|
||||
/* WS_CLIPSIBLINGS can't be reset on top-level windows */
|
||||
if ((style_in & (WS_CHILD | WS_POPUP)) == WS_CHILD) style_out = style_in;
|
||||
else style_out = style_in | WS_CLIPSIBLINGS;
|
||||
ok(style == style_out, "expected style %#x, got %#x\n", style_out, style);
|
||||
/* WS_EX_WINDOWEDGE can't always be changed */
|
||||
if (ex_style_in & WS_EX_DLGMODALFRAME)
|
||||
ex_style_out = ex_style_in | WS_EX_WINDOWEDGE;
|
||||
else if ((style & (WS_DLGFRAME | WS_THICKFRAME)) && !(ex_style_in & WS_EX_STATICEDGE))
|
||||
ex_style_out = ex_style_in | WS_EX_WINDOWEDGE;
|
||||
else
|
||||
ex_style_out = ex_style_in & ~WS_EX_WINDOWEDGE;
|
||||
/* FIXME: Remove the condition below once Wine is fixed */
|
||||
if (ex_style != ex_style_out)
|
||||
todo_wine ok(ex_style == ex_style_out, "expected ex_style %#x, got %#x\n", ex_style_out, ex_style);
|
||||
else
|
||||
ok(ex_style == ex_style_out, "expected ex_style %#x, got %#x\n", ex_style_out, ex_style);
|
||||
|
||||
DestroyWindow(hwnd);
|
||||
DestroyWindow(parent);
|
||||
}
|
||||
|
||||
static void test_dialog_styles(void)
|
||||
{
|
||||
check_dialog_style(0, 0, WS_CLIPSIBLINGS|WS_CAPTION, WS_EX_WINDOWEDGE|WS_EX_CONTROLPARENT);
|
||||
check_dialog_style(WS_DLGFRAME, 0, WS_CLIPSIBLINGS|WS_CAPTION, WS_EX_WINDOWEDGE|WS_EX_CONTROLPARENT);
|
||||
check_dialog_style(WS_THICKFRAME, 0, WS_THICKFRAME|WS_CLIPSIBLINGS|WS_CAPTION, WS_EX_WINDOWEDGE|WS_EX_CONTROLPARENT);
|
||||
check_dialog_style(WS_DLGFRAME, WS_EX_STATICEDGE, WS_CLIPSIBLINGS|WS_CAPTION, WS_EX_WINDOWEDGE|WS_EX_STATICEDGE|WS_EX_CONTROLPARENT);
|
||||
check_dialog_style(WS_THICKFRAME, WS_EX_STATICEDGE, WS_THICKFRAME|WS_CLIPSIBLINGS|WS_CAPTION, WS_EX_WINDOWEDGE|WS_EX_STATICEDGE|WS_EX_CONTROLPARENT);
|
||||
check_dialog_style(DS_CONTROL, 0, WS_CLIPSIBLINGS|WS_CAPTION|DS_CONTROL, WS_EX_WINDOWEDGE|WS_EX_CONTROLPARENT);
|
||||
check_dialog_style(WS_CAPTION, 0, WS_CAPTION|WS_CLIPSIBLINGS, WS_EX_WINDOWEDGE|WS_EX_CONTROLPARENT);
|
||||
check_dialog_style(WS_BORDER, 0, WS_CAPTION|WS_CLIPSIBLINGS, WS_EX_WINDOWEDGE|WS_EX_CONTROLPARENT);
|
||||
check_dialog_style(WS_DLGFRAME, 0, WS_CAPTION|WS_CLIPSIBLINGS, WS_EX_WINDOWEDGE|WS_EX_CONTROLPARENT);
|
||||
check_dialog_style(WS_BORDER|DS_CONTROL, 0, WS_CAPTION|DS_CONTROL|WS_CLIPSIBLINGS, WS_EX_WINDOWEDGE|WS_EX_CONTROLPARENT);
|
||||
check_dialog_style(WS_DLGFRAME|DS_CONTROL, 0, WS_CAPTION|DS_CONTROL|WS_CLIPSIBLINGS, WS_EX_WINDOWEDGE|WS_EX_CONTROLPARENT);
|
||||
check_dialog_style(WS_CAPTION|WS_SYSMENU, 0, WS_CAPTION|WS_SYSMENU|WS_CLIPSIBLINGS, WS_EX_WINDOWEDGE|WS_EX_CONTROLPARENT);
|
||||
check_dialog_style(WS_SYSMENU, 0, WS_CAPTION|WS_SYSMENU|WS_CLIPSIBLINGS, WS_EX_WINDOWEDGE|WS_EX_CONTROLPARENT);
|
||||
check_dialog_style(WS_CAPTION|DS_CONTROL, 0, WS_CAPTION|DS_CONTROL|WS_CLIPSIBLINGS, WS_EX_WINDOWEDGE|WS_EX_CONTROLPARENT);
|
||||
check_dialog_style(WS_SYSMENU|DS_CONTROL, 0, WS_CAPTION|DS_CONTROL|WS_CLIPSIBLINGS, WS_EX_WINDOWEDGE|WS_EX_CONTROLPARENT);
|
||||
check_dialog_style(WS_CAPTION|WS_SYSMENU|DS_CONTROL, 0, WS_CAPTION|DS_CONTROL|WS_CLIPSIBLINGS, WS_EX_WINDOWEDGE|WS_EX_CONTROLPARENT);
|
||||
check_dialog_style(WS_OVERLAPPEDWINDOW, 0, WS_CLIPSIBLINGS|WS_OVERLAPPEDWINDOW, WS_EX_WINDOWEDGE|WS_EX_CONTROLPARENT);
|
||||
check_dialog_style(WS_CHILD, 0, WS_CHILD, 0);
|
||||
check_dialog_style(WS_CHILD|WS_DLGFRAME, 0, WS_CHILD|WS_DLGFRAME, WS_EX_WINDOWEDGE);
|
||||
check_dialog_style(WS_CHILD|WS_THICKFRAME, 0, WS_CHILD|WS_THICKFRAME, WS_EX_WINDOWEDGE);
|
||||
check_dialog_style(WS_CHILD|WS_DLGFRAME, WS_EX_STATICEDGE, WS_CHILD|WS_DLGFRAME, WS_EX_STATICEDGE);
|
||||
check_dialog_style(WS_CHILD|WS_THICKFRAME, WS_EX_STATICEDGE, WS_CHILD|WS_THICKFRAME, WS_EX_STATICEDGE);
|
||||
check_dialog_style(WS_CHILD|DS_CONTROL, 0, WS_CHILD|DS_CONTROL, WS_EX_CONTROLPARENT);
|
||||
check_dialog_style(WS_CHILD|WS_CAPTION, 0, WS_CHILD|WS_CAPTION, WS_EX_WINDOWEDGE);
|
||||
check_dialog_style(WS_CHILD|WS_BORDER, 0, WS_CHILD|WS_BORDER, 0);
|
||||
check_dialog_style(WS_CHILD|WS_DLGFRAME, 0, WS_CHILD|WS_DLGFRAME, WS_EX_WINDOWEDGE);
|
||||
check_dialog_style(WS_CHILD|WS_BORDER|DS_CONTROL, 0, WS_CHILD|DS_CONTROL, WS_EX_CONTROLPARENT);
|
||||
check_dialog_style(WS_CHILD|WS_DLGFRAME|DS_CONTROL, 0, WS_CHILD|DS_CONTROL, WS_EX_CONTROLPARENT);
|
||||
check_dialog_style(WS_CHILD|WS_CAPTION|WS_SYSMENU, 0, WS_CHILD|WS_CAPTION|WS_SYSMENU, WS_EX_WINDOWEDGE);
|
||||
check_dialog_style(WS_CHILD|WS_SYSMENU, 0, WS_CHILD|WS_SYSMENU, 0);
|
||||
check_dialog_style(WS_CHILD|WS_CAPTION|DS_CONTROL, 0, WS_CHILD|DS_CONTROL, WS_EX_CONTROLPARENT);
|
||||
check_dialog_style(WS_CHILD|WS_SYSMENU|DS_CONTROL, 0, WS_CHILD|DS_CONTROL, WS_EX_CONTROLPARENT);
|
||||
check_dialog_style(WS_CHILD|WS_CAPTION|WS_SYSMENU|DS_CONTROL, 0, WS_CHILD|DS_CONTROL, WS_EX_CONTROLPARENT);
|
||||
check_dialog_style(WS_CHILD, WS_EX_WINDOWEDGE, WS_CHILD, 0);
|
||||
check_dialog_style(WS_CHILD, WS_EX_DLGMODALFRAME, WS_CHILD, WS_EX_WINDOWEDGE|WS_EX_DLGMODALFRAME);
|
||||
check_dialog_style(WS_CHILD, WS_EX_DLGMODALFRAME|WS_EX_STATICEDGE, WS_CHILD, WS_EX_STATICEDGE|WS_EX_WINDOWEDGE|WS_EX_DLGMODALFRAME);
|
||||
check_dialog_style(WS_CHILD|WS_POPUP, 0, WS_CHILD|WS_POPUP|WS_CLIPSIBLINGS, 0);
|
||||
check_dialog_style(WS_CHILD|WS_POPUP|WS_DLGFRAME, 0, WS_CHILD|WS_POPUP|WS_DLGFRAME|WS_CLIPSIBLINGS, WS_EX_WINDOWEDGE);
|
||||
check_dialog_style(WS_CHILD|WS_POPUP|WS_THICKFRAME, 0, WS_CHILD|WS_POPUP|WS_THICKFRAME|WS_CLIPSIBLINGS, WS_EX_WINDOWEDGE);
|
||||
check_dialog_style(WS_CHILD|WS_POPUP|WS_DLGFRAME, WS_EX_STATICEDGE, WS_CHILD|WS_POPUP|WS_DLGFRAME|WS_CLIPSIBLINGS, WS_EX_STATICEDGE);
|
||||
check_dialog_style(WS_CHILD|WS_POPUP|WS_THICKFRAME, WS_EX_STATICEDGE, WS_CHILD|WS_POPUP|WS_THICKFRAME|WS_CLIPSIBLINGS, WS_EX_STATICEDGE);
|
||||
check_dialog_style(WS_CHILD|WS_POPUP|DS_CONTROL, 0, WS_CHILD|WS_POPUP|WS_CLIPSIBLINGS|DS_CONTROL, WS_EX_CONTROLPARENT);
|
||||
check_dialog_style(WS_CHILD|WS_POPUP|WS_CAPTION, 0, WS_CHILD|WS_POPUP|WS_CAPTION|WS_CLIPSIBLINGS, WS_EX_WINDOWEDGE);
|
||||
check_dialog_style(WS_CHILD|WS_POPUP|WS_BORDER, 0, WS_CHILD|WS_POPUP|WS_BORDER|WS_CLIPSIBLINGS, 0);
|
||||
check_dialog_style(WS_CHILD|WS_POPUP|WS_DLGFRAME, 0, WS_CHILD|WS_POPUP|WS_DLGFRAME|WS_CLIPSIBLINGS, WS_EX_WINDOWEDGE);
|
||||
check_dialog_style(WS_CHILD|WS_POPUP|WS_BORDER|DS_CONTROL, 0, WS_CHILD|WS_POPUP|DS_CONTROL|WS_CLIPSIBLINGS, WS_EX_CONTROLPARENT);
|
||||
check_dialog_style(WS_CHILD|WS_POPUP|WS_DLGFRAME|DS_CONTROL, 0, WS_CHILD|WS_POPUP|DS_CONTROL|WS_CLIPSIBLINGS, WS_EX_CONTROLPARENT);
|
||||
check_dialog_style(WS_CHILD|WS_POPUP|WS_CAPTION|WS_SYSMENU, 0, WS_CHILD|WS_POPUP|WS_CAPTION|WS_SYSMENU|WS_CLIPSIBLINGS, WS_EX_WINDOWEDGE);
|
||||
check_dialog_style(WS_CHILD|WS_POPUP|WS_SYSMENU, 0, WS_CHILD|WS_POPUP|WS_SYSMENU|WS_CLIPSIBLINGS, 0);
|
||||
check_dialog_style(WS_CHILD|WS_POPUP|WS_CAPTION|DS_CONTROL, 0, WS_CHILD|WS_POPUP|DS_CONTROL|WS_CLIPSIBLINGS, WS_EX_CONTROLPARENT);
|
||||
check_dialog_style(WS_CHILD|WS_POPUP|WS_SYSMENU|DS_CONTROL, 0, WS_CHILD|WS_POPUP|DS_CONTROL|WS_CLIPSIBLINGS, WS_EX_CONTROLPARENT);
|
||||
check_dialog_style(WS_CHILD|WS_POPUP|WS_CAPTION|WS_SYSMENU|DS_CONTROL, 0, WS_CHILD|WS_POPUP|DS_CONTROL|WS_CLIPSIBLINGS, WS_EX_CONTROLPARENT);
|
||||
check_dialog_style(WS_CHILD|WS_POPUP, WS_EX_APPWINDOW, WS_CHILD|WS_POPUP|WS_CLIPSIBLINGS, WS_EX_APPWINDOW);
|
||||
check_dialog_style(WS_CHILD|WS_POPUP, WS_EX_WINDOWEDGE, WS_CHILD|WS_POPUP|WS_CLIPSIBLINGS, 0);
|
||||
check_dialog_style(WS_CHILD, WS_EX_WINDOWEDGE, WS_CHILD, 0);
|
||||
check_dialog_style(0, WS_EX_TOOLWINDOW, WS_CLIPSIBLINGS|WS_CAPTION, WS_EX_WINDOWEDGE|WS_EX_TOOLWINDOW|WS_EX_CONTROLPARENT);
|
||||
check_dialog_style(WS_POPUP, 0, WS_POPUP|WS_CLIPSIBLINGS, WS_EX_CONTROLPARENT);
|
||||
check_dialog_style(WS_POPUP, WS_EX_WINDOWEDGE, WS_POPUP|WS_CLIPSIBLINGS, WS_EX_CONTROLPARENT);
|
||||
check_dialog_style(WS_POPUP|WS_DLGFRAME, 0, WS_POPUP|WS_DLGFRAME|WS_CLIPSIBLINGS, WS_EX_WINDOWEDGE|WS_EX_CONTROLPARENT);
|
||||
check_dialog_style(WS_POPUP|WS_THICKFRAME, 0, WS_POPUP|WS_THICKFRAME|WS_CLIPSIBLINGS, WS_EX_WINDOWEDGE|WS_EX_CONTROLPARENT);
|
||||
check_dialog_style(WS_POPUP|WS_DLGFRAME, WS_EX_STATICEDGE, WS_POPUP|WS_DLGFRAME|WS_CLIPSIBLINGS, WS_EX_STATICEDGE|WS_EX_CONTROLPARENT);
|
||||
check_dialog_style(WS_POPUP|WS_THICKFRAME, WS_EX_STATICEDGE, WS_POPUP|WS_THICKFRAME|WS_CLIPSIBLINGS, WS_EX_STATICEDGE|WS_EX_CONTROLPARENT);
|
||||
check_dialog_style(WS_POPUP|DS_CONTROL, 0, WS_POPUP|WS_CLIPSIBLINGS|DS_CONTROL, WS_EX_CONTROLPARENT);
|
||||
check_dialog_style(WS_POPUP|WS_CAPTION, 0, WS_POPUP|WS_CAPTION|WS_CLIPSIBLINGS, WS_EX_WINDOWEDGE|WS_EX_CONTROLPARENT);
|
||||
check_dialog_style(WS_POPUP|WS_BORDER, 0, WS_POPUP|WS_BORDER|WS_CLIPSIBLINGS, WS_EX_CONTROLPARENT);
|
||||
check_dialog_style(WS_POPUP|WS_DLGFRAME, 0, WS_POPUP|WS_DLGFRAME|WS_CLIPSIBLINGS, WS_EX_WINDOWEDGE|WS_EX_CONTROLPARENT);
|
||||
check_dialog_style(WS_POPUP|WS_BORDER|DS_CONTROL, 0, WS_POPUP|DS_CONTROL|WS_CLIPSIBLINGS, WS_EX_CONTROLPARENT);
|
||||
check_dialog_style(WS_POPUP|WS_DLGFRAME|DS_CONTROL, 0, WS_POPUP|DS_CONTROL|WS_CLIPSIBLINGS, WS_EX_CONTROLPARENT);
|
||||
check_dialog_style(WS_POPUP|WS_CAPTION|WS_SYSMENU, 0, WS_POPUP|WS_CAPTION|WS_SYSMENU|WS_CLIPSIBLINGS, WS_EX_WINDOWEDGE|WS_EX_CONTROLPARENT);
|
||||
check_dialog_style(WS_POPUP|WS_SYSMENU, 0, WS_POPUP|WS_SYSMENU|WS_CLIPSIBLINGS, WS_EX_CONTROLPARENT);
|
||||
check_dialog_style(WS_POPUP|WS_CAPTION|DS_CONTROL, 0, WS_POPUP|DS_CONTROL|WS_CLIPSIBLINGS, WS_EX_CONTROLPARENT);
|
||||
check_dialog_style(WS_POPUP|WS_SYSMENU|DS_CONTROL, 0, WS_POPUP|DS_CONTROL|WS_CLIPSIBLINGS, WS_EX_CONTROLPARENT);
|
||||
check_dialog_style(WS_POPUP|WS_CAPTION|WS_SYSMENU|DS_CONTROL, 0, WS_POPUP|DS_CONTROL|WS_CLIPSIBLINGS, WS_EX_CONTROLPARENT);
|
||||
check_dialog_style(WS_CAPTION, WS_EX_STATICEDGE, WS_CLIPSIBLINGS|WS_CAPTION, WS_EX_STATICEDGE|WS_EX_WINDOWEDGE|WS_EX_CONTROLPARENT);
|
||||
check_dialog_style(0, WS_EX_APPWINDOW, WS_CLIPSIBLINGS|WS_CAPTION, WS_EX_APPWINDOW|WS_EX_WINDOWEDGE|WS_EX_CONTROLPARENT);
|
||||
|
||||
if (pGetLayeredWindowAttributes)
|
||||
{
|
||||
check_dialog_style(0, WS_EX_LAYERED, WS_CLIPSIBLINGS|WS_CAPTION, WS_EX_LAYERED|WS_EX_WINDOWEDGE|WS_EX_CONTROLPARENT);
|
||||
check_dialog_style(0, WS_EX_LAYERED|WS_EX_TRANSPARENT, WS_CLIPSIBLINGS|WS_CAPTION, WS_EX_LAYERED|WS_EX_TRANSPARENT|WS_EX_WINDOWEDGE|WS_EX_CONTROLPARENT);
|
||||
check_dialog_style(0, WS_EX_LAYERED|WS_EX_TRANSPARENT|WS_EX_TOOLWINDOW, WS_CLIPSIBLINGS|WS_CAPTION,
|
||||
WS_EX_LAYERED|WS_EX_TRANSPARENT|WS_EX_TOOLWINDOW|WS_EX_WINDOWEDGE|WS_EX_CONTROLPARENT);
|
||||
}
|
||||
}
|
||||
|
||||
static void test_scrollwindow( HWND hwnd)
|
||||
{
|
||||
HDC hdc;
|
||||
|
@ -5094,20 +5323,20 @@ static void test_CreateWindow(void)
|
|||
ok( !pGetProcessDefaultLayout( NULL ), "GetProcessDefaultLayout succeeded\n" );
|
||||
ok( GetLastError() == ERROR_NOACCESS, "wrong error %u\n", GetLastError() );
|
||||
SetLastError( 0xdeadbeef );
|
||||
ok( pGetProcessDefaultLayout( &layout ),
|
||||
"GetProcessDefaultLayout failed err %u\n", GetLastError ());
|
||||
res = pGetProcessDefaultLayout( &layout );
|
||||
ok( res, "GetProcessDefaultLayout failed err %u\n", GetLastError ());
|
||||
ok( layout == 0, "GetProcessDefaultLayout wrong layout %x\n", layout );
|
||||
SetLastError( 0xdeadbeef );
|
||||
ok( pSetProcessDefaultLayout( 7 ),
|
||||
"SetProcessDefaultLayout failed err %u\n", GetLastError ());
|
||||
ok( pGetProcessDefaultLayout( &layout ),
|
||||
"GetProcessDefaultLayout failed err %u\n", GetLastError ());
|
||||
res = pSetProcessDefaultLayout( 7 );
|
||||
ok( res, "SetProcessDefaultLayout failed err %u\n", GetLastError ());
|
||||
res = pGetProcessDefaultLayout( &layout );
|
||||
ok( res, "GetProcessDefaultLayout failed err %u\n", GetLastError ());
|
||||
ok( layout == 7, "GetProcessDefaultLayout wrong layout %x\n", layout );
|
||||
SetLastError( 0xdeadbeef );
|
||||
ok( pSetProcessDefaultLayout( LAYOUT_RTL ),
|
||||
"SetProcessDefaultLayout failed err %u\n", GetLastError ());
|
||||
ok( pGetProcessDefaultLayout( &layout ),
|
||||
"GetProcessDefaultLayout failed err %u\n", GetLastError ());
|
||||
res = pSetProcessDefaultLayout( LAYOUT_RTL );
|
||||
ok( res, "SetProcessDefaultLayout failed err %u\n", GetLastError ());
|
||||
res = pGetProcessDefaultLayout( &layout );
|
||||
ok( res, "GetProcessDefaultLayout failed err %u\n", GetLastError ());
|
||||
ok( layout == LAYOUT_RTL, "GetProcessDefaultLayout wrong layout %x\n", layout );
|
||||
hwnd = CreateWindowEx(WS_EX_APPWINDOW, "static", NULL, WS_POPUP,
|
||||
0, 0, 100, 100, 0, 0, 0, NULL);
|
||||
|
@ -6685,6 +6914,7 @@ START_TEST(win)
|
|||
|
||||
test_AdjustWindowRect();
|
||||
test_window_styles();
|
||||
test_dialog_styles();
|
||||
test_redrawnow();
|
||||
test_csparentdc();
|
||||
test_SetWindowLong();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue