WinBatch Tech Support Home

Database Search

If you can't find the information using the categories below, post a question over in our WinBatch Tech Support Forum.



Can't find the information you are looking for here? Then leave a message over on our WinBatch Tech Support Forum.

EHLLAPI Extender News

Keywords: 	  EHLLAPI extenders updates new features  

EHLLAPI Terminal Emulator EXTENDER 


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

    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
   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.
   if (bEAB)
     Result = ehllapiCopyTextToPS(2,CurPos,TextToSend,StrFill('00',StrLen(TextToSend) * 2))
     Result = ehllapiCopyTextToPS(2,CurPos,TextToSend,'')
   RC = LastError()
   if (RC)
     ; Handle the error
   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 [v8.0.0.5] 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