Symptoms
Custom applications do not launch correctly on a multiple monitor workstation using the 9.xx 32-bit Windows client and connecting to Presentation Server 4.0.
However, these applications launch correctly if a version 8.xx or earlier client is used to connect to a Presentation Server 4.0, or when using any client version connecting to Presentation Server 3.0 or earlier.
Symptoms include the application unexpectedly exiting, or in some cases generating a Dr. Watson exception.
Cause
Starting with Presentation Server 4.0 and the 9.0 32-bit Windows client, multiple monitor improvements include a new server-side file, mmhook.dll, which intercepts certain Windows calls to get specific information.
For example, mmhook.dll intercepts the Windows call to get the maximum and minimum size for a window to display. Typically, Windows uses the WM_GETMINMAXINFO message to do this.
Because applications running in a session are not aware that they are actually being displayed on a client-side multiple monitor configuration, the mmhook.dll, having received the client-side display size(s) during the initial connection, reports this information to the published application.
This mechanism uses Windows hooking capabilities.
Resolution
Caution! This fix requires you to edit the registry. Using Registry Editor incorrectly can cause serious problems that may require you to reinstall your operating system. Citrix cannot guarantee that problems resulting from the incorrect use of Registry Editor can be solved. Use Registry Editor at your own risk. Be sure to back up the registry before you edit it.
Available with Hotfix Rollup Pack 1 for Presentation Server 4.0 and later, a new registry key is available that allows administrators to specify the names of application processes that need to be excluded from being monitored.
- path: HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\CtxHook\AppInit_Dlls\Multiple Monitor Hook
- Value Name: Exclude
- Type: REG_SZ (String Value)
- Value Data: myprocessname.exe
Note: The name should include the extension, is case-sensitive, and should be semicolon-delimited. For example:
Value Data: Financial.exe;BankApp.exe;medical.exe;Travel.exe
Case sensitivity of the processes entered in the registry is determined by viewing the process names as the way they appear within Task Manager.
More Information
CTX108055 – [Document Not Found]
CTX108819 – [Document Not Found]
CTX112913 – [Document Not Found]
CTX112217 – [Document Not Found]
CTX107824 – Citrix API Hooks (mfaphook.dll) Explained and Enumerated
CTX112908 – LIMITED RELEASE - Hotfix PSE400R03W2K009 - For Citrix Presentation Server 4.0 for Windows 2000 Server
SalesLogix Architect.exe produced the error: System Error. Code: 1400. Invalid Window Handle. The above registry change resolves the issue.