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. |
________________________________________________________
Marc-André Lapierre, MALICIS Informatique Inc.
Architecte Senior / Senior Architect
2121 rue Crescent, Suite 500
Montréal, Quebec
H3G 2C1
Cel: (514) 516-0040
Bur: (514) Ti91100 (849-1100)
fax: (514) Ti91100 (849-1100)
De : thin-bounce@freelists.org [mailto:thin-bounce@freelists.org] De la part de Steve Snyder
Envoyé : 28 octobre 2008 22:21
À : thin@freelists.org
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?
No comments:
Post a Comment