Description
- WM_SYSCOLORCHANGE/WM_DISPLAYCHANGE/WM_WININICHANGE need to be handled to all the propsheet/wizard pages, and to the internal tab control container.
See CORE-13212, commit d09c3d0af8, and PR #9239.
- Send WM_ACTIVATE and WM_ACTIVATEAPP to the property sheet active page.
And do the same with WM_ENABLE, WM_QUERYENDSESSION, WM_ENDSESSION, and WM_DEVICECHANGE, after sending them to the tab control first.
See PR #9239.
Verification of messages ordering on Win2003:
ReactOS setup wizard windows tree:

Spy++ capture settings:
The tested window messages: WM_SYSCOLORCHANGE and WM_DISPLAYCHANGE (note: WM_WININICHANGE not available in Spy++); as well as:
WM_ENABLE, WM_QUERYENDSESSION, WM_ENDSESSION (not directly tested in what follows), and:
WM_DEVICECHANGE, WM_ACTIVATE, WM_ACTIVATEAPP.

Messages monitoring results:
ROS_setup_propsheet_messages_on_Win2003.txt![]()
- Activating and deactivating the setup wizard:
Activating the Install Wizard window
|
====================================
|
|
|
(Aux.windows):
|
<00001> 0004005E S WM_ACTIVATEAPP fActive:True dwThreadID:00000000 [wParam:00000001 lParam:00000000]
|
<00002> 000200BA S WM_ACTIVATEAPP fActive:True dwThreadID:00000000 [wParam:00000001 lParam:00000000]
|
|
|
Main window:
|
<00003> 000200BE S WM_ACTIVATEAPP fActive:True dwThreadID:00000000 [wParam:00000001 lParam:00000000]
|
Current page:
|
<00004> 00030074 S WM_ACTIVATEAPP fActive:True dwThreadID:00000000 [wParam:00000001 lParam:00000000]
|
|
|
Main window:
|
<00005> 000200BE S WM_ACTIVATE fActive:WA_CLICKACTIVE fMinimized:False hwndPrevious:(null) [wParam:00000002 lParam:00000000]
|
Current page:
|
<00006> 00030074 S WM_ACTIVATE fActive:WA_CLICKACTIVE fMinimized:False hwndPrevious:(null) [wParam:00000002 lParam:00000000]
|
|
|
|
|
Deactivating the Install Wizard window
|
======================================
|
|
|
Main window:
|
<00007> 000200BE S WM_ACTIVATE fActive:WA_INACTIVE fMinimized:False hwndPrevious:(null) [wParam:00000000 lParam:00000000]
|
Current page:
|
<00008> 00030074 S WM_ACTIVATE fActive:WA_INACTIVE fMinimized:False hwndPrevious:(null) [wParam:00000000 lParam:00000000]
|
|
|
(Aux.windows):
|
<00009> 0004005E S WM_ACTIVATEAPP fActive:False dwThreadID:000002C4 [wParam:00000000 lParam:000002C4]
|
<00010> 000200BA S WM_ACTIVATEAPP fActive:False dwThreadID:000002C4 [wParam:00000000 lParam:000002C4]
|
|
|
Main window:
|
<00011> 000200BE S WM_ACTIVATEAPP fActive:False dwThreadID:000002C4 [wParam:00000000 lParam:000002C4]
|
Current page:
|
<00012> 00030074 S WM_ACTIVATEAPP fActive:False dwThreadID:000002C4 [wParam:00000000 lParam:000002C4]
|
We observe that, first, the main wizard window is notified, and then only the current wizard page.
Note that no other wizard page, neither the internal wizard tab control container, are notified there.
- Changing the screen resolution only:
Changing the screen resolution
|
==============================
|
|
|
(Aux.windows):
|
<00013> 0004005E S WM_DISPLAYCHANGE cBitsPerPixel:32 cxScreen:1024 cyScreen:768 [wParam:00000020 lParam:03000400]
|
<00014> 000200BA S WM_DISPLAYCHANGE cBitsPerPixel:32 cxScreen:1024 cyScreen:768 [wParam:00000020 lParam:03000400]
|
|
|
Main window:
|
<00015> 000200BE S WM_DISPLAYCHANGE cBitsPerPixel:32 cxScreen:1024 cyScreen:768 [wParam:00000020 lParam:03000400]
|
|
|
Other page 1:
|
<00016> 000200A6 S WM_DISPLAYCHANGE cBitsPerPixel:32 cxScreen:1024 cyScreen:768 [wParam:00000020 lParam:03000400]
|
Other page 2:
|
<00017> 00020072 S WM_DISPLAYCHANGE cBitsPerPixel:32 cxScreen:1024 cyScreen:768 [wParam:00000020 lParam:03000400]
|
Current page:
|
<00018> 00030074 S WM_DISPLAYCHANGE cBitsPerPixel:32 cxScreen:1024 cyScreen:768 [wParam:00000020 lParam:03000400]
|
|
|
SysTabControl32:
|
<00019> 000400AA S WM_DISPLAYCHANGE cBitsPerPixel:32 cxScreen:1024 cyScreen:768 [wParam:00000020 lParam:03000400]
|
We observe that, first, the main wizard window is notified, then all the tabs one after the order in order ("Other page 1, 2, and Current page are respectively: "Intro", "Install type", and "Abort" pages).
Only then, the internal wizard tab control container is notified.
- Changing the screen depth colors:
Changing the color depth (from 32bpp to 16bpp)
|
==============================================
|
|
|
(Aux.windows):
|
<00032> 0004005E S WM_DISPLAYCHANGE cBitsPerPixel:16 cxScreen:1024 cyScreen:768 [wParam:00000010 lParam:03000400]
|
<00033> 000200BA S WM_DISPLAYCHANGE cBitsPerPixel:16 cxScreen:1024 cyScreen:768 [wParam:00000010 lParam:03000400]
|
|
|
Main window:
|
<00034> 000200BE S WM_DISPLAYCHANGE cBitsPerPixel:16 cxScreen:1024 cyScreen:768 [wParam:00000010 lParam:03000400]
|
|
|
Other page 1:
|
<00035> 000200A6 S WM_DISPLAYCHANGE cBitsPerPixel:16 cxScreen:1024 cyScreen:768 [wParam:00000010 lParam:03000400]
|
Other page 2:
|
<00036> 00020072 S WM_DISPLAYCHANGE cBitsPerPixel:16 cxScreen:1024 cyScreen:768 [wParam:00000010 lParam:03000400]
|
Current page:
|
<00037> 00030074 S WM_DISPLAYCHANGE cBitsPerPixel:16 cxScreen:1024 cyScreen:768 [wParam:00000010 lParam:03000400]
|
|
|
SysTabControl32:
|
<00038> 000400AA S WM_DISPLAYCHANGE cBitsPerPixel:16 cxScreen:1024 cyScreen:768 [wParam:00000010 lParam:03000400]
|
|
|
(Aux.windows):
|
<00039> 0004005E S WM_SYSCOLORCHANGE wParam:00000000 lParam:00000000
|
<00040> 000200BA S WM_SYSCOLORCHANGE wParam:00000000 lParam:00000000
|
|
|
Main window:
|
<00041> 000200BE S WM_SYSCOLORCHANGE wParam:00000000 lParam:00000000
|
|
|
Other page 1:
|
<00042> 000200A6 S WM_SYSCOLORCHANGE wParam:00000000 lParam:00000000
|
Other page 2:
|
<00043> 00020072 S WM_SYSCOLORCHANGE wParam:00000000 lParam:00000000
|
Current page:
|
<00044> 00030074 S WM_SYSCOLORCHANGE wParam:00000000 lParam:00000000
|
|
|
SysTabControl32:
|
<00045> 000400AA S WM_SYSCOLORCHANGE wParam:00000000 lParam:00000000
|
We first get a WM_DISPLAYCHANGE message, followed by WM_SYSCOLORCHANGE. For that latter message also, the main wizard window is first notified, then all the wizard pages in order, and only then the internal wizard tab control container.
Attachments
Issue Links
- relates to
-
CORE-13212 Win32k doesn't correctly broadcast the WM_DISPLAYCHANGE message
-
- Untriaged
-