

EMTEC HLLAPI README:

## CONTENT
- DLL NAMES
- INSTALLATION/USE:
- CLIENT SAMPLE PROGRAM
- SUPPORTED HLLAPI FUNCTIONS:
- CLOSING NOTE AND QUESTIONS



  
## DLL NAMES:

- `EHLAPI32.DLL` for 32-bit client app and for use with 32-bit version of ZOC 
- `EHLAPI64.DLL` for 64-bit client app and for use with 64-bit version of ZOC 
- DLL-export 'hllapi' (lowercase):
- Prototype: `long WINAPI hllapi(LPINT pfunc, LPSTR pmem, LPINT plen, LPINT prc);`
- HLLAPI-Version: We use the 'enhanced' version of the API, e.g., 8-byte input
  for HA_CONVERT_POS_ROW_COL or 16-byte structures on HA_QUERY_SESSIONS.


## INSTALLATION/USE:

Copy the `EHLAPI*.DLL` files into the ZOC Terminal installation folder.

Either copy your interface application into the ZOC program folder, or set
current directory working folder to "C:\Program Files\ZOC9\" and load the DLL
via LoadLibrary or similar mechanism or link your program with the associated
ehlapixx.lib.

To see the HLLAPI session's short id in the ZOC window title, add the placeholder
`%HLLAPIPSID%` to ZOC's window title string (via Options-menu > Window settings).

Note: if you copy the ZOC `EHLAPIxx.DLL` elsewhere (e.g. into your existing
HLLAPI client program), it will need to be able to load the `zaphod8dllxx.dll` 
and the `vcruntime140.dll` that come with ZOC.



## CLIENT SAMPLE PROGRAM

Please see the hllsmp folder containing a VisualStudio C/C++ solution
with source code for sample.

Usage: Add your computername and relevant paths in main.c line 90.

Start ZOC, set the session profile > emulation to TN3270 emulation,
but no connection (empty screen with blue status bar)

Call (or debug):
    `Release64\hllsample.exe zoctest`

  

## SUPPORTED HLLAPI FUNCTIONS:
  
- HA_RESET_SYSTEM
- HA_QUERY_SESSIONS
- HA_CONNECT_PS
- HA_DISCONNECT_PS
- HA_SET_SESSION_PARMS
- HA_QUERY_CURSOR_LOC
- HA_COPY_PS
- HA_COPY_PS_TO_STR
- HA_COPY_STR_TO_PS
- HA_SEARCH_PS
- HA_SENDKEY
- HA_WAIT
- HA_COPY_STR_TO_FIELD
- HA_SET_CURSOR
- HA_CONVERT_POS_ROW_COL

The HLLAPI implementation is an work in progress. Functions so far are implemented to a
reasonable common extent, but they do not support to entire full spec (e.g. HA_COPY_PS
will not adhere to all possible HA_SET_SESSION_PARMS combinations, or HA_COPY_STR_TO_FIELD
will probably not handle all edge cases (length vs. field length)).

We are very interested in your feedback. Please let us know if you need something
that is not yet implemented.

IBM Reference:
  Personal Communications for Windows, Version 12.0
  Emulator Programming
  https://www.ibm.com/docs/en/SSEQ5Y_13.0.0/com.ibm.pcomm.doc/books/pdf/emulator_programmingV120.pdf



## CLOSING NOTE AND QUESTIONS

In case of problems, please contact EMTEC support. You will get a quick and 
qualified response from a programmer.

