[THIN] Re: multiple monitors
- From: Marc-André Lapierre <malapierre@xxxxxxxxxxx>
- To: "thin@xxxxxxxxxxxxx" <thin@xxxxxxxxxxxxx>
- Date: Wed, 29 Oct 2008 13:10:16 -0400
Also you can look at this for the same registrykey
Calculating the DWORD
Each hook has an associated value as shown in the table below. The hooks in red
are on by default.
Flag name
Decimal value
Hex value
When to use
COLORADOHOOKS
1
0x1
This hook is part of the base set of hooks and should not be turned off, unless
you wish to disable hooks for an application. It is responsible for correct
maximizing/minimizing and clipping of top-level windows.
SYSTEMMETRICSHOOK
2
0x2
This hook is part of the base set of hooks and should not be turned off, unless
you wish to disable hooks for an application. It is reponsible for reporting
the correct number of client monitors (SM_CMONITORS) within the session.
GETMONFROMWINDOWHOOK
4
0x4
Use this hook to ensure the MonitorFromWindow API works correctly. Applications
use this API to determine which monitor a window resides on. See
http://msdn2.microsoft.com/en-us/library/ms534601.aspx for more details.
GETMONFROMRECTHOOK
8
0x8
Use this hook to ensure the MonitorFromRect API works correctly. Applications
use this API to determine which monitor a specified rectangle (e.g., window
rectangle) resides on. See
http://msdn2.microsoft.com/en-us/library/ms534605.aspx for more details.
GETMONFROMPOINTHOOK
16
0x10
Use this hook to ensure the MonitorFromPoint API works correctly. Applications
use this API to determine which monitor a specified point (e.g., window
coordinate) resides on. See
http://msdn2.microsoft.com/en-us/library/ms534603.aspx for more details.
GETMONINFOHOOK
32
0x20
Use this hook to ensure the GetMonitorInfo API returns a correctly populated
MONITORINFO structure. Applications usually use this API during monitor
enumeration, and use the results to position top-level windows accordingly. See
http://msdn2.microsoft.com/en-us/library/ms534599.aspx for more details.
ENUMDISPMONHOOK
64
0x40
Use this hook to ensure the EnumDisplayMonitors API enumerates the correct
number of client monitors. This hook is usually used in conjuction with
GETMONINFOHOOK (see above). Applications that enumerates monitors (e.g.,
PowerPoint in Presenter mode allows you to select which monitor the
presentation should be displayed on) should have this hook turned on. See
http://msdn2.microsoft.com/en-us/library/ms534809.aspx for more details.
ENUMDISPDEVHOOK
128
0x80
Use this hook to ensure the EnumDisplayDevices API enumerates the correct
number of client monitors (devices). The DISPLAY_DEVICE structure will be
populated with client monitor information. Some applications use this API to
query device specific information (such as device name). See
http://msdn2.microsoft.com/en-us/library/ms533226.aspx for more details.
ENUMDISPSETHOOK
256
0x100
Use this hook to ensure the EnumDisplaySettings API retrieves graphics mode
information for each monitor. The DEV_MODE structure will be partially
populated with graphics mode information. Some applications use this API in
order to determine specific graphics mode capabilities. Applications suffering
from drawing/painting issues (e.g., client area not painted correctly on
resize) should try this hook. See
http://msdn2.microsoft.com/en-us/library/ms533265.aspx for more details.
CREATEDCHOOK
512
0x200
Use this hook to ensure the CreateDC API correctly creates a device context
associated with the primary display, and not individual client monitors
(display). Applications use this API to permit drawing to a specified monitor
in a desired format (e.g, monitors on the same system can have different pixel
formats). However, since the session is really a single display, the hook is
used to force create device contexts associated with the primary display
device. Use this hook if an application suffers from painting issues. See
http://msdn2.microsoft.com/en-us/library/ms533246.aspx for more details.
CBTDIALOGHOOK
1024
0x400
This hook is part of the base set of hooks and should not be turned off, unless
you wish to disable hooks for an application. It is responsible for correct
placing/centering child dialogs (e.g., message boxes).
LAUNCHONMONITORHOOK
2048
0x800
This hook attempts to position an application on a particular monitor, on
startup. If enabled, the default monitor can be specified by the ICA parameter
"PreferredLaunchMonitor" which accepts a value from 0 .. (n-1) where n is the
number of client monitors. The monitors are enumerated in row-major order i.e.
top-left to bottom-right. Currently, the Colorado server-side
"DefaultLaunchMonitor" registry value is disabled.
WINDOWLONGHOOKS
4096
0x1000
This hook is part of the base set of hooks and should not be turned off, unless
you wish to disable hooks for an application. It is responsible for catching
applications that dynamically subclass windows, and enforcing MMHook's
COLORADOHOOKS.
IGNORE_WS_MAXIMIZE_BOX
8192
0x2000
Currently, before subclassing a window (applying COLORADOHOOKS), MMHook
examines a window's style to ensure a maximize box is present. This is used as
a marker for the maximize window capability, and to ensure MMHook does not
subclass windows unnecessarily. If a window can be maximized (e.g., from the
taskbar), but does not have a maximize button, this check can be turned off by
setting this flag.
SUBCLASS_OWNED_WINDOWS
16384
0x4000
MMHook identifies a top-level window as a window that does not have a parent.
However, some applications use, as their main window, an owned window. If an
application window is maximizing across screens, try turning this flag on as it
may be an owned window.
SYSTEMPARAMETERSINFOHOOK
32768
0x8000
Used to return the work-area of the primary monitor. See
(http://msdn2.microsoft.com/en-us/library/ms724947.aspx, SPI_GETWORKAREA) for
more details.
FORCEMAXIMIZETOMONITOR
65536
0x10000
Applications that intercept the WM_GETMINMAXINFO notification (see
http://msdn2.microsoft.com/en-us/library/ms632626.aspx for more details) can
restrict the area a window is maximized to. To override this behaviour, set
this flag.
[cid:image001.png@01C939C7.AF8FC5C0]________________________________________________________
Marc-André Lapierre, MALICIS Informatique Inc.
Architecte Senior / Senior Architect
[cid:image002.png@01C939C7.AF8FC5C0]
2121 rue Crescent, Suite 500
Montréal, Quebec
H3G 2C1
Cel: (514) 516-0040
Bur: (514) Ti91100 (849-1100)
fax: (514) Ti91100 (849-1100)
malapierre@xxxxxxxxxxx<mailto:malapierre@xxxxxxxxxxx>
www.malicis.com
De : thin-bounce@xxxxxxxxxxxxx [mailto:thin-bounce@xxxxxxxxxxxxx] De la part de
Steve Snyder
Envoyé : 28 octobre 2008 22:21
À : thin@xxxxxxxxxxxxx
Objet : [THIN] multiple monitors
xenapp 4.5 fp1 with hr03, w2k3 R2, xpsp2 running ica client 10.2 dual monitors,
both set to 1280x1024, 60hz. Published apps will *only* work on the primary
monitor - try and drag them to the other monitor and they just disappear, or at
least the part of the app that's on the monitor.
Anyone?
- References:
- [THIN] multiple monitors
- From: Steve Snyder
- [THIN] multiple monitors
Other related posts:
- » [THIN] multiple monitors
- » [THIN] Re: multiple monitors
- » [THIN] Re: multiple monitors
- » [THIN] Re: multiple monitors - Rick Mack

