Can't find the information you are looking for here? Then leave a message over on our WinBatch Tech Support Forum.
Keywords: EHLLAPI extenders updates new features
EHLLAPI Terminal Emulator EXTENDER FIXES AND IMPROVEMENTS =================================================================== Version 38000 Sep 26, 2002 Initial Release. Enhanced HLLAPI Extender =================================================================== Version 38001 Release Notes, Jan 31 2003 1) Fixed a problem with ehllapiSearchPS() not properly accepting an empty string for the "position" parameter when the "SRCHALL" session parameter is enabled. 2) Fixed numerous incompatibilty problems with Attachmate and IBM PCCOMM. Refer to updated ehllapiInit() function. Fixes were also implemented for other terminal emulators, too, when it was possible to work around problems with the specific HLLAPI implementations for the various terminal emulators. Fixes include correcting Attachmate's improper returning of the EAB status bit as bit #0 instead of bit #7, as well as correcting IBM PCComm's improper returning of the caps lock status bit as bit #5 instead of bit #7. Other internal fixes were made that don't alter how any of the ehllapi*() functions are used, but which still correct some problems w/respect to how the underlying HLLAPI implementations actually function. 3) The ehllapiInit() function has been modified to accept additional flag bit values that allow the extender to enable exception handling code that works around some deficiencies in the various HLLAPI implementations used by the various terminal emulator products. Not all HLLAPI implementations properly implement the HLLAPI specifications, so it is necessary to explicitly tell the extender which terminal emulator is being used [and possibly how it is configured] so that the extender can function properly. Refer to the updated help for the ehllapiInit() function. 4) The docs for ehllapiSendKey() have been updated to correct some errors in the mnemonic key codes. 5) The docs for ehllapiCopyOIA() have been updated. Not all terminal emulators implement all of the flag groups, so it is possible that testing for things like whether or not the CAPSLOCK or NUMLOCK status indicators are turned on in the OIA might fail to work properly in some situations. It is necessary to review the HLLAPI programming docs for each terminal emulator to determine which of these flag groups are implemented. Typically, a terminal emulator which does not implement certain flag groups will simply cause a zero value to be returned by ehllapiCopyOIA() for those unimplemented flag groups. 6) The following caveats/warnings need to stated regarding unresolved HLLAPI incompatibility problems and other issues associated with specific terminal emulators: A) Hummingbird HostExplorer has a problem that causes a WinBatch script to not be able to terminate properly after the EHLLAPI extender has been used to connect to a presentation space in the terminal emulator. Hummingbird's tech support has been contacted regarding this problem but no fix has been made available to correct this problem. Even though the script has exited, its process will remain present on the system and will not automatically terminate. It will be necessary to kill the process using the task manager or any other tool that can forcibly kill a process. B) IBM PCCOMM & Hummingbird HostExplorer have a problem in that they always report EABs as being enabled even if EABs have been disabled. This causes the EHLLAPI extender to function improperly if the EAB session parameter is explicitly set to NOEAB when using these terminal emulators. To compensate for this, the default setting in the extender is to turn EABs on when the extender initializes a HLLAPI DLL. As a further precaution, if the "personality" flags passed in to ehllapiInit() indicate that either of these two terminal emulators are being used, then all attempts at turning off EABs will be silently ignored. C) Rumba and Hummingbird HostExplorer both use HLLAPI implementations that make use of multiple DLLs. This means that any script that makes use of the EHLLAPI extender and either of these two terminal emulators must either make the terminal emulator's directory the current working directory or must add the terminal emulator's directory to the script's search path before any calls are made to ehllapiInit(). Passing in a fully qualified file spec for the terminal emulator's HLLAPI DLL will *NOT* serve as a work around for this problem. You can use the WIL Environment() & EnvironSet() functions to modify the search path for a single script if you don't want to put the terminal emulator's search path into the global environment on your workstation. Simply append the terminal emulator's directory on to the end of the current value of the "PATH" environment variable [delimited by a ";"] and then write the "PATH" environment variable back to your local copy of the environment variables. D) Attachmate can be configured for either standard or enhanced HLLAPI interfaces. If it has been configured to use the standard HLLAPI interface, and a script that is using the emulator via the EHLLAPI extender crashes due to some sort of error, it will not be possible to re-connect to the presentation space w/o first stopping & restarting Attachmate. This problem does not exist when the enhanced HLLAPI interface is being used in Attachmate. Version 38002 Release Notes, April 15 2004 1) Fixed a problem having to do with IBM PC Comm's HLLAPI implementation, which does not conform to the Enhanced HLLAPI specifications. This problem is primarily centered around how the EAB flag is tracked & reported inside the emulator's HLLAPI implementation. In various situations, the EAB flag is always reported as being on or off regardless of how it has been set using the ehllapiSetSessionParams() function. This, in turn, causes functions like ehllapiCopyTextToPS() and ehllapiCopyTextFromPS() to malfunction in various and sundry ways. 2) Updated documentation of ehllapiInit() to call out specific issues associated with using IBM PC Comm with the EHLLAPI extender. 3) It has been observed that error 210 occurs when calling ehllapiPause() when using IBM PC Comm. This error indicates that the underlying terminal emulator does not implement the hllapi function code that is required by ehllapiPause(). This error condition needs to be trapped in a script and handled as it is a legitimate error that can occur anytime that a hllapi function is used that is defined as being optional in the hllapi specifications and which is not implemented by the terminal emulator software. Consider using the function ehllapiQueryHostNotify() in a combination with TimeDelay() in a loop to replace the functionality of ehllapiPause(). 4) IBM Host On-Demand [HOD] has an EHLLAPI Bridge component that allows HLLAPI client applications to work with the Java-based HOD terminal emulator. Testing has been done using HOD v7.0.3 and EHLLAPI Bridge v2.0.3. The results of the testing revealed some deficiencies in the HLLAPI implementation of this terminal emulator that required additional special-case code to be written to work around those deficiencies. This release of the EHLLAPI extender has provisional support for HOD w/EHLLAPI Bridge. No testing was done with older versions of HOD and the EHLLAPI Bridge software. If the EHLLAPI extender fails to work properly with an older version of the emulator then it is recommended that you upgrade to at least the versions that were tested with this build of the EHLLAPI extender. Refer to the ehllapiInit() documentation for specific details on using the IBM Host On-Demand w/EHLLAPI Bridge software with the EHLLAPI extender. For those who don't know what HOD is, it is a Java-based terminal emulator. It can be launched via any web browser that has the proper Java support enabled in the browser. Furthermore, the EHLLAPI Bridge is another software component that can be downloaded [for free] from IBM for use with HOD. The bridge allows for the Java-based HOD emulator [TN3270, TN5250 sessions] to be "bridged" over into the the underlying Win32 programming environment. This means that the EHLLAPI extender can make HLLAPI function calls into a Win32 DLL that in turn passes the HLLAPI communications back on into the JVM [Java Virtual Machine] in which HOD is being run. The EHLLAPI Bridge component must be explicitly installed on each client workstation where HLLAPI communications are to be supported with HOD sessions. v38003.0.0.1 Release Notes, May 18, 2004 1) The “NUL” device no longer needs to be present on the system for the internal *AllocPrintf*() functions to work properly. Previously, these utility functions were dependent upon the “NUL” device being present. However, it has been determined that builds of the WinXPe [Windows XP Embedded] operating system may not have this device present. The end result was that not enough memory was being allocated to contain delimited lists of string values and memory access violation errors were occurring. These utility routines have been re-written using code from the MS Visual C/C++ C Run Time library to allow them to function properly w/o the “NUL” device. v44001.0.0.1 Release Notes, 2005-04-20 Internal release v44002.0.0.1 Release Notes, 2005-04-22 1) Due to the extensive use of array handling features in the extender interface, this extender has been updated to use the newer WIL extender interface specifications that eliminate memory leaks associated with extender functions that return array containing string values. As of v44001 of the EHLLAPI extender, WinBatch / WinBatch+Compiler 2004G is the oldest version that will work with the extender. 2) Seagull Software's BlueZone terminal emulator is now supported. A new personality flag to support this emulator is documented in the ehllapiInit() function's help topic. 3) Hummingbird HostExplorer v10.0.0.5 has been tested and re-certified for use with the EHLLAPI extender. One critical thing to make note of is that the help topic that discusses issues related to particular extenders has been updated to to clarify a problem that exists regarding the handling of EABs in HostExplorer. The new text for paragraph "B" should read as follow in the help topic "Issues Related to Specific Terminal Emulators": Hummingbird HostExplorer has a problem in that is always report EABs as being enabled even if EABs have been disabled. This causes the EHLLAPI extender to function improperly if the EAB session parameter is explicitly set to NOEAB when using this terminal emulator. To compensate for this, the default setting in the extender is to turn EABs on when the extender initializes the HLLAPI DLL *AND* the HostExplorer personality flag has been specified. As a further precaution, if the "personality" flags passed in to ehllapiInit() indicate that HostExplorer is being used, then all attempts at turning off EABs will be silently ignored. If an attempt is made to disable EABs and then text is copied to the PS [Presentation Space] w/o also supplying some "dummy" EAB data, the attempt will fail with an error 900 [invalid parameter]. The following snippet of code shows how to create dummy EAB data for a call to ehllapiCopyTextToPS(): ; Prior to this code being executed, EABs may have been explicitly ; enabled or disabled via a call to ehllapiSetSessionParams(). If ; HostExplorer is being used, EABs will always be enabled at all ; times regardless of whether or not an attempt has been made to ; disable them. ; Get the current cursor position so that we know where to place ; the text that we will send to the PS. CurPos = ehllapiQueryCursorLoc(2) ; If EABs are reported as being on, then we build dummy ; EAB strings to make use of. This is necessary because ; some emulators always behave as if EABs are on even if ; they are off. bEAB = ehllapiQueryPSStatus(3) ; Determine what text to send. TextToSend = 'LOGON APPLID(CIDTOR)' ErrorMode(@OFF) if (bEAB) Result = ehllapiCopyTextToPS(2,CurPos,TextToSend,StrFill('00',StrLen(TextToSend) * 2)) else Result = ehllapiCopyTextToPS(2,CurPos,TextToSend,'') endif RC = LastError() ErrorMode(@CANCEL) if (RC) ; Handle the error endif HummingBird HostExplorer, at least as of v10.x, has an option to set the API compatibility mode for HLLAPI. On the emulator's main window, the menu choice "Options -> API Settings..." opens up the "API Global Settings" dialog box. At the bottom is a list box labeled "EHLLAPI compatibility:". All testing was done with the mode set to "Attachmate", so use of the other modes may result in the EHLLAPI extender not properly working with HostExplorer. Even thought the compatibility mode is "Attachmate", be sure that you specify the HostExplorer personality flag value in calls to ehllapiInit(). HostExplorer provides multiple DLLs for HLLAPI programming, but only one of them has been tested with the EHLLAPI extender. Make certain that calls to ehllapiInit() specify the DLL name for HostExplorer that is identified in the help topic for ehllapiInit(). Failing to do so may result in the EHLLAPI extender not working properly with HostExplorer. 4) The text for paragraph "A" in the help topic "Issues Related to Specific Terminal Emulators" no longer applies to any version of Hummingbird HostExplorer. The vendor that produces the terminal emulator has identified a work-around for the problem. The work-around has been coded into the EHLLAPI extender. Paragraph "A" has been modified to indicate that the problem no longer exists. 5) FutureSoft's DynaComm Connectivity Series 8 [v22.214.171.124] terminal emulator has been tested & certified for use with the EHLLAPI extender. Refer to the ehllapiInit() function's help topic for details regarding the personality flags, HLLAPI DLL name, etc... that need to be passed in to ehllapiInit() to use this emulator with the EHLLAPI extender. Please note that EHLLAPI support in a DynaComm session is disabled by default and must be explicitly enabled when configuring a session. 6) The function ehllapiVersion() has been modified. A new request code is available that will result in extender version information being returned in a binary buffer in addition to the string & array formats that were previously used. 7) The documentation for ehllapiInit() has been updated to make note of changes to the personality flags information for HostExplorer, as well as to add personality flags information for BlueZone & DynaComm.
Article ID: W15400
File Created: 2017:07:28:13:58:28
Last Updated: 2011:09:14:12:48:33