
It is responsible for correct placing/centering child dialogs (for example, message boxes). 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. Use this hook if an application suffers from painting issues. However, because the session is a single display, the hook is used to force create device contexts associated with the primary display device. Applications use this API to permit drawing to a specified monitor in a desired format (for example, monitors on the same system can have different pixel formats). Use this hook to ensure that the CreateDC API correctly creates a device context associated with the primary display, and not individual client monitors (display).

See EnumDisplaySettings function for more details. Applications suffering from drawing/painting issues (for example, client area not painted correctly on resize) should try this hook. Some applications use this API to determine specific graphics mode capabilities. The DEV_MODE structure will be partially populated with graphics mode information. Use this hook to ensure that the EnumDisplaySettings API retrieves graphics mode information for each monitor. See EnumDisplayDevices function for more details. Some applications use this API to query device specific information (such as device name). The DISPLAY_DEVICE structure will be populated with client monitor information.


Use this hook to ensure that the EnumDisplayDevices API enumerates the correct number of client monitors (devices). See EnumDisplayMonitors function for more details. Applications that enumerate monitors (for example, PowerPoint in Presenter mode allows you to select which monitor the presentation should be displayed on) should have this hook turned on. This hook is usually used in conjunction with GETMONINFOHOOK. Use this hook to ensure that the EnumDisplayMonitors API enumerates the correct number of client monitors. See GetMonitorInfo function for more details.
#Multimon taskbar registration windows#
Applications usually use this API during monitor enumeration, and use the results to position top-level windows accordingly. Use this hook to ensure that the GetMonitorInfo API returns a correctly populated MONITORINFO structure. See MonitorFromPoint function for more details. Applications use this API to determine which monitor a specified point (for example, window coordinate) resides on. Use this hook to ensure that the MonitorFromPoint API works correctly. See MonitorFromRect function for more details. Applications use this API to determine which monitor a specified rectangle (for example, window rectangle) resides on. Use this hook to ensure that the MonitorFromRect API works correctly. See MonitorFromWindow function for more details. Applications use this API to determine which monitor a window resides on. Use this hook to ensure the MonitorFromWindow API works correctly. See GetSystemMetrics function for more details. It is responsible for reporting the correct number of client monitors (SM_CMONITORS) within the session. It is responsible for correct maximizing/minimizing and clipping of top-level windows.

The hooks marked with +, are enabled by default in Hotfix Rollup Pack 2 for Presentation Server 4.5 and later. The hooks marked with **, are enabled by default. The following sample screen shot shows the multiple-monitor hooking for an application named PWConsole.exe:Įach hook has an associated value as displayed in the following table: For Citrix Presentation Server 4.5, the brackets are no longer required. Note: The DWORD for Citrix Presentation Server 4.0 required brackets. The preferred method to work with a problematic application is to set a DWORD that overrides the server defaults for the specific application. Setting a DWORD named DefaultHooks changes the set of hooks used by all applications on the server. HKLM\Software\Wow6432Node\Citrix\CtxHook\AppInit_dlls\Multiple Monitor Hook HKLM\Software\Citrix\CtxHook\AppInit_dlls\Multiple Monitor Hook ProcedureĬaution! Refer to the Disclaimer at the end of this article before using Registry Editor. Multi-monitor configuration is performed by setting registry values. This article contains information about Citrix Multi-Monitor server side registry settings.
