Author: jimtabor
Date: Thu Jan 26 15:55:16 2012
New Revision: 55209
URL:
http://svn.reactos.org/svn/reactos?rev=55209&view=rev
Log:
[User32_wineTest] - Sync to Wine 1.3.37.
Modified:
trunk/rostests/winetests/user32/broadcast.c
trunk/rostests/winetests/user32/class.c
trunk/rostests/winetests/user32/combo.c
trunk/rostests/winetests/user32/cursoricon.c
trunk/rostests/winetests/user32/dce.c
trunk/rostests/winetests/user32/dialog.c
trunk/rostests/winetests/user32/edit.c
trunk/rostests/winetests/user32/generated.c
trunk/rostests/winetests/user32/input.c
trunk/rostests/winetests/user32/msg.c
trunk/rostests/winetests/user32/resource.c
trunk/rostests/winetests/user32/resource.rc
trunk/rostests/winetests/user32/scroll.c
trunk/rostests/winetests/user32/static.c
trunk/rostests/winetests/user32/sysparams.c
trunk/rostests/winetests/user32/win.c
Modified: trunk/rostests/winetests/user32/broadcast.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/user32/broadcas…
==============================================================================
--- trunk/rostests/winetests/user32/broadcast.c [iso-8859-1] (original)
+++ trunk/rostests/winetests/user32/broadcast.c [iso-8859-1] Thu Jan 26 15:55:16 2012
@@ -20,7 +20,6 @@
//#define _WIN32_WINNT 0x0501
-#include <assert.h>
#include <stdarg.h>
#include <stdio.h>
Modified: trunk/rostests/winetests/user32/class.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/user32/class.c?…
==============================================================================
--- trunk/rostests/winetests/user32/class.c [iso-8859-1] (original)
+++ trunk/rostests/winetests/user32/class.c [iso-8859-1] Thu Jan 26 15:55:16 2012
@@ -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>
Modified: trunk/rostests/winetests/user32/combo.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/user32/combo.c?…
==============================================================================
--- trunk/rostests/winetests/user32/combo.c [iso-8859-1] (original)
+++ trunk/rostests/winetests/user32/combo.c [iso-8859-1] Thu Jan 26 15:55:16 2012
@@ -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>
Modified: trunk/rostests/winetests/user32/cursoricon.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/user32/cursoric…
==============================================================================
--- trunk/rostests/winetests/user32/cursoricon.c [iso-8859-1] (original)
+++ trunk/rostests/winetests/user32/cursoricon.c [iso-8859-1] Thu Jan 26 15:55:16 2012
@@ -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 @@
0, /* biYPelsPerMeter */ \
0, /* biClrUsed */ \
0 /* biClrImportant */ \
- }, \
+ } \
/* DIB data: left uninitialized */ \
} \
}
@@ -697,7 +696,7 @@
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 @@
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 @@
}
}
-#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 @@
HDC hdc;
void *bits;
UINT display_bpp;
+ int i;
hdc = GetDC(0);
display_bpp = GetDeviceCaps(hdc, BITSPIXEL);
@@ -801,12 +801,12 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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);
Modified: trunk/rostests/winetests/user32/dce.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/user32/dce.c?re…
==============================================================================
--- trunk/rostests/winetests/user32/dce.c [iso-8859-1] (original)
+++ trunk/rostests/winetests/user32/dce.c [iso-8859-1] Thu Jan 26 15:55:16 2012
@@ -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>
Modified: trunk/rostests/winetests/user32/dialog.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/user32/dialog.c…
==============================================================================
--- trunk/rostests/winetests/user32/dialog.c [iso-8859-1] (original)
+++ trunk/rostests/winetests/user32/dialog.c [iso-8859-1] Thu Jan 26 15:55:16 2012
@@ -32,6 +32,9 @@
#include <assert.h>
#include <stdio.h>
#include <stdarg.h>
+
+#undef WINVER
+#define WINVER 0x0600 /* For NONCLIENTMETRICS with padding */
#include "wine/test.h"
#include "windef.h"
@@ -830,8 +833,7 @@
{
/* 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
@@ -910,6 +912,31 @@
ok ((g_hwndInitialFocusT1 == 0),
"Focus should not be set for an invisible DS_CONTROL dialog %p.\n",
g_hwndInitialFocusT1);
+
+ 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);
}
@@ -1058,10 +1085,49 @@
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);
@@ -1109,7 +1175,7 @@
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 @@
}
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),
Modified: trunk/rostests/winetests/user32/edit.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/user32/edit.c?r…
==============================================================================
--- trunk/rostests/winetests/user32/edit.c [iso-8859-1] (original)
+++ trunk/rostests/winetests/user32/edit.c [iso-8859-1] Thu Jan 26 15:55:16 2012
@@ -1736,7 +1736,7 @@
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 @@
/* 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 @@
/* 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 @@
/* 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 @@
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);
- ok(444 == r, "Expected %d, got %d\n", 444, r);
- r = DialogBoxParam(hinst, "EDIT_READONLY_DIALOG", NULL,
(DLGPROC)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,
3);
+ ok(444 == r, "Expected %d, got %d\n", 444, r);
+ 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, 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);
- ok(444 == r, "Expected %d, got %d\n", 444, r);
- r = DialogBoxParam(hinst, "EDIT_READONLY_DIALOG", NULL,
(DLGPROC)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,
6);
+ ok(444 == r, "Expected %d, got %d\n", 444, r);
+ 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, 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);
- ok(444 == r, "Expected %d, got %d\n", 444, r);
- r = DialogBoxParam(hinst, "EDIT_DIALOG", NULL, (DLGPROC)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, 3);
+ ok(444 == r, "Expected %d, got %d\n", 444, r);
+ 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, 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);
- ok(444 == r, "Expected %d, got %d\n", 444, r);
- r = DialogBoxParam(hinst, "EDIT_DIALOG", NULL, (DLGPROC)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, 6);
+ ok(444 == r, "Expected %d, got %d\n", 444, r);
+ 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, 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 @@
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 @@
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);
- 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, 1);
+ ok(444 == r, "Expected %d, got %d\n", 444, r);
+ 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);
- ok(444 == r, "Expected %d, got %d\n", 444, r);
- r = DialogBoxParam(hinst, "EDIT_WANTRETURN_DIALOG", NULL,
(DLGPROC)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, 3);
+ ok(444 == r, "Expected %d, got %d\n", 444, r);
+ 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,
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);
- ok(444 == r, "Expected %d, got %d\n", 444, r);
- r = DialogBoxParam(hinst, "EDIT_WANTRETURN_DIALOG", NULL,
(DLGPROC)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, 6);
+ ok(444 == r, "Expected %d, got %d\n", 444, r);
+ 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,
edit_wantreturn_dialog_proc, 8);
ok(444 == r, "Expected %d, got %d\n", 444, r);
}
@@ -2053,51 +2053,51 @@
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);
- ok(444 == r, "Expected %d, got %d\n", 444, r);
- r = DialogBoxParam(hinst, "EDIT_SINGLELINE_DIALOG", NULL,
(DLGPROC)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, 3);
+ ok(444 == r, "Expected %d, got %d\n", 444, r);
+ 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,
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);
- ok(444 == r, "Expected %d, got %d\n", 444, r);
- r = DialogBoxParam(hinst, "EDIT_SINGLELINE_WANTRETURN_DIALOG", NULL,
(DLGPROC)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, 3);
+ ok(444 == r, "Expected %d, got %d\n", 444, r);
+ 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,
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);
}
Modified: trunk/rostests/winetests/user32/generated.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/user32/generate…
==============================================================================
--- trunk/rostests/winetests/user32/generated.c [iso-8859-1] (original)
+++ trunk/rostests/winetests/user32/generated.c [iso-8859-1] Thu Jan 26 15:55:16 2012
@@ -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 @@
/* 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 @@
/* 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_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 @@
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 @@
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 @@
/* 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 @@
/* 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 @@
/* 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 @@
/* 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_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 @@
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 @@
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 @@
/* 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 @@
/* 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)
}
Modified: trunk/rostests/winetests/user32/input.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/user32/input.c?…
==============================================================================
--- trunk/rostests/winetests/user32/input.c [iso-8859-1] (original)
+++ trunk/rostests/winetests/user32/input.c [iso-8859-1] Thu Jan 26 15:55:16 2012
@@ -1540,7 +1540,7 @@
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 @@
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 @@
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;
Modified: trunk/rostests/winetests/user32/msg.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/user32/msg.c?re…
==============================================================================
--- trunk/rostests/winetests/user32/msg.c [iso-8859-1] (original)
+++ trunk/rostests/winetests/user32/msg.c [iso-8859-1] Thu Jan 26 15:55:16 2012
@@ -8134,12 +8134,6 @@
{
}
-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 @@
{
struct timer_info info;
DWORD id;
- MSG msg;
info.hWnd = CreateWindow ("TestWindowClass", NULL,
WS_OVERLAPPEDWINDOW ,
@@ -8182,26 +8175,6 @@
CloseHandle(info.handles[1]);
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");
}
@@ -9516,8 +9489,8 @@
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 @@
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);
@@ -11253,6 +11226,52 @@
DestroyWindow(hdlg);
flush_sequence();
+ 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);
}
@@ -13024,6 +13043,7 @@
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 @@
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 @@
hEvent_hook = 0;
#endif
+ test_SetFocus();
test_SetParent();
test_PostMessage();
test_ShowWindow();
@@ -13572,6 +13821,7 @@
test_SetWindowRgn();
test_sys_menu();
test_dialog_messages();
+ test_EndDialog();
test_nullCallback();
test_dbcs_wm_char();
test_menu_messages();
Modified: trunk/rostests/winetests/user32/resource.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/user32/resource…
==============================================================================
--- trunk/rostests/winetests/user32/resource.c [iso-8859-1] (original)
+++ trunk/rostests/winetests/user32/resource.c [iso-8859-1] Thu Jan 26 15:55:16 2012
@@ -90,7 +90,7 @@
{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 @@
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),
Modified: trunk/rostests/winetests/user32/resource.rc
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/user32/resource…
==============================================================================
--- trunk/rostests/winetests/user32/resource.rc [iso-8859-1] (original)
+++ trunk/rostests/winetests/user32/resource.rc [iso-8859-1] Thu Jan 26 15:55:16 2012
@@ -45,6 +45,16 @@
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"
@@ -87,6 +97,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
Modified: trunk/rostests/winetests/user32/scroll.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/user32/scroll.c…
==============================================================================
--- trunk/rostests/winetests/user32/scroll.c [iso-8859-1] (original)
+++ trunk/rostests/winetests/user32/scroll.c [iso-8859-1] Thu Jan 26 15:55:16 2012
@@ -302,13 +302,10 @@
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 @@
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 */
Modified: trunk/rostests/winetests/user32/static.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/user32/static.c…
==============================================================================
--- trunk/rostests/winetests/user32/static.c [iso-8859-1] (original)
+++ trunk/rostests/winetests/user32/static.c [iso-8859-1] Thu Jan 26 15:55:16 2012
@@ -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>
Modified: trunk/rostests/winetests/user32/sysparams.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/user32/sysparam…
==============================================================================
--- trunk/rostests/winetests/user32/sysparams.c [iso-8859-1] (original)
+++ trunk/rostests/winetests/user32/sysparams.c [iso-8859-1] Thu Jan 26 15:55:16 2012
@@ -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 @@
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 @@
{
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 @@
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 @@
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) {
Modified: trunk/rostests/winetests/user32/win.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/user32/win.c?re…
==============================================================================
--- trunk/rostests/winetests/user32/win.c [iso-8859-1] (original)
+++ trunk/rostests/winetests/user32/win.c [iso-8859-1] Thu Jan 26 15:55:16 2012
@@ -2513,7 +2513,7 @@
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,8 +2588,31 @@
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 @@
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 @@
};
atomStyleCheckClass = RegisterClass(&wc);
+ assert(atomStyleCheckClass);
}
static void check_window_style(DWORD dwStyleIn, DWORD dwExStyleIn, DWORD dwStyleOut,
DWORD dwExStyleOut)
@@ -3700,28 +3724,42 @@
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 (dwStyleIn & (WS_CHILD | WS_POPUP))
+ 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);
+ /* 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
- 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);
+ ok(dwActualExStyle == dwExStyleOut, "expected ex_style %#x, got %#x\n",
dwExStyleOut, dwActualExStyle);
DestroyWindow(hwnd);
if (hwndParent) DestroyWindow(hwndParent);
@@ -3733,14 +3771,36 @@
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);
@@ -3750,6 +3810,175 @@
check_window_style(0, WS_EX_LAYERED|WS_EX_TRANSPARENT,
WS_CLIPSIBLINGS|WS_CAPTION, WS_EX_LAYERED|WS_EX_TRANSPARENT|WS_EX_WINDOWEDGE);
check_window_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);
+ }
+}
+
+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);
}
}
@@ -5094,20 +5323,20 @@
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 @@
test_AdjustWindowRect();
test_window_styles();
+ test_dialog_styles();
test_redrawnow();
test_csparentdc();
test_SetWindowLong();