[THIN] Re: multiple monitors

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?

PNG image

PNG image

Other related posts: