Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
7cbe2854
Commit
7cbe2854
authored
Jan 25, 2009
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
user32/tests: Make the traces less verbose in the window test.
parent
4909fe49
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
104 additions
and
100 deletions
+104
-100
win.c
dlls/user32/tests/win.c
+104
-100
No files found.
dlls/user32/tests/win.c
View file @
7cbe2854
...
...
@@ -567,7 +567,7 @@ static LRESULT WINAPI main_window_procA(HWND hwnd, UINT msg, WPARAM wparam, LPAR
{
MINMAXINFO
*
minmax
=
(
MINMAXINFO
*
)
lparam
;
trace
(
"
hwnd %p, WM_GETMINMAXINFO
, %08lx, %08lx
\n
"
,
hwnd
,
wparam
,
lparam
);
trace
(
"
WM_GETMINMAXINFO: hwnd %p
, %08lx, %08lx
\n
"
,
hwnd
,
wparam
,
lparam
);
dump_minmax_info
(
minmax
);
SetWindowLongPtrA
(
hwnd
,
GWLP_USERDATA
,
0x20031021
);
break
;
...
...
@@ -576,8 +576,7 @@ static LRESULT WINAPI main_window_procA(HWND hwnd, UINT msg, WPARAM wparam, LPAR
{
BOOL
is_win9x
=
GetWindowLongPtrW
(
hwnd
,
GWLP_WNDPROC
)
==
0
;
WINDOWPOS
*
winpos
=
(
WINDOWPOS
*
)
lparam
;
trace
(
"main: WM_WINDOWPOSCHANGING
\n
"
);
trace
(
"%p after %p, x %d, y %d, cx %d, cy %d flags %08x
\n
"
,
trace
(
"main: WM_WINDOWPOSCHANGING %p after %p, x %d, y %d, cx %d, cy %d flags %08x
\n
"
,
winpos
->
hwnd
,
winpos
->
hwndInsertAfter
,
winpos
->
x
,
winpos
->
y
,
winpos
->
cx
,
winpos
->
cy
,
winpos
->
flags
);
if
(
!
(
winpos
->
flags
&
SWP_NOMOVE
))
...
...
@@ -597,8 +596,7 @@ static LRESULT WINAPI main_window_procA(HWND hwnd, UINT msg, WPARAM wparam, LPAR
{
RECT
rc1
,
rc2
;
WINDOWPOS
*
winpos
=
(
WINDOWPOS
*
)
lparam
;
trace
(
"main: WM_WINDOWPOSCHANGED
\n
"
);
trace
(
"%p after %p, x %d, y %d, cx %d, cy %d flags %08x
\n
"
,
trace
(
"main: WM_WINDOWPOSCHANGED %p after %p, x %d, y %d, cx %d, cy %d flags %08x
\n
"
,
winpos
->
hwnd
,
winpos
->
hwndInsertAfter
,
winpos
->
x
,
winpos
->
y
,
winpos
->
cx
,
winpos
->
cy
,
winpos
->
flags
);
ok
(
winpos
->
x
>=
-
32768
&&
winpos
->
x
<=
32767
,
"bad winpos->x %d
\n
"
,
winpos
->
x
);
...
...
@@ -608,15 +606,14 @@ static LRESULT WINAPI main_window_procA(HWND hwnd, UINT msg, WPARAM wparam, LPAR
ok
(
winpos
->
cy
>=
0
&&
winpos
->
cy
<=
32767
,
"bad winpos->cy %d
\n
"
,
winpos
->
cy
);
GetWindowRect
(
hwnd
,
&
rc1
);
trace
(
"window: (%d,%d)-(%d,%d)
\n
"
,
rc1
.
left
,
rc1
.
top
,
rc1
.
right
,
rc1
.
bottom
);
SetRect
(
&
rc2
,
winpos
->
x
,
winpos
->
y
,
winpos
->
x
+
winpos
->
cx
,
winpos
->
y
+
winpos
->
cy
);
/* note: winpos coordinates are relative to parent */
MapWindowPoints
(
GetParent
(
hwnd
),
0
,
(
LPPOINT
)
&
rc2
,
2
);
trace
(
"pos: (%d,%d)-(%d,%d)
\n
"
,
rc2
.
left
,
rc2
.
top
,
rc2
.
right
,
rc2
.
bottom
);
if
(
0
)
{
/* Uncomment this once the test succeeds in all cases */
ok
(
EqualRect
(
&
rc1
,
&
rc2
),
"rects do not match
\n
"
);
ok
(
EqualRect
(
&
rc1
,
&
rc2
),
"rects do not match (%d,%d-%d,%d) / (%d,%d-%d,%d)
\n
"
,
rc1
.
left
,
rc1
.
top
,
rc1
.
right
,
rc1
.
bottom
,
rc2
.
left
,
rc2
.
top
,
rc2
.
right
,
rc2
.
bottom
);
}
GetClientRect
(
hwnd
,
&
rc2
);
...
...
@@ -719,32 +716,34 @@ static BOOL RegisterWindowClasses(void)
return
TRUE
;
}
static
void
verify_window_info
(
HWND
hwnd
,
const
WINDOWINFO
*
info
)
static
void
verify_window_info
(
const
char
*
hook
,
HWND
hwnd
,
const
WINDOWINFO
*
info
)
{
RECT
rcWindow
,
rcClient
;
DWORD
status
;
ok
(
IsWindow
(
hwnd
),
"bad window handle
\n
"
);
ok
(
IsWindow
(
hwnd
),
"bad window handle
%p in hook %s
\n
"
,
hwnd
,
hook
);
GetWindowRect
(
hwnd
,
&
rcWindow
);
ok
(
EqualRect
(
&
rcWindow
,
&
info
->
rcWindow
),
"wrong rcWindow
\n
"
);
ok
(
EqualRect
(
&
rcWindow
,
&
info
->
rcWindow
),
"wrong rcWindow
for %p in hook %s
\n
"
,
hwnd
,
hook
);
GetClientRect
(
hwnd
,
&
rcClient
);
/* translate to screen coordinates */
MapWindowPoints
(
hwnd
,
0
,
(
LPPOINT
)
&
rcClient
,
2
);
ok
(
EqualRect
(
&
rcClient
,
&
info
->
rcClient
),
"wrong rcClient
\n
"
);
ok
(
EqualRect
(
&
rcClient
,
&
info
->
rcClient
),
"wrong rcClient
for %p in hook %s
\n
"
,
hwnd
,
hook
);
ok
(
info
->
dwStyle
==
(
DWORD
)
GetWindowLongA
(
hwnd
,
GWL_STYLE
),
"wrong dwStyle: %08x != %08x
\n
"
,
info
->
dwStyle
,
GetWindowLongA
(
hwnd
,
GWL_STYLE
));
"wrong dwStyle: %08x != %08x for %p in hook %s
\n
"
,
info
->
dwStyle
,
GetWindowLongA
(
hwnd
,
GWL_STYLE
),
hwnd
,
hook
);
/* Windows reports some undocumented exstyles in WINDOWINFO, but
* doesn't return them in GetWindowLong(hwnd, GWL_EXSTYLE).
*/
ok
((
info
->
dwExStyle
&
~
0xe0000800
)
==
(
DWORD
)
GetWindowLongA
(
hwnd
,
GWL_EXSTYLE
),
"wrong dwExStyle: %08x != %08x
\n
"
,
info
->
dwExStyle
,
GetWindowLongA
(
hwnd
,
GWL_EXSTYLE
));
"wrong dwExStyle: %08x != %08x for %p in hook %s
\n
"
,
info
->
dwExStyle
,
GetWindowLongA
(
hwnd
,
GWL_EXSTYLE
),
hwnd
,
hook
);
status
=
(
GetActiveWindow
()
==
hwnd
)
?
WS_ACTIVECAPTION
:
0
;
if
(
GetForegroundWindow
())
ok
(
info
->
dwWindowStatus
==
status
,
"wrong dwWindowStatus: %04x != %04x active %p fg %p
\n
"
,
info
->
dwWindowStatus
,
status
,
GetActiveWindow
(),
GetForegroundWindow
());
ok
(
info
->
dwWindowStatus
==
status
,
"wrong dwWindowStatus: %04x != %04x active %p fg %p
in hook %s
\n
"
,
info
->
dwWindowStatus
,
status
,
GetActiveWindow
(),
GetForegroundWindow
()
,
hook
);
/* win2k and XP return broken border info in GetWindowInfo most of
* the time, so there is no point in testing it.
...
...
@@ -757,10 +756,11 @@ static void verify_window_info(HWND hwnd, const WINDOWINFO *info)
ok(info->cyWindowBorders == border,
"wrong cyWindowBorders %d != %d\n", info->cyWindowBorders, border);
#endif
ok
(
info
->
atomWindowType
==
GetClassLongA
(
hwnd
,
GCW_ATOM
),
"wrong atomWindowType
\n
"
);
ok
(
info
->
atomWindowType
==
GetClassLongA
(
hwnd
,
GCW_ATOM
),
"wrong atomWindowType for %p in hook %s
\n
"
,
hwnd
,
hook
);
ok
(
info
->
wCreatorVersion
==
0x0400
/* NT4, Win2000, XP, Win2003 */
||
info
->
wCreatorVersion
==
0x0500
/* Vista */
,
"wrong wCreatorVersion %04x
\n
"
,
info
->
wCreatorVersion
);
"wrong wCreatorVersion %04x
for %p in hook %s
\n
"
,
info
->
wCreatorVersion
,
hwnd
,
hook
);
}
static
void
FixedAdjustWindowRectEx
(
RECT
*
rc
,
LONG
style
,
BOOL
menu
,
LONG
exstyle
)
...
...
@@ -791,9 +791,7 @@ static void test_nonclient_area(HWND hwnd)
menu
=
!
(
style
&
WS_CHILD
)
&&
GetMenu
(
hwnd
)
!=
0
;
GetWindowRect
(
hwnd
,
&
rc_window
);
trace
(
"window: (%d,%d)-(%d,%d)
\n
"
,
rc_window
.
left
,
rc_window
.
top
,
rc_window
.
right
,
rc_window
.
bottom
);
GetClientRect
(
hwnd
,
&
rc_client
);
trace
(
"client: (%d,%d)-(%d,%d)
\n
"
,
rc_client
.
left
,
rc_client
.
top
,
rc_client
.
right
,
rc_client
.
bottom
);
/* avoid some cases when things go wrong */
if
(
IsRectEmpty
(
&
rc_window
)
||
IsRectEmpty
(
&
rc_client
)
||
...
...
@@ -803,15 +801,19 @@ static void test_nonclient_area(HWND hwnd)
MapWindowPoints
(
hwnd
,
0
,
(
LPPOINT
)
&
rc
,
2
);
FixedAdjustWindowRectEx
(
&
rc
,
style
,
menu
,
exstyle
);
trace
(
"calc window: (%d,%d)-(%d,%d)
\n
"
,
rc
.
left
,
rc
.
top
,
rc
.
right
,
rc
.
bottom
);
ok
(
EqualRect
(
&
rc
,
&
rc_window
),
"window rect does not match: style:exstyle=0x%08x:0x%08x, menu=%d
\n
"
,
style
,
exstyle
,
menu
);
ok
(
EqualRect
(
&
rc
,
&
rc_window
),
"window rect does not match: style:exstyle=0x%08x:0x%08x, menu=%d, win=(%d,%d)-(%d,%d), calc=(%d,%d)-(%d,%d)
\n
"
,
style
,
exstyle
,
menu
,
rc_window
.
left
,
rc_window
.
top
,
rc_window
.
right
,
rc_window
.
bottom
,
rc
.
left
,
rc
.
top
,
rc
.
right
,
rc
.
bottom
);
CopyRect
(
&
rc
,
&
rc_window
);
DefWindowProcA
(
hwnd
,
WM_NCCALCSIZE
,
0
,
(
LPARAM
)
&
rc
);
MapWindowPoints
(
0
,
hwnd
,
(
LPPOINT
)
&
rc
,
2
);
trace
(
"calc client: (%d,%d)-(%d,%d)
\n
"
,
rc
.
left
,
rc
.
top
,
rc
.
right
,
rc
.
bottom
);
ok
(
EqualRect
(
&
rc
,
&
rc_client
),
"client rect does not match: style:exstyle=0x%08x:0x%08x, menu=%d
\n
"
,
style
,
exstyle
,
menu
);
ok
(
EqualRect
(
&
rc
,
&
rc_client
),
"client rect does not match: style:exstyle=0x%08x:0x%08x, menu=%d client=(%d,%d)-(%d,%d), calc=(%d,%d)-(%d,%d)
\n
"
,
style
,
exstyle
,
menu
,
rc_client
.
left
,
rc_client
.
top
,
rc_client
.
right
,
rc_client
.
bottom
,
rc
.
left
,
rc
.
top
,
rc
.
right
,
rc
.
bottom
);
/* NULL rectangle shouldn't crash */
ret
=
DefWindowProcA
(
hwnd
,
WM_NCCALCSIZE
,
0
,
0
);
...
...
@@ -826,14 +828,14 @@ static void test_nonclient_area(HWND hwnd)
CopyRect
(
&
rc_window
,
&
rc_client
);
MapWindowPoints
(
hwnd
,
0
,
(
LPPOINT
)
&
rc_window
,
2
);
FixedAdjustWindowRectEx
(
&
rc_window
,
style
,
menu
,
exstyle
);
trace
(
"calc window: (%d,%d)-(%d,%d)
\n
"
,
rc_window
.
left
,
rc_window
.
top
,
rc_window
.
right
,
rc_window
.
bottom
);
CopyRect
(
&
rc
,
&
rc_window
);
DefWindowProcA
(
hwnd
,
WM_NCCALCSIZE
,
0
,
(
LPARAM
)
&
rc
);
MapWindowPoints
(
0
,
hwnd
,
(
LPPOINT
)
&
rc
,
2
);
trace
(
"calc client: (%d,%d)-(%d,%d)
\n
"
,
rc
.
left
,
rc
.
top
,
rc
.
right
,
rc
.
bottom
);
ok
(
EqualRect
(
&
rc
,
&
rc_client
),
"synthetic rect does not match: style:exstyle=0x%08x:0x%08x, menu=%d
\n
"
,
style
,
exstyle
,
menu
);
ok
(
EqualRect
(
&
rc
,
&
rc_client
),
"synthetic rect does not match: style:exstyle=0x%08x:0x%08x, menu=%d, client=(%d,%d)-(%d,%d), calc=(%d,%d)-(%d,%d)
\n
"
,
style
,
exstyle
,
menu
,
rc_client
.
left
,
rc_client
.
top
,
rc_client
.
right
,
rc_client
.
bottom
,
rc
.
left
,
rc
.
top
,
rc
.
right
,
rc
.
bottom
);
}
static
LRESULT
CALLBACK
cbt_hook_proc
(
int
nCode
,
WPARAM
wParam
,
LPARAM
lParam
)
...
...
@@ -850,33 +852,7 @@ static LRESULT CALLBACK cbt_hook_proc(int nCode, WPARAM wParam, LPARAM lParam)
"HCBT_SYSCOMMAND"
,
"HCBT_SETFOCUS"
};
const
char
*
code_name
=
(
nCode
>=
0
&&
nCode
<=
HCBT_SETFOCUS
)
?
CBT_code_name
[
nCode
]
:
"Unknown"
;
trace
(
"CBT: %d (%s), %08lx, %08lx
\n
"
,
nCode
,
code_name
,
wParam
,
lParam
);
switch
(
nCode
)
{
/* on HCBT_DESTROYWND window state is undefined */
case
HCBT_DESTROYWND
:
break
;
case
HCBT_MOVESIZE
:
case
HCBT_MINMAX
:
case
HCBT_CREATEWND
:
case
HCBT_ACTIVATE
:
case
HCBT_SETFOCUS
:
if
(
pGetWindowInfo
&&
IsWindow
((
HWND
)
wParam
))
{
WINDOWINFO
info
;
/* Win98 actually does check the info.cbSize and doesn't allow
* it to be anything except sizeof(WINDOWINFO), while Win95, Win2k,
* WinXP do not check it at all.
*/
info
.
cbSize
=
sizeof
(
WINDOWINFO
);
ok
(
pGetWindowInfo
((
HWND
)
wParam
,
&
info
),
"GetWindowInfo should not fail
\n
"
);
verify_window_info
((
HWND
)
wParam
,
&
info
);
}
break
;
}
HWND
hwnd
=
(
HWND
)
wParam
;
switch
(
nCode
)
{
...
...
@@ -887,64 +863,95 @@ static LRESULT CALLBACK cbt_hook_proc(int nCode, WPARAM wParam, LPARAM lParam)
LONG
style
;
CBT_CREATEWNDA
*
createwnd
=
(
CBT_CREATEWNDA
*
)
lParam
;
trace
(
"HCBT_CREATEWND: hwnd %p, parent %p, style %08x
\n
"
,
(
HWND
)
wParam
,
createwnd
->
lpcs
->
hwndParent
,
createwnd
->
lpcs
->
style
);
hwnd
,
createwnd
->
lpcs
->
hwndParent
,
createwnd
->
lpcs
->
style
);
ok
(
createwnd
->
hwndInsertAfter
==
HWND_TOP
,
"hwndInsertAfter should be always HWND_TOP
\n
"
);
if
(
pGetWindowInfo
)
{
WINDOWINFO
info
;
info
.
cbSize
=
sizeof
(
WINDOWINFO
);
ok
(
pGetWindowInfo
(
hwnd
,
&
info
),
"GetWindowInfo should not fail
\n
"
);
verify_window_info
(
code_name
,
hwnd
,
&
info
);
}
/* WS_VISIBLE should be turned off yet */
style
=
createwnd
->
lpcs
->
style
&
~
WS_VISIBLE
;
ok
(
style
==
GetWindowLongA
(
(
HWND
)
wParam
,
GWL_STYLE
),
ok
(
style
==
GetWindowLongA
(
hwnd
,
GWL_STYLE
),
"style of hwnd and style in the CREATESTRUCT do not match: %08x != %08x
\n
"
,
GetWindowLongA
(
(
HWND
)
wParam
,
GWL_STYLE
),
style
);
GetWindowLongA
(
hwnd
,
GWL_STYLE
),
style
);
if
(
0
)
{
/* Uncomment this once the test succeeds in all cases */
if
((
style
&
(
WS_CHILD
|
WS_POPUP
))
==
WS_CHILD
)
{
ok
(
GetParent
(
(
HWND
)
wParam
)
==
hwndMessage
,
ok
(
GetParent
(
hwnd
)
==
hwndMessage
,
"wrong result from GetParent %p: message window %p
\n
"
,
GetParent
(
(
HWND
)
wParam
),
hwndMessage
);
GetParent
(
hwnd
),
hwndMessage
);
}
else
ok
(
!
GetParent
(
(
HWND
)
wParam
),
"GetParent should return 0 at this point
\n
"
);
ok
(
!
GetParent
(
hwnd
),
"GetParent should return 0 at this point
\n
"
);
ok
(
!
GetWindow
(
(
HWND
)
wParam
,
GW_OWNER
),
"GW_OWNER should be set to 0 at this point
\n
"
);
ok
(
!
GetWindow
(
hwnd
,
GW_OWNER
),
"GW_OWNER should be set to 0 at this point
\n
"
);
}
if
(
0
)
{
/* while NT assigns GW_HWNDFIRST/LAST some values at this point,
* Win9x still has them set to 0.
*/
ok
(
GetWindow
(
(
HWND
)
wParam
,
GW_HWNDFIRST
)
!=
0
,
"GW_HWNDFIRST should not be set to 0 at this point
\n
"
);
ok
(
GetWindow
(
(
HWND
)
wParam
,
GW_HWNDLAST
)
!=
0
,
"GW_HWNDLAST should not be set to 0 at this point
\n
"
);
ok
(
GetWindow
(
hwnd
,
GW_HWNDFIRST
)
!=
0
,
"GW_HWNDFIRST should not be set to 0 at this point
\n
"
);
ok
(
GetWindow
(
hwnd
,
GW_HWNDLAST
)
!=
0
,
"GW_HWNDLAST should not be set to 0 at this point
\n
"
);
}
ok
(
!
GetWindow
(
(
HWND
)
wParam
,
GW_HWNDPREV
),
"GW_HWNDPREV should be set to 0 at this point
\n
"
);
ok
(
!
GetWindow
(
(
HWND
)
wParam
,
GW_HWNDNEXT
),
"GW_HWNDNEXT should be set to 0 at this point
\n
"
);
ok
(
!
GetWindow
(
hwnd
,
GW_HWNDPREV
),
"GW_HWNDPREV should be set to 0 at this point
\n
"
);
ok
(
!
GetWindow
(
hwnd
,
GW_HWNDNEXT
),
"GW_HWNDNEXT should be set to 0 at this point
\n
"
);
if
(
0
)
{
/* Uncomment this once the test succeeds in all cases */
if
(
pGetAncestor
)
{
ok
(
pGetAncestor
(
(
HWND
)
wParam
,
GA_PARENT
)
==
hwndMessage
,
"GA_PARENT should be set to hwndMessage at this point
\n
"
);
ok
(
pGetAncestor
(
(
HWND
)
wParam
,
GA_ROOT
)
==
(
HWND
)
wParam
,
"GA_ROOT is set to %p, expected %p
\n
"
,
pGetAncestor
(
(
HWND
)
wParam
,
GA_ROOT
),
(
HWND
)
wParam
);
ok
(
pGetAncestor
(
hwnd
,
GA_PARENT
)
==
hwndMessage
,
"GA_PARENT should be set to hwndMessage at this point
\n
"
);
ok
(
pGetAncestor
(
hwnd
,
GA_ROOT
)
==
hwnd
,
"GA_ROOT is set to %p, expected %p
\n
"
,
pGetAncestor
(
hwnd
,
GA_ROOT
),
hwnd
);
if
((
style
&
(
WS_CHILD
|
WS_POPUP
))
==
WS_CHILD
)
ok
(
pGetAncestor
(
(
HWND
)
wParam
,
GA_ROOTOWNER
)
==
hwndMessage
,
ok
(
pGetAncestor
(
hwnd
,
GA_ROOTOWNER
)
==
hwndMessage
,
"GA_ROOTOWNER should be set to hwndMessage at this point
\n
"
);
else
ok
(
pGetAncestor
(
(
HWND
)
wParam
,
GA_ROOTOWNER
)
==
(
HWND
)
wParam
,
"GA_ROOTOWNER is set to %p, expected %p
\n
"
,
pGetAncestor
(
(
HWND
)
wParam
,
GA_ROOTOWNER
),
(
HWND
)
wParam
);
ok
(
pGetAncestor
(
hwnd
,
GA_ROOTOWNER
)
==
hwnd
,
"GA_ROOTOWNER is set to %p, expected %p
\n
"
,
pGetAncestor
(
hwnd
,
GA_ROOTOWNER
),
hwnd
);
}
ok
(
GetWindowRect
(
(
HWND
)
wParam
,
&
rc
),
"GetWindowRect failed
\n
"
);
ok
(
GetWindowRect
(
hwnd
,
&
rc
),
"GetWindowRect failed
\n
"
);
ok
(
EqualRect
(
&
rc
,
&
rc_null
),
"window rect should be set to 0 HCBT_CREATEWND
\n
"
);
ok
(
GetClientRect
(
(
HWND
)
wParam
,
&
rc
),
"GetClientRect failed
\n
"
);
ok
(
GetClientRect
(
hwnd
,
&
rc
),
"GetClientRect failed
\n
"
);
ok
(
EqualRect
(
&
rc
,
&
rc_null
),
"client rect should be set to 0 on HCBT_CREATEWND
\n
"
);
}
break
;
}
case
HCBT_MOVESIZE
:
case
HCBT_MINMAX
:
case
HCBT_ACTIVATE
:
case
HCBT_SETFOCUS
:
if
(
pGetWindowInfo
&&
IsWindow
(
hwnd
))
{
WINDOWINFO
info
;
/* Win98 actually does check the info.cbSize and doesn't allow
* it to be anything except sizeof(WINDOWINFO), while Win95, Win2k,
* WinXP do not check it at all.
*/
info
.
cbSize
=
sizeof
(
WINDOWINFO
);
ok
(
pGetWindowInfo
(
hwnd
,
&
info
),
"GetWindowInfo should not fail
\n
"
);
verify_window_info
(
code_name
,
hwnd
,
&
info
);
}
break
;
/* on HCBT_DESTROYWND window state is undefined */
case
HCBT_DESTROYWND
:
trace
(
"HCBT_DESTROYWND: hwnd %p
\n
"
,
hwnd
);
break
;
default:
break
;
}
return
CallNextHookEx
(
hhook
,
nCode
,
wParam
,
lParam
);
...
...
@@ -1502,8 +1509,8 @@ static LRESULT WINAPI mdi_child_wnd_proc_2(HWND hwnd, UINT msg, WPARAM wparam, L
{
CREATESTRUCTA
*
cs
=
(
CREATESTRUCTA
*
)
lparam
;
trace
(
"%s
\n
"
,
(
msg
==
WM_NCCREATE
)
?
"WM_NCCREATE"
:
"WM_CREATE"
);
trace
(
"x %d, y %d, cx %d, cy %d
\n
"
,
cs
->
x
,
cs
->
y
,
cs
->
cx
,
cs
->
cy
);
trace
(
"%s
: x %d, y %d, cx %d, cy %d
\n
"
,
(
msg
==
WM_NCCREATE
)
?
"WM_NCCREATE"
:
"WM_CREATE"
,
cs
->
x
,
cs
->
y
,
cs
->
cx
,
cs
->
cy
);
ok
(
!
(
cs
->
dwExStyle
&
WS_EX_MDICHILD
),
"WS_EX_MDICHILD should not be set
\n
"
);
ok
(
cs
->
lpCreateParams
==
mdi_lParam_test_message
,
"wrong cs->lpCreateParams
\n
"
);
...
...
@@ -1532,19 +1539,16 @@ static LRESULT WINAPI mdi_child_wnd_proc_2(HWND hwnd, UINT msg, WPARAM wparam, L
MINMAXINFO
*
minmax
=
(
MINMAXINFO
*
)
lparam
;
LONG
style
,
exstyle
;
trace
(
"WM_GETMINMAXINFO
\n
"
);
style
=
GetWindowLongA
(
hwnd
,
GWL_STYLE
);
exstyle
=
GetWindowLongA
(
hwnd
,
GWL_EXSTYLE
);
GetClientRect
(
parent
,
&
rc
);
trace
(
"parent %p client size = (%d x %d)
\n
"
,
parent
,
rc
.
right
,
rc
.
bottom
);
trace
(
"
WM_GETMINMAXINFO:
parent %p client size = (%d x %d)
\n
"
,
parent
,
rc
.
right
,
rc
.
bottom
);
GetClientRect
(
parent
,
&
rc
);
if
((
style
&
WS_CAPTION
)
==
WS_CAPTION
)
style
&=
~
WS_BORDER
;
/* WS_CAPTION = WS_DLGFRAME | WS_BORDER */
AdjustWindowRectEx
(
&
rc
,
style
,
0
,
exstyle
);
trace
(
"calculated max child window size = (%d x %d)
\n
"
,
rc
.
right
-
rc
.
left
,
rc
.
bottom
-
rc
.
top
);
dump_minmax_info
(
minmax
);
ok
(
minmax
->
ptMaxSize
.
x
==
rc
.
right
-
rc
.
left
,
"default width of maximized child %d != %d
\n
"
,
...
...
@@ -1560,18 +1564,19 @@ static LRESULT WINAPI mdi_child_wnd_proc_2(HWND hwnd, UINT msg, WPARAM wparam, L
RECT
rc1
,
rc2
;
GetWindowRect
(
hwnd
,
&
rc1
);
trace
(
"window: (%d,%d)-(%d,%d)
\n
"
,
rc1
.
left
,
rc1
.
top
,
rc1
.
right
,
rc1
.
bottom
);
SetRect
(
&
rc2
,
winpos
->
x
,
winpos
->
y
,
winpos
->
x
+
winpos
->
cx
,
winpos
->
y
+
winpos
->
cy
);
/* note: winpos coordinates are relative to parent */
MapWindowPoints
(
GetParent
(
hwnd
),
0
,
(
LPPOINT
)
&
rc2
,
2
);
trace
(
"pos: (%d,%d)-(%d,%d)
\n
"
,
rc2
.
left
,
rc2
.
top
,
rc2
.
right
,
rc2
.
bottom
);
ok
(
EqualRect
(
&
rc1
,
&
rc2
),
"rects do not match
\n
"
);
ok
(
EqualRect
(
&
rc1
,
&
rc2
),
"rects do not match, window=(%d,%d)-(%d,%d) pos=(%d,%d)-(%d,%d)
\n
"
,
rc1
.
left
,
rc1
.
top
,
rc1
.
right
,
rc1
.
bottom
,
rc2
.
left
,
rc2
.
top
,
rc2
.
right
,
rc2
.
bottom
);
GetWindowRect
(
hwnd
,
&
rc1
);
GetClientRect
(
hwnd
,
&
rc2
);
DefWindowProcA
(
hwnd
,
WM_NCCALCSIZE
,
0
,
(
LPARAM
)
&
rc1
);
MapWindowPoints
(
0
,
hwnd
,
(
LPPOINT
)
&
rc1
,
2
);
ok
(
EqualRect
(
&
rc1
,
&
rc2
),
"rects do not match
\n
"
);
ok
(
EqualRect
(
&
rc1
,
&
rc2
),
"rects do not match, window=(%d,%d)-(%d,%d) client=(%d,%d)-(%d,%d)
\n
"
,
rc1
.
left
,
rc1
.
top
,
rc1
.
right
,
rc1
.
bottom
,
rc2
.
left
,
rc2
.
top
,
rc2
.
right
,
rc2
.
bottom
);
}
/* fall through */
case
WM_WINDOWPOSCHANGING
:
...
...
@@ -1579,20 +1584,18 @@ static LRESULT WINAPI mdi_child_wnd_proc_2(HWND hwnd, UINT msg, WPARAM wparam, L
WINDOWPOS
*
winpos
=
(
WINDOWPOS
*
)
lparam
;
WINDOWPOS
my_winpos
=
*
winpos
;
trace
(
"%s
\n
"
,
(
msg
==
WM_WINDOWPOSCHANGING
)
?
"WM_WINDOWPOSCHANGING"
:
"WM_WINDOWPOSCHANGED"
);
trace
(
"%p after %p, x %d, y %d, cx %d, cy %d flags %08x
\n
"
,
trace
(
"%s
: %p after %p, x %d, y %d, cx %d, cy %d flags %08x
\n
"
,
(
msg
==
WM_WINDOWPOSCHANGING
)
?
"WM_WINDOWPOSCHANGING"
:
"WM_WINDOWPOSCHANGED
"
,
winpos
->
hwnd
,
winpos
->
hwndInsertAfter
,
winpos
->
x
,
winpos
->
y
,
winpos
->
cx
,
winpos
->
cy
,
winpos
->
flags
);
DefWindowProcA
(
hwnd
,
msg
,
wparam
,
lparam
);
trace
(
"%p after %p, x %d, y %d, cx %d, cy %d flags %08x
\n
"
,
ok
(
!
memcmp
(
&
my_winpos
,
winpos
,
sizeof
(
WINDOWPOS
)),
"DefWindowProc should not change WINDOWPOS: %p after %p, x %d, y %d, cx %d, cy %d flags %08x
\n
"
,
winpos
->
hwnd
,
winpos
->
hwndInsertAfter
,
winpos
->
x
,
winpos
->
y
,
winpos
->
cx
,
winpos
->
cy
,
winpos
->
flags
);
ok
(
!
memcmp
(
&
my_winpos
,
winpos
,
sizeof
(
WINDOWPOS
)),
"DefWindowProc should not change WINDOWPOS values
\n
"
);
return
1
;
}
}
...
...
@@ -2918,13 +2921,13 @@ static void test_validatergn(HWND hwnd)
static
void
nccalchelper
(
HWND
hwnd
,
INT
x
,
INT
y
,
RECT
*
prc
)
{
RECT
rc
;
MoveWindow
(
hwnd
,
0
,
0
,
x
,
y
,
0
);
GetWindowRect
(
hwnd
,
prc
);
trace
(
"window rect is %d,%d - %d,%d
\n
"
,
prc
->
left
,
prc
->
top
,
prc
->
right
,
prc
->
bottom
);
rc
=
*
prc
;
DefWindowProcA
(
hwnd
,
WM_NCCALCSIZE
,
0
,
(
LPARAM
)
prc
);
trace
(
"nccalc rect is %d,%d - %d,%d
\n
"
,
prc
->
left
,
prc
->
top
,
prc
->
right
,
prc
->
bottom
);
trace
(
"
window rect is %d,%d - %d,%d,
nccalc rect is %d,%d - %d,%d
\n
"
,
rc
.
left
,
rc
.
top
,
rc
.
right
,
rc
.
bottom
,
prc
->
left
,
prc
->
top
,
prc
->
right
,
prc
->
bottom
);
}
static
void
test_nccalcscroll
(
HWND
parent
)
...
...
@@ -3639,18 +3642,19 @@ static LRESULT WINAPI parentdc_window_procA(HWND hwnd, UINT msg, WPARAM wparam,
switch
(
msg
)
{
case
WM_PAINT
:
trace
(
"doing WM_PAINT on %p
\n
"
,
hwnd
);
GetClientRect
(
hwnd
,
&
rc
);
CopyRect
(
&
t
->
client
,
&
rc
);
trace
(
"client rect (%d, %d)-(%d, %d)
\n
"
,
rc
.
left
,
rc
.
top
,
rc
.
right
,
rc
.
bottom
);
GetWindowRect
(
hwnd
,
&
rc
);
trace
(
"window rect (%d, %d)-(%d, %d)
\n
"
,
rc
.
left
,
rc
.
top
,
rc
.
right
,
rc
.
bottom
);
trace
(
"WM_PAINT: hwnd %p, client rect (%d,%d)-(%d,%d), window rect (%d,%d)-(%d,%d)
\n
"
,
hwnd
,
t
->
client
.
left
,
t
->
client
.
top
,
t
->
client
.
right
,
t
->
client
.
bottom
,
rc
.
left
,
rc
.
top
,
rc
.
right
,
rc
.
bottom
);
BeginPaint
(
hwnd
,
&
ps
);
CopyRect
(
&
t
->
paint
,
&
ps
.
rcPaint
);
GetClipBox
(
ps
.
hdc
,
&
rc
);
CopyRect
(
&
t
->
clip
,
&
rc
);
trace
(
"clip rect (%d, %d)-(%d, %d)
\n
"
,
rc
.
left
,
rc
.
top
,
rc
.
right
,
rc
.
bottom
);
trace
(
"paint rect (%d, %d)-(%d, %d)
\n
"
,
ps
.
rcPaint
.
left
,
ps
.
rcPaint
.
top
,
ps
.
rcPaint
.
right
,
ps
.
rcPaint
.
bottom
);
trace
(
"clip rect (%d,%d)-(%d,%d), paint rect (%d,%d)-(%d,%d)
\n
"
,
rc
.
left
,
rc
.
top
,
rc
.
right
,
rc
.
bottom
,
ps
.
rcPaint
.
left
,
ps
.
rcPaint
.
top
,
ps
.
rcPaint
.
right
,
ps
.
rcPaint
.
bottom
);
EndPaint
(
hwnd
,
&
ps
);
return
0
;
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment