GUI ScreenIO for Windows

GUI ScreenIO Status

Verifying the installed version of GUI ScreenIO

While any GUI ScreenIO application is running, press Ctrl+Alt+Shift+V; that is, hold all of those shift keys down, then press V.  This will display the version of the runtime (GS32.DLL), as well as the name of the panel that's currently active.

If your GS32.DLL indicates a earlier version number, CLICK HERE TO VISIT THE DOWNLOAD PAGE.

What's New in this Release 

04 Apr 2018

Server upgrade to remove Denial Of Service vulnerability whereby a client could overload the server by trying to reconnect multiple times after the server denied connection because it was full.  Once overloaded, the server would not allow further jobs until all or a large number of existing users disconnected, or the server was restarted.  No Client update necessary, no changes to GS32 or applications required.

Also improved the Server Monitor utility (GSMONITR) to allow alerting server operator when server exhibits certain states (such as the above DOS situation on older servers).  This is an initial release of this alerting capability which will be expanded over time.  A simple alert batch is offered as a template for enhancement to send text messages or email as your situation requires.

06 Jun 2017

Bug Fix for Server Balanced Farm support.  Corrected hand-off from lead server to farm server and proper full farm detection.  Added farm's knowledge of total seat capacity to task bar - updated once per minute. (Farm servers notify each other in real time, but we only change task bar once per minute).  Lead farm will always try to reserve the last available farm seat for itself.  Non farm servers are not affected by these changes, but should upgrade when convenient.  No Client update necessary. Version of server is now 6.7.

Server will now enforce a 60 minute Maximum idle time at menu if you don't set one.  This is because if you fail to set an idle time in the GSCONFIG file for the server, people can forget that they logged in and are sitting at the menu tying up a seat and the server becomes full. If you want to allow idle connections you can do so inside your application. 

10 Apr 2017

Minor bug fix release of the Server and Client with an improved Server Monitor. 

10 Jun 2016

Re-enable ability to log-to-file on the GUI ScreenIO Server, which had been accidentally disabled in a prior upgrade.  This only affects the Server, and is seldom used.

05 Mar 2016

Revised Runtime and Client to prevent a spurious "Bad Date" warning in Date Fields which are cleared (erased) via the backspace key.  

Such date fields which are initialized to zero at runtime (by your program) or by the panel editor, will accept a date of all zeros, even thought zeros are not a valid date.  This is by design, to allow for missing, or not yet entered data.  Usually this is combined with Blank When Zero setting in the panel editor so as to not show the zero dates.  Previously, the only way to clear these fields was to type all zeros into the field.  We now allow using the backspace key, which will render the date to zero without issuing an error message. 

Minor corrections in the Client Server's handling of installation issues.  Updates to both the client and the server to make the above change available to remote users.  

16 Jun 2015

Revised Server side of the Client Server layer to eliminate server Start Up wait time when using Balanced Farms.  Server version is now 6.5.

Also more graceful handling when All Farm Members become full.  

Farm members may be started in any order.  Servers can come and go from balanced farms as needed for maintenance.

Prior Balanced farms had problems connecting to each other which could sometimes cause farm servers to freeze until other members came on line.  Balanced farms require farm servers to communicate with each other over TCP/IP.  This balances the work load between servers but it slightly more complex.

The lead server in a Balanced Farm will contrive to always reserve one more seat than the other farm servers so that it can handle new connections and hand them off to other farm members when the farm approaches full status.  These new connections take a seat, but are strictly momentary unless the server decides to handle the job itself.  The lead server handles balancing by referring each connection the least busy server.

When the farm becomes completely full, the lead server will shut down new connections and then must wait for at least one job or user to disconnect before it will re-open connections. 

Reserving some seats for job forwarding in a non-balanced farm is accomplished by setting a reserve percentage on each server, with the lead server hving the smallest reserve.  Usually calculating the reserve so as to leave two to five seats free allows for smoother operation. 

Revised Server Configuration utility to indicate when all farm members share a Single copy of the Server Configuration file. This is not recommended for large busy servers, but some users require it for ease of administration.

Some features of the client server are disabled when a single copy of the configuration is shared, so as to reduce contention for the single configuration file.  These features are recording the date and IP address of each client connecting to the server, and subscriptions (use count limitations for specific applications).

Revise the GSMONITER application to show each farm server version number. 

Revised GS32.DLL which includes additional support APIs used by the Server side of the Client/Server layer.  This version is not needed by the client, or your applications, or the panel editor but may use in any of those cases, as it is backward compatible.  (Nothing but the Server uses these new APIs).

08 Jun 2015

Fixed recently introduced bug in server farms which caused jobs to not get forwarded to other farm members.

06 Jun 2015

Bug fixes to both the Editor and the Server layer.  No change to GS32.DLL

Server layer fixed memory leak in server farms when jobs terminate because of loss of connection to client  Also fixes normal job termination.  
Does not require update to Client.

Editor failed to honor Change Log suppression switch.

31 Dec 2014

Bug fix in Panel Editor which previously would allow creation of more than 9 Arrays on a panel, which resulted in an editor crash.  This fix will not allow creating more than 9 Arrays on an single panel.

25 July 2014

Minor Fixs to gs32.dll for all packages.  

For Client/Server layer: Detect in-ability to create temporary (client-side) files when running under the client server. 
Fix to ShellExecute API to properly handle requests to launch browser with HTTPS (SSL) web page URLs.

Note:  You may delay installing this version of the Server if doing so would disrupt your operations as long as you don't need either of the above mentioned bug fixes.  When you update the Server, it will force all clients to also be updated if they are not already updated.  Clients may be updated prior to server updates.

08 Jan 2014

A fix to a potential crash in the Panel Editor was made, which could occur if you tried to delete the first named color on any panel's Named Color list.

Extensive enhancements to the Mass Change Facility allow you to make system wide changes to colors and fonts, either to all fields and controls, or selective fields and controls to an entire system of panels.  While non-standard colors may not mesh well with windows standards or the themes chosen by users, they are often chosen to give a product a unique look, and feel.

We have included Secure Server Feature as part of the Client Server package by default.  This is in response to increased security consciousness in light of recent international events and increased government surveillance.  This will not be an additional charge item for future purchases or maintenance fees for the Client Server Layer.  It is henceforth included in the product by default.

Note: Our encryption feature in the Secure Server Feature uses standard Microsoft encryption APIs from the Microsoft Crypto API set.  We can not guarantee these Microsoft products are absolutely secure. Microsoft offers no definitive statement regarding this issue.

21 Jun 2013

A fix to a the Device Mode Data copybook (GSPRTDEF.COB) fixes a potential abend due to an error in total storage size.  This copybook is used in our Printer APIs.

Fixed a memory leak in the GUI ScreenIO Server which could consume resources slowly over many days of operation which would eventually cause the server to exhaust available memory.  This could occur in as little as 4 days of continuous operation of a 200 seat server running many many small jobs. 

Applying this update to the server will not require end-user to reinstall the Client, as the leak only affected the server.  Servers with smaller license counts, or which are rebooted periodically, would likely never encounter this situation.

28 Mar 2013

Minor bug fixes in the panel editor, and gs32.dll discovered while testing in Windows 8.

Finalizing GUI ScreenIO Client/Server changes of 04 Dec 2012 and synchronizing with Client changes.  If the Server is updated, it will force a the client to be updated.  These changes allow the ability to shut down the server using the configuration utility to modify the Server configuration files without actually going to the server console.

Each client attempting to connect will be take to the Client Download page to update their client before being allowed to connect.

You may choose to delay this server upgrade until a convenient time.  Your users will not be able to access the Server until they upgrade their Client.  (So if they do not have authority to install software on their workstation, an administrator will have to assist them).

04 Dec 2012

Fixed rare bug in client/server layer which would cause server to forget what port to open after being shut down and restarted.  It would attempt to open port 0000 .This would result in no clients being able to connect until the server was restarted.

Added command line capability to GSCONFIG.EXE to allow a flag on the command line.  This flag will set the Server configuration to tell the server to shut down after the last client exits, temporarily stop the server from processing jobs, or restart job processing. 

The command line switch for GSCONFIG are:

GSCONFIG /D = deny new jobs and connections Server continues to idle. existing jobs continue to run

GSCONFIG /K = deny new jobs and connections and shut down after last job exits. Current jobs continue.

GSCONFIG /DT = Deny new jobs or connections, terminate existing jobs, Server continues to idle. (May be Resumed)

GSCONFIG /KT = Terminate running jobs and shutdown server when last job terminates.

GSCONFIG /O Re-enables (resume) connections and allow jobs on idling server.

For compatibility with prior releases you may also use use a /C flag which has the same meaning as a /D flag. 

There are Radio buttons to perform all of the equivalent actions on the Server's main screen.

This upgrade to GSCONFIG and the Server is designed to allow batch jobs to request the server to exit gracefully or stop running jobs by simply executing GSCONFIG from within a batch (BAT) job, or by the system scheduler.  This might be uses in situations where it is necessary to run Backup Jobs on the machine being used as a server.

It might take the Server as long as one minute to realize this shutdown has been requested, because it only checks its configuration file once a minute. 

Minor non-critical fixes were made to the Client, but it is not necessary to update your clients at this time.

No changes to GS32.DLL in this version. 

18 Aug 2011

Fixed image controls so that they may be uses as background images without inactivating other controls.  Image must not return mouse events and must have the Resize option checked for this to work.  Rebuilt Editor, Client and Server Packages.

02 JuL 2011

Fixed a bug which prevented setting the insert point beyond the end of data in edit controls on property sheets.

Notice:  Latest updates to Windows 7 may make downloading copybooks from our installed help file impossible.  Please use the web based documentation for copybook download.

21 Feb 2011

Documentation change to reflect the fact that GUI ScreenIO can be used with COBOL-IT (including the Free version) for the Windows Platform. This compiler translates COBOL to C++ and compiles it with the free Microsoft Visual C Express Edition which can be downloaded from Microsoft.  No knowledge of or programmer interaction with the Microsoft Visual C compiler is necessary because COBOL-IT manages this for you. We document how to use the COBOL-IT compiler in our Getting Started section.

This documentation change also applies to Win32bit versions of OpenCOBOL.  See and the Pre-built Windows binaries hosted at , specifically the Opencobol-1.1-win-vb-win32 version.  This compilers documentation is aimed at Linux users, and it is slightly more difficult to set up on Windows.  

GUI ScreenIO runs only on Windows platforms.

29 Oct 2010

Fix Multi-workingset focus issues which could occasionally induce loop in GS32.dll causing it not to return to user program.

24 Sep 2010

Fix a rare abend that can occur when you DO-CLOSE a panel containing a listview, and then immediately cancel the dynamically called subroutine in which the panel resided.

This will not affect the server, but will affect Clients and Stand Alone programs.

16 Jun 2010

Fix to "field full" detection when there are no other fields open on the panel and the field is a hot field.  

"Field Full" hot events now take precedence over auto skip when full.  Hot return will happen prior to auto skip, and which field receives focus after return from hot is up to the programmer. Previously, auto skip would nullify hot full detection.

Fixed character filtration on Multi-line edit controls. (Panels need to be re-edited to effect these changes).

Improvement in Idle user detection in Client Server for users idle at menu (not running jobs).  Setting Maximum Menu Idle now forces Keep-Alive checking on (for jobs) and uses Server side detection of clients idle at menu for too long.  This will reduce server seat utilization, especially where roaming laptops are involved.

Clients with Empty Menus no longer report being connected to an evaluation server. Empty menus could result from Administrator error, or Applications being set temporarily unavailable.

20 Apr 2010 Client Server Bug Fix

This fix to the server is merely to force clients to update to the latest version to fix a bug in releasing of seat when idle users were kicked off the server for idling at the menu for longer than the server allows.  Some seats would not release properly in this case, causing seats to appear occupied when they were in fact not in use.  Installing this server upgrade will force all clients to open the download page for an upgrade to the client.

10 Dec 2009 Enhancement

We have added three New APIs for Disk Drive information.  These are highlighted in Red on this page.  These are mostly to allow you to manage where your applications install and run from and where they store data.  They allow you to determine which drives are network drives as opposed to local drives.  

We have fixed a bug in the panel editor which would corrupt some listviews when you deleted a column.

We have updated all of the installers and help packages.

27 Aug 2009 Bug Fix

We fixed minor bugs in the GS32 Runtime which occurred in certain rare cases.  

The first bug would not always return data typed into combo boxes, and occasionally return a message about setting field offset to an invalid control.  These occurred only when the prior panel had very few controls and a combo box was the first thing on the current panel.

Fixed a lock-up that occurred when ShellExecute API was called immediately prior to closing base panels and subordinate pop-up panels.  

Fixed a bug which would cause applications launched with ShellExecute API to display Under GUI ScreenIO if ShellExecute was called when a popup panel was being displayed. 

Fixed a bug in the editor which would not allow you to create an array that consisted only of pushbuttons.

Packages have been updated to include these new GS32 Dlls

ANNOUNCEMENT: Development freeze begins on the current version of GUI ScreenIO in preparation for our next release late this year or early next year.  Only bugs of major importance and wide impact will be fixed in the current release as we concentrate on finishing our next major release.

13 Aug 2009 Bug fix

We found three bugs that affect applications running under the Client/Server layer.  These are not critical items for non-Client/Server users.

The first bug prevented Timeouts you designed into your panels from triggering when they were for longer than 3 minutes AND you used Keep-Alive on the Client.

The second bug failed to send Close-And-Stop events to your application when the Server Imposed Idle timeout was reached.

The third bug would cause a Client/Server session to terminate if a ShellExec API was unable to copy a file to the Client side because a file of the same name was already in use (such as when the ShellExec API was called twice to open the same document with no intervening document close).

10 Aug 2009 Info:

We have a white paper on obtaining File Percentages with ISAM (or any file system) for use with Listview Controls.  We provide a sample File IO subroutine in support of this method.  This paper explains how you can obtain percentages for use with Listview Controls, where each record must contain a percentage indicator to tell the listview approximately where in the file it is located.  These percentages are used to assist the listview in its scroll bar thumb size and position calculations, and can be the most troublesome element in dealing with listviews.

6 Aug 2009 Bug Fix

Correction of a couple lingering focus problems that could happen in rare situations.

Keep-Alive packets in Client server also fixed.  You only need the new Client for this fix.

28 July 2009 Bug fix

We fixed a loss of focus bug which could happen if your application launched another application which grabbed the focus or if you clicked on another application.  Usually this happened only after a sequence of pop-up panels.  We also fixed a bug with combo-boxes on Base panels. 

10 July 2009 Enhancement and Bug Fix

We added APIs for Finding Files and obtaining precise Machine time.  

The FindFile APIs are Client/Server aware so that you may search for matching files on the Client Side as well as the Server side.  This may be useful when you have to transfer files to of from the Client side, and want to be sure you are transferring the right ones.  Many compiler provide a similar API but these are not Client Server aware and are often more complex to set up.  This API reports the date and time of file Creation, Access, and Update, (in UTC) as well as file size and file attributes. 

The GetSystemFime API allows you to get the time (UTC) from the system.  In a Client Server environment you can get the time from either the client or the Server.  This might be useful if you wanted to make sure the two machine's clocks are set correctly.  Since FindFile API provides file date/time in UTC, it seemed reasonable to supply and API for the System Time in the same format.

We fixed a bug with Pop-Up Message boxes generated by Pop-Up Panels which would previously display before the panel itself.  Since these are subordinate to the panel this did not make sense.  Users needing the old behavior should use our Message Box API instead.

We fixed a bug where focus could be totally lost by the application after a specific sequence of Pop-Up panels and message boxes..

We refreshed all Installers for the Editor, Server and Client.  Since the new APIs must be present on both Client and Server side we have set the update flag to force a client update if the server is updated.

15 May 2009 Client/Server Enhancement

Keep Alive

The Network Client now supports a Keep-Alive option for those users with network connections that automatically shut down after a period of inactivity.  (Typically this means ADSL connections).  The Keep Alive Check Box on the connect screen can be checked to cause the Client to send a very small packet to the Server-side after three minutes of inactivity in any application.  This will keep the network connection alive.   (This does not affect the Maximum Idle Time setting which can be set for each Application in the Server Configuration Utility.  That idle time measures time spent on a single panel.  Keep-Alive simply keeps the physical network active and allows the server to detect connection failures).

Load Balancing of Server Farms.  

Servers operating in "Farms" in larger installations hand off connections from remote Clients to other farm members using one if two modes: 1) Fill to Reserve, and 2) Balanced.

Fill to Reserve is the historical method.  With this method, the lead server in the farm accepts connections until it reaches its "Reserve" limit, and then refers the client to the second server, which accepts connections until it too reaches its Reserve limit, etc until all servers are at their reserve limit. At that point servers start dipping into their "reserve seats" and accept connections till full before passing connections to subsequent servers.  This method has the advantage of simplicity and is suitable for small farms where there will not be too many referrals before the job is accepted by a server.  Loading is managed by setting reserve limits in each server via the configuration utility.  This method has the advantage of simple setup and most client connections are accepted immediately by the first server with no referral. 

Balanced job hand-off requires that the servers are able to talk among themselves, and exchange job load information.  Connections arriving are referred to the Least Busy Server (the server with the smallest percentage of full seats).  This method requires that "back channels" be established between the servers for communicating connection loads. This may require additional configuration for Servers residing behind firewalls.  New data fields are added to the configuration facility for this purpose.  This method has the advantage that connections will be spread evenly between all servers which should yield the most consistent response time. The downside is that most connections will be referred when there are more than two servers, and at least half the connections will be referred even in two server farms, even when servers are very lightly loaded.  This yields slightly longer connection times in exchange for faster job execution.

4 APR 2009 Enhancement

We added the ability to have Hot Always as well as Hot Changed to Radio Buttons and Check Boxes.  

We have made changes to the documentation of Hot Events to point out some considerations for their use, especially in Client Server applications.

We fixed a painting bug which would ignore or delay removal of colored backgrounds on certain controls when the panel background was not the system default.

We fixed a bug in single digit numeric PIC S9 fields when combined with certain zero suppression options which would cause the field to appear empty.

We updated the installation packages for the editor, as well as the Client Server to reflect these new changes.

13 Mar 2009 Installer refresh

New installers for Client Server to synchronize GS32 versions.

Backed out a prior fix which set radio buttons to Unchecked if protected.  Programs may set multiple radio buttons to the ON state. As soon as the user changes any button windows will fix this so that only one button is on at at time.  But if the program protects the buttons, the user can not change them and windows won't either.  We decided our prior fix of turning off protected buttons was not be best idea, so we no longer do this.  If your program sets two or more radio buttons on, its a bug on your part, which we will no longer attempt to correct.

25 Feb 2009 GS32 Minor Bug Fix

Correction to our 20 Feb bug fix where we introduced a bug for Combo Boxes on Property Sheets.

24 Feb 2009 GS32 Minor Bug Fix

Work around a bug in Logitech Setpoint Software (as well as a few others) in which they hook the keyboard messages from Windows but do no honor changes to keystrokes messages by the owning procedure.  This prevented Enter-AS-Tab feature from working if Setpoint Software was installed. Similar symptoms were seen with some Dell support utilities.

20 Feb 2009 GS32 Bug Fix

Fixed a bug that allowed keystrokes entered on one panel to carry over to subsequent panels (type-ahead).

Fix for returning Combobox content when user presses a function key or Enter key triggering default button.

Fixed a potential Duplicate Event-ID assignment in Listview definition in the Editor.

13 Feb 2009 GS32 Bug Fix

All installer packages have been refreshed to include a newer GS32.DLL which fixes two minor bugs:  First, ComboBoxes might not have return the keyed in values if the user activated the default button via the Enter Key rather than clicking the button with a mouse, second, the Client Server layer exhibited a long delay when returning from a job to the Client menu if (and only if) the Server was running on Windows 9x. This was due to differences in the TCP stack of older windows platforms.

11 Feb 2009 Client Server Enhancement

This minor upgrade to the client server layer handles Application Launch Failures due to missing application EXE files, lack of system resources, or other system detected faults.  This version includes reporting the failure cause on the server console and also to the Client.  Previous versions of the Client would simply hang waiting for a server job that failed to launch.

Also included is an additional API (GetFileTime) to get the date and time of a file (either on the Server side or the Client side) in precision higher than offered by most Compilers.  Client server users who push some Executables to the client side can use this to keep these updated because they can fetch the date/time of Client side files.

27 Jan 2009 Misc Bug Fixes

GetPrinters Demo application was out of sync with actual API features.

Delayed return of contents of ComboBox controls if user entered content and then clicked a button

Fixed Stall condition in Server when jobs launched successfully but terminate prior to sending any panel to the client.  Server would become full and stop running jobs. 

19 Jan 2009 Misc Bug Fixes

Radio Buttons marked as invisible at run time could still be triggered by Access keys (&Letter) in their titles.  Radio buttons are now protected and un-set (set off) when they are made invisible, just the same as when they are protected.

Property Sheets were arbitrarily generated with a Help button, even when the checkbox for help button was un-checked.

An abend in the panel editor could be triggered by a rare combination of numeric field definitions and display options (requesting all leading zeros be displayed on fields where there was no integer portion specified in the picture clause.

Occasional bogus column heading added to list view columns that had column headings intentionally removed in the editor.

25 Oct 2008 Misc Bug Fixes

Fixed a bug when no status bar cells were available for internally generated error messages (such as "Invalid Date"), which could cause a repetitive Pop-Up message box reporting the error.  This required a new GS32.DDLL.

Fixed a rare bug which could cause abends on certain types of data fields when there was no data entered by the user.

Put in defensive code in GS32 to prevent Abends when MicroFocus programs did a STOP RUN from within a DLL instead of the Main EXE.

Added the ability to forcibly terminate jobs running the Client Server when network errors occur.  There are two additional methods of termination, one which is equivalent to an application generated Stop Run, the other a more brutal Termination enforced by the server.  Neither is recommended, but have been added for applications that normally require user confirmation of termination, which can't happen when there is a network failure (and programmers do not want to take the time to properly repair the code - you know who you are).

Fixed a bug in the Server Configuration Utility which would not hold more than 30 applications, and occasionally would corrupt the main Server configuration record.

Revised the GUI ScreenIO Network Client to more cleanly notify the Server of a normal job completion.

11 Oct 2008 BugFix

Fix to a long standing bug with clearing of status bar messages.

Fixed Server Daemon for smoother handling when maximum clients reached (or denial of service attack) and server needs to close its connection port (Throttling).  Server screen will now indicate reason for Throttling in bright yellow banner, and smoothly re-open the port after maximum connections are reduced.

02 Oct 2008 Enhancement

Added the ability to specify colorized Status Bars for errors and messages.  Color is applied to the entire status bar, and will revert to the default color on next screen display.  Colors are specified via new 88s in the copybook for message destination.  A Limited set of pre-determined colors are provided.  This is designed to help make errors stand out and capture user's attention.  Panels must be edited and saved with this version of the editor for the copybook 88s to appear.  

The gs32.dll supplied with this version must be distributed with your application.  Please Notice: you would be surprised how many end-user problems are traced to running obsolete GS32.DLLs that differ from the version the programmer us using Please remember to re-ship gs32.dll.  

Additional standard keyboard equivalences were added to the editor for convenience.

Fixed Bugs:

Clicking Cancel in response to the "Unsaved Panel" message box in the Editor would leave the panel in an unresponsive state if the panel was a wizard.

Adding a single radio button as the first control on a panel could occasionally cause an abend.  Since this was triggered in the runtime, this fix may cure other rare and unexplained abends.

15 Sep 2008 Bug fix

Fixed a bug in BrowseForFolder API which caused a Crash in certain versions of Windows Vista.  Packages are refreshed to provide a new GS32.dll.  Remember to add the revised copy of GS32.DLL to your application files.  

25 Aug 2008 Enhancement

Added functionality to our Registry APIs to allow storing and retrieving additional data types.  Fixed rare situation where default button on a panel was not detected.

22 Jun 2008 Bug Fix

Fixed a recently introduced bug which caused the saved window state (Maximized, Minimized, Normal) to be ignored when re-launching an application that was in a maximized state when previously exited.

Fixed a bug in Hex Fields combined with Auto Skip when Full.  Detection of "full" was premature.

Fixed a bug when Hot Field was tabbed out of when and the only destination was a protected or hidden Radio Button.  The Hot condition would not be detected in this case.

Note that radio buttons which are not selected (checked) are not tab-able.  You need to always initialize one radio button in each set if you expect users to be able to tab to them.  This is a Windows limitation.

05 May 2008 Bug Fix

A bug was found in GS32.DLL that could cause an abend upon a right-click (invoke context menu) on panels that had no menus and no buttons. New GS32.dll corrects this problem.  

Added ability to hide main containers from the Task Bar.  New options added to Main (container) panels TESTMAIN-DO-HIDE-TASKBUTTON and  TESTMAIN-DO-UNHIDE-TASKBUTTON to allow you to prevent task bar buttons from appearing for long running background tasks that you don't want users to mess with.  You need to edit and re-save your main to cause these options to be generated in the copybook.

10 Mar 2008 Bug Fix

A long standing bug was found in Checkbox controls with multi-line text labels. Windows would reverse words in label lines with began with numeric digits.  This only became evident under Vista, and certain versions of XP.  This bug is fixed, but any panel exhibiting this bug will have to be edited and saved to correct the problem.

21 Feb 2008 Misc Enhancements and bug fixes.

We now allow multi-line Selector Fields.  Content must be loaded at runtime, and line breaks must be inserted by stringing in X'0d0a'.

We have added a WAIT option on our Winexec and Shellexec APIs that causes GUI ScreenIO to wait for the invoked task to terminate before it continues.

We have found and fixed a rare abend caused by moving invalid data (spaces for example) into the --COLOR field of a Listview Line.  Normally this element of a listview line is filled with a "Named Color". Invalid data will simply be ignored.

05 Feb 2008 API Enhancement and  RM/COBOL Support

We announce support for RM/COBOL beginning with RM/COBOL Version 11, (May work with version 9 and 10 as well).  We supply a customized version of our GS.cob interface module and a CodeBridge runtime module supplied by Liant.  See the Getting Started page for RM/COBOL.

Our SendMail API now supports SMTP servers that require authentication in order to send mail.  This also (usually) allows your application to send mail through your normal ISP even when connected to the Internet via some other ISP (traveling, etc).  In addition we have provided a sample application of the sendmail API in three forms:  A stand alone executable version, a version designed to be compiled into your application to allow a pop-up mailer where users can fill in the email address, subject and message, and finally a version designed for totally automated mail sending with no screen display.  This version may be suitable for sending notices about completed orders, re-ordering supplies, etc.  Both of the latter two versions include a separate configuration utility.

19 Jan 2008 GS32 Enhancement and Bugfix

Added the ability to set the cursor position beyond the end of data in Edit Controls. Previous versions would not allow setting the beyond the last non-blank character.

Corrected a lingering Hourglass cursor that appeared in certain rare instances.  The Hourglass cursor gave the impression the system was busy until the mouse was moved when it was in fact waiting for user input. 

Fixed DO-ACTIVATE (rarely used) to force the activated panel to the foreground.

Updated the Client/Server to enable the changes above and also to add a remote monitoring capability so that server operators will be able to monitor their server or server farms remotely.  This server version. More information on this facility will come at a later date, but this server upgrade must be deployed first.

20 Dec 2007 Minor Client Server Upgrade

The client server was upgraded to pass additional information to the Job, such as the server's serial number, the number of seats the server has, and the number of seats in the entire server farm, and a flag indicating if the server is a member of a farm.  These are supplied predominantly for sites that resell the client/server in support of their own software and need to use capacity based billing.  These fields will appear in the panel copybook for Main panels, only if your editor released on or after this date.

16 Dec 2007 Bug fix and Client/Server Upgrade

A GDI Object leak was found in GS32.DLL which only affected property sheets using multiple colors or fonts. This leak could cause resource exhaustion in long running applications making frequent use of such property sheets. Such exhaustions usually resulted in your application terminating with no indication of why, as Windows became starved for resources.  In client server installations, this only affected the client side.  It is still possible to leak GDI object is you FAIL to DO-CLOSE panels in dynamically called subroutines (DLLs) prior to using the COBOL CANCEL verb.  (Don't CANCEL a subroutine which is still displaying a panel).

This is a serious bug and all users should upgrade GS32.DLL.  No recompilation is necessary.

Enhancement of the Client Server layer to allow all farm members to be specified in the Connect To window or the desktop icons created by the client.  This allows the client to automatically try to connect to other farm members if the lead farm member is down or unreachable.  This setting is controlled by the Farm Administrator via another check box on the farm tab of the server configuration utility.  If checked remote clients connecting to a farm will remember all farm members IP addresses and Port numbers and will automatically try the next one if the lead farm server is down.  Any desktop Icons created with this feature enabled will also contain all farm members. 

This feature is designed to remove the risk associated with a single point of failure (the lead farm server) shutting down the entire farm.

This necessarily reveals farm member IPs and may not be suitable for all installations.  Clearly, this feature can not eliminate a single point of failure when all farms are behind a common Firewall/Router.  If that router fails, your farm will still become unreachable.  

7 Dec 2007 GS32 Upgrade

Added new API to allow setting window position or Z-ORDER (layering) of GUI ScreenIO applications or any other application for which your application has the hwnd and the necessary permissions. This allows sending ScreenIO's windows behind other applications.

3 Dec 2007 GS32 Upgrade

A bug was introduced in prior versions of GS32.DLL which affected ShellExecute API.  This bug caused the file name or URL to be forced upper case, which will not work for internet URLs.

An enhancement was made to GS32.DLL to allow minimizing the application by calling any Base panel with DO-MINIMIZE instead of requiring that you direct such calls to the main (container) panel.  This allows you to minimize the application under program control from anywhere.  Similarly, DO-RESTORE and DO-MAXIMIZE also may be performed on any Base panel.

1 Dec 2007 Editor Bug Fixes

Corrected a bug in the editor where adding an additional value to a validated edit control would corrupt other validated edits on the same panel.  This bug may also have occurred on combo boxes and listboxes.

Added the ability for the panel editor to recover certain corrupted panels that could result from defining a zero length data field, and prevented the creation of such fields.

Revised and Corrected copybooks for printer APIs. Documentation fixes to APIs.  Also fixed Choosefont documentation.

Added APIs for Bits-to-bytes and Bytes-to-Bits to aid in legacy conversion or where operations upon bits within a byte are desirable.

1 Aug 2007 Repackaged

Prior update (30-July) had an obsolete version of gs32.dll.  Please re-download and re-install and confirm the compile date of gs32.dll is as shown in the image above. 

30 Jul 2007 Bug Fix for GS32.dll

Two bugs were discovered in GS32.DLL and fixed.  

1) Setting focus to a button under program control was ignored the first time a panel was displayed, and 2) blind menu items (function keys) would not be detected after a context menu was displayed for any control on a panel.  

Minor fix to the GUI ScreenIO Server to correct number of bytes sent and received in the server display.

29 Apr 2007 New Client and Server

New GUI ScreenIO Server and Client packages released to enhance Server Farm operations where one or more farm machines must be taken off line or experiences technical difficulty.  Clients will have the ability to automatically step to other servers in the farm when one or more of the farm servers are off line.  

13 Mar 2007 New APIs added

GS32.DLL has been upgraded to include two new APIs.  SimulateKeys API allow you to insert characters into the keyboard buffer which are processed as if the user pressed the keys.  KeyState API allows you to test the state of certain keys to see if these keys are toggled on or off.

Additionally, just as you were able to select the Enter As TAB option on the properties of any panel, you many now select Up/Down arrow keys to also function as Backtab and Tab respectively, except in controls that require these keys for internal navigation (such as listviews). There are two versions of Enter key as Tab.  The previously existing way, (which only works in edit controls) and the Always tab option now available.  The setting for use of arrow keys is now independent of the use of enter key.   This change was made by popular demand.

7 Mar 2007 Client Server Upgrade

Two new features were added to the Client Server Layer to help control seat usage.  These are optional features that can be used to allocate seats to clients and control how long clients may sit idle holding a server seat.

Two new fields appear on the Server Configuration utility:

Idle Time at Menu may be set in the Server Configuration, which will control how long a client can sit at the menu (not running any job).  It is configurable in 10 minute increments.  After sitting idle for the specified minutes the client will simply terminate, freeing a seat on the server.  0 = unlimited.

# Connections per client may be set to limit any single client to a maximum number of concurrent connections to the server.  Normally, users can launch another instance of the client to run two or more jobs at once.  Sometimes this is desirable, and other times it leads to problems (such as a user minimizing a job and forgetting that is is running, and then launching another client) thereby tying up multiple connections on the server.  This setting allows you to restrict clients to using 1 to 9 individual instances of the client on any given computer.  0 = no restrictions.

We previously allowed limiting a single connection per IP, but this is less than useable when many clients are behind a firewall, and therefore they appear to all be coming from the same IP.

2 Mar 2007 Client Server Upgrade

And upgrade to the GUI ScreenIO Server to allow for Server farms of up to 10 servers.  Previously 5 was the max but with the success and the reliability of the server layer users are interested in much larger installations comprising many more servers in large server farms.

25 Feb 2007 Runtime Enhancement

No major new functionality.

GS32.DLL upgraded to handle decimal point when the Decimal Key in the Numeric Pad pressed.  This primarily affects some certain European countries where the standard keyboard drivers delivered a period for this decimal key even though the country locale specifications required a comma as a decimal separator. 

Numeric fields enhanced to allow thousand separators to be keyed (if desired).  This affects cut and paste operations into numeric fields, which would frequently beep when thousand separators (commas in North America) were pasted into numeric fields.

GUI ScreenIO Network Client and Server also refreshed to include this new DLL.  

14 Nov 2006 Refresh

No new functionality is provided in this update.  The GUI ScreenIO installer now includes a GS32.DLL in a new subdirectory for users of Ca-Realia's 3.3 Workbench.  This is to allow those users to avoid shipping two versions of the CA runtime (one for their 3.3 workbench and the other version that was shipped with GUI ScreenIO).  This version of GS32.dll and GS32.lib appears in a zip file in an aptly named subdirectory where GUI ScreenIO is installed.  (Usually c:\program files\GUI ScreenIO\ )

If you are NOT using Advantage CA-Realia Workbench 3.3 you should NOT use this new GS32.dll.

Several enhancements were made to the GUI ScreenIO Client Server Layer in support of the job timeout feature, to make sure that jobs which have timed out will be removed from the server.

14 Oct 2006 Enhancement

This release provides enhanced support for Access Keys, also known as mnemonics, which are the Underlined Letters in menus such as Cancel.  Access keys send the focus to the control (and trigger some controls such as buttons) when the user presses the Alt+C (or any other Alt+Letter) keyboard combination.  No programming code need be written to support this feature.

These access keys were previously available only for menus, buttons, radio buttons and check boxes.  We have now added the ability to add these to static text controls.  This allows for easier navigation on complex panels without the use of the mouse.  As always the Underlined letters are added by putting an & preceding the letter that you want to underline.  

An Access Key in a static text control does not activate the text control, but rather activates the next field in tabbing order.  The tabbing order is set with the Field Tabbing Editor in the panel editor.  To allow you to indicate which field should get control when an access key is pressed the tabbing editor has been enhanced to allow setting the tabbing of static text controls containing ampersand-letter combos.

Additionally, when entering &Letter combinations, the editor does much better checking and notifies you about duplicates.

Additional minor corrections and bug fixes were applied.

The Editor, Gs32.dll as well as Client and Server modules have been updated.

07 Sep 2006 BugFix

Fixed Resource leak (timers) when using inactivity timeouts (no keyboard or mouse movements).  After some hours of activity on panels with keyboard/mouse timeouts, system timers would be be exhausted, after which timeout detection would fail silently.  (Timers were not exhausted if there was no activity.)  

Revise Webget API to allow use of ports higher than 10,000. No recompilation necessary for existing users.

If you closed a panel you never previously opened as the first action after displaying the Main Container, we would incorrectly close the Main, causing subsequent panel displays to fail.  This is now fixed.  (Not that we encourage you to wantonly close panels you never opened.)

03 Jul 2006 Various Small Enhancements and fixes 

Modification to the Panel Editor to generate three new fields in Main Panel (container) copybooks which will return the IP, Port, and User-ID when the application is running under the Client Server Layer.  This allows your program to be aware that it is running under the client server layer (there was previously no easy way to tell).  It also provides the application with the user-id used to connect to the server. This may eliminate the need for separate security systems built into your application if you assign user-ids in the Server configuration which are meaningful to your application.

You do NOT need to regenerate you main panels unless you wish to use these fields and your application runs under the Client Server Layer.

Modification to the Server to feed the login-id and IP address to the application.  This may allow your application to rely on the Server for authentication and user identification to your application.  See above.

Modification to GS32.DLL in support of the above.  Its Very Important to always replace all copies of GS32.DLL on your Server with the latest version.  Don't forget to replace copies if gs31.dll that reside in the directories with you applications.  Client side GS32 does not need replacement.

Fix to GS32.DLL to correct a bug where it would fail to honor cursor positioning on the call to GS immediately after certain API calls (those that displayed windows dialog boxes).

Enhancement to GetWeb API to allow fetching files from the remote web server EITHER to the Client or to the Server, in support of client side access to resources not available from the server.  This allows fetching web pages or files from servers which are only accessible from the client, such as internal web servers, or server-like utilities running on the clients themselves.  Since this has the ability to be abused, you should be aware your Server Serial number will appear in the logs of the target web server.

Addition of two new APIs: API-UPPERCASE, and API-LOWERCASE.  These two APIs are locale specific, that is, they convert data to upper case or lower case according to the alphabet in use on the workstation, and can handle alphabets with more characters than the English alphabet. These APIs are client/server aware.

Documentation of ChooseColor API, which was not previously documented due to its limited usefulness in end user applications. You need to download the latest Help file to see this. It is not suitable for changing colors of GUI ScreenIO applications but can be used for printing purposes.


30 May 2006 Revisions to Editor,  gs32.dll, and Server Daemon

Extensive revisions to the Server Daemon to reduce the logging clutter and simplify messages.  Login rejection messages offer more specific reasons.  All chatter about socket numbers suppressed unless detail logging is on.  Connection and disconnection messages suppressed as well, leaving the server logging only jobs run and access violations.  The message load previously displayed was not useful in high volume servers in production environments.

Other Changes:

13 May 2006 - Revised GS32.dll, Server Daemon, and Client

High load reliability enhancements added to Server.  Applications using this new server should use the gs32.dll in this release.  No changes to editor, but the editor installer was repackaged to include the new gs32.dll and demo version of client/server.

13 Apr 2006 - Revised Editor and GS32.DLL, and Server Daemon

Revision to Panel Editor and runtime to allow blank entries in ComboBox and ListBox controls.  Previously, GUI ScreenIO did not display blank (space) entries.  Some users wanted to add the ability to have blank entries.  Unused entries entries in listbox and combobox controls should be filled with LOW-VALUES, not spaces.  If your programs currently clear un-used entries to spaces you will see these blank entries.

Bugfix to the Server Daemon timeout feature which caused long timeouts on jobs that exceeded their timeout setting.  Improved server logging messages and diagnostics.

Runtime fix to prevent abend in certain rare situations when fields with display masks when single character entries matched portions of the mask.

22 Mar 2006 - Revised GS32.DLL

Correction to two small bugs in gs32.dll affecting server users only.

24 Feb 2006 - Enhancement and Bug fix

Fixed bug where field overflow message would allow the caret to advance to subsequent fields bypassing hot returns.  Caret is not allowed to leave the field when a field overflow is detected unless the user explicitly tabs out of the field after inspection of the truncated contents.

Fixed bug which would yield a pop-up "Fatal Error" message when no control had focus and the user pressed a function key or Alt-Key combination.  (The message was never actually Fatal, and execution continued anyway.)

Further corrections to the Editor for Array handling, and documentation changes. 

Enhance CopyFile api  with a new option to avoid redundant transmission of files across the TCP link when used under the Client Server layer.

NEW GS32.DLL can now detect F10 if used on your panels.  (Prior versions could not intercept F10).

02 Feb 2006 - Editor Bug Fix

Fix to the GUI ScreenIO Editor for Array Corruption when setting field tabbing order on panels with Arrays.  Also enhanced array definition process to remember an Array's settings (name, occurrences, and spacing) when removing array for redefinition. 

30 Jan 2006 - Client Server Upgrade

Upgrades to gs32 in support of features described below.

Bugfix to Server to allow deleting of licenses and fix to Client Create Desktop Link screen.

Upgrades to the Server were made to allow you to set Idle Timeouts for each job so that users who have forgotten to exit applications will not tie up server licenses.  Each job may be separately configured to time out if the remote user leaves the application running but does not send transmissions to the server.  Server will instruct job to terminate gracefully, and the client will be advised of timeout upon its next interaction with the server.

Additional license sizes (150, 200 seat) are available as well as the ability to add multiple license keys to the server.  Total capacity is in excess of 450 seats per server is possible with proper hardware and memory installed in the server.

A change in our licensing allows servers to be licensed with a single key for larger sizes, eliminating the need for a 5 user base license.

Server operators may now purchase a Secure Server Key which will convert our free client to Licensed (and therefore totally encrypted) status.  This allows server operators to bear all costs associated with secure encrypted service, eliminating the need for their users to license the client.  The non-licensed client becomes temporarily licensed for the connection to a server with a Secure Server Key.   This eliminates the need for remote users to purchase licensed clients, while still providing totally encrypted data connections.  This allows for secure data connections from anywhere in the world for sensitive data, such as credit card data, medical data, etc.  Cost per seat will be less than the price of a similar number of licensed clients.

06 Jan 2006 Version 2.1.322

Another correction to gs32.dll to make Print APIs insensitive to DEVMODE size.  Programs need not be recompiled. Just use the new GS32.dll

06 Jan 2006 Version 2.1.321

Correction to DO-CLOSE logics failure to reset DO-CLOSE state in panel copybook preventing subsequent re-display of same panel.

Correction to Print APIs which use Device Mode Data areas.  These data areas were too small for some high-end multifunction printers.  ANY PROGRAM THAT USES GSPRTDEF.COB SHOULD BE RECOMPILED using the new version of this copybook (which, like all copybooks we supply is available from our downloaded Help, or from our documentation  on the internet, or click the link above).

New Server and Client also available for these changes.

Be sure to distribute the new GS32.DLL with your application.

11 Nov 2005 Version 2.1.318

Correction to overtype mode, suppressing hot events or skip-full when overtyping a full field in other than the last position.

Correction to duplicate events returning in response to property sheet OK button, when first field of panel was hot.  We arbitrarily set first field of a panel as the active field after a property sheet button.  This was incorrect, and no field will have focus after a property sheet Ok, Cancel, or Apply button.

Ignore DO-CLOSE calls for panels that can not possibly be currently visible (efficiency improvement, especially under client/server).

Fix panel editor to allow right or center alignment of date fields in Listview columns, as long as Microsoft Date Picker check box is not checked. (Microsoft does not support alignment, but our date controls do).

26 Oct 2005 Version 2.1.313

Correction to F1 handling (duplicate returns) and skipped hot returns when default pushbutton was disabled.  New packages for the editor, server and client to update gs32.dll

28 Sep 2005 Version 2.1.312

Minor bugfix to gs32.dll for F1 (help) key processing error.

23 Sep 2005 Version 2.1.311

Bug fixes to the Editor when doing a paste controls into a panel.

Bug Fix in GS32.dll for handling of -P attribute (panel-field-paint) on first field of panel and all fields on property sheets.  These were failing and are now fixed.

1 Sep 2005 Version 2.1.310

Editor Changes:  Added ability to Resize, Move, Delete, and Select controls via the keyboard.  

Controls that are selected (blue dotted outline) will be moved when you use the Arrow keys similar to the way the Nudge buttons on the tool bar work.  

If you hold down the Shift key the arrows will resize the selected controls.

You can tab from control to control, selecting each one in succession with the Tab key.  

You can press Enter to bring up the properties of the first selected control.

Pressing the Delete key will delete the selected controls.  (All deletes are preceded by an automatic copy to the clipboard for your protection.)

Client/Server Changes:  The data stream between Licensed Clients and servers are now encrypted using RC2 block encryption before data is sent over the network.  This makes your data considerably more immune to eavesdroppers, and makes it much safer for you to put sensitive applications on the Internet.

Revision to GS32.DLL: To support end-to-end encryption for any application run under the Client/Server Layer.

3 June 2005 Version 2.1.308

Bug Fix: Fixed a bug introduced earlier in this year that slowed panel display time significantly.  Panels now display in about half the time, which is what they did previously.

Added New API:  Added a Screen Print API which allows you to print any panel or the entire desktop under program control.  This API does not require the use of the clipboard.

Editor Changes: Added Screen Print capability to the editor to print any panel you are working on, via the menu or the Printer Icon.  Improved diagnostics in several locations.

25 May 2005 Version 2.1.307

Feature: New GS.COB included, All users recommended to recompile the new version and use it for the next distribution of your applications.  

This new version (our first change to this program in 4 years) has a new mandatory shutdown section which would only come into play if your application is run under the client/server layer.  

A mandatory shutdown event is returned by GUI ScreenIO when the program can no longer talk to a remote client, or the server operator has requested job shutdown.  Your program will be given 3 chances to CLOSE-AND-STOP before the mandatory shutdown is returned.  GS.COB should handle this event itself without passing it to your programs.  Any attempt to display another panel after a mandatory shutdown will result in your application being killed by the server.  Mandatory shutdowns are never issued when running standalone (not under Client/Server).  EVEN IF YOU DON'T USE CLIENT/SERVER:  There is no guarantee your users will never use our Client/serve layer in the future. 

Added New APIs: for getting information from the system:

All of the above are of course, client/server aware.

New Server Feature: With larger size servers available (up to 100 concurrent connections), finding jobs running on the server that are dormant (but tying up a connection) is now easier because we have added options to show only inactive jobs or only active jobs, or all jobs.

07 April 2005 Version 2.1.306

Bug fix: New GS32.DLL to fix a bug in Print APIs which could cause abends in some cases. Also upgrade copybooks for some APIs to supply default values.

29 March 2005 Version 2.1.305

Bug Fix: Fix to TCP/IP transport portion of GS32.DLL for the Client Server Layer.  Users of the Client should download the new client.  Users of the server can force a Client download by installing the latest server.

Bug Fix: Alt-Fn Blind Menu events restored.  Had been disabled by a previous release.  

Bug Fix: Editor fixed to suppress & in static text from being interpreted as a request to underline the next character. (This did not affect runtime, only the editor display).

14 March 2005 Version 2.1.303

Bug Fix: Editor would refuse to open any more panels if you canceled the opening of one that was in use, until you exited and restarted.

Bug Fix: Revision to GS32.DLL to remove spurious panel-EVENT-ACTIVATED postings to panels that were inactivated by  pop-ups.  Calling a pop-up would cause the event id of the inactivated panel to be changed as soon as the pop-up generated any event.  (This was a long standing bug which seldom caused problems). 

Bug Fix: "Invisible when Empty" option for Selector Fields.  Selector fields are often used for menu panels, and the Invisible when Empty option hides the selector filed when it contains no text (empty menu item). This previously failed.

Added Expanded Registry APIs  The FUNC-EX-series of registry APIs  allow you to access any portion of the registry, and in addition are selectable to run on either the client or the server.  These can read and write to any portion of the registry so some care is required when using them.

Added Several New APIs for Basic Printing capability.  (More to come in the future).   

We have APIs for the common Printer Selection Dialog Box, which allows the user to select the printer they will print to, as well as telling your program setup information for the printer, and which pages to print (optional).  This API is Client/Server aware, and will operate correctly in a Client Server environment.

We have added a PrintFile API which will print a file from disk to the printer, even if the printer is attached to a client machine and the print file is located on the server, or vise-versa.  This API automatically transfers the print source file to the target machine and prints it on the designated printer.

In addition we have implemented the following low-level printer APIs which replace those offered by some compiler companies.  (The reason we do this is because the compiler supplied APIs are not Client/Server aware, and ours are.  As well, ours are simplified and easier to use.  The specific list of low level Print APIs is:

18 February 2005 Version 2.1.300

Revision to GS32.DLL to fix a bug in handling of Access keys which were incorrectly treated differently than clicking the same control.  Access keys are the underlined character in menu items and also on buttons labels.  They are often used on systems designed for use without a mouse.

If you code &Cancel on a button, it makes ALT-C jump to the button and trigger the button as if you had clicked it.  However, we were executing hot-exits (if any) and validation (if any) upon leaving the current field, unlike what would happen if you actually clicked the button.  This is corrected.

Added the API Function to create Shortcuts.  This allows you to create shortcuts (.lnk files) to any file on your computer, either on the desktop or in any other folder you wish.  Not ONLY .EXE files may be the target of shortcuts, but also any other standard file type.  So you can write a report, and place a shortcut on the users My Documents file which will use the default application (based on extension) to open that file.

Revisions to the Client/Server layer to support this new API and to make use of it at the Client to create shortcuts that log you directly into the server and launch the application without even showing the Client login screen or menu.

01 February 2005 Version 2.1.299

Revision to GS32.DLL to support new GetPrinters API. This API implements Microsoft's Enumerate Printers API in an enhanced way that works for all versions of Windows, and allows you to obtain a list of printers on the local machine, or on any other computer the local machine can "see".  If running under the Client/Server layer, your program can obtain a printer list either from the Client or the Server, or any machine which can be "seen" from the client or server.  You can then use our CopyFile API to send print files to these printers.

Also a correction to gs32 for listview speed enhancements.

12 January 2005 Version 2.1.296

Revision to GS32.DLL to support new CreateDirecotry API.  This API will create directory structures without having to create each level of the directory tree individually.  Also works on client/server.  Many compilers include some level of support for this, but their implementation will not allow creation of directories on the client (under the Client/Server), and frequently require directory levels to be created one at a time.

Faster Listview Painting while loading large Listviews.  If the Listview is going to come back for more data immediately, the painting of other controls is deferred for speed.

Added a Panel Demonstration Driver (GSDEMO.exe) which allows you to create demonstrations of systems without writing a single line of COBOL.  The panel copybooks can be displayed, and driven by a batch file, and even-ids are passed as the errorlevel to the batch file so that you can evaluate which menu item/button the user selected.  Sample script and sample panels included.  See the Demo subdirectory after installation.

Improved Legacy Conversion tool, correctly handles qualified panel names for applications that did not follow the coding conventions recommended in our Legacy Panel Editor.

04 January 2005 Version 2.1.294

Revisions to GS32.dll to support additional features of the Client Server.

Corrected bug where menu would not be cleared for panels having no menu items or buttons.

Added ability to set Edit Controls to Read Only at run time via a new attribute, which is easier to read than setting controls to Protected at run time.  Tab-stops-here is also switched off for controls set to Read Only.

Fixed Listview scroll down bug which would briefly display invalid data in the last line until your program returned the next buffer.

Fix of keyboard accelerators being ignored in Combo Box controls.

Corrections to Editor which affected Non US keyboard users when entering accented characters in static text.

07 October 2004 Version 2.1.292

Revision to GS32.DLL to fix minor Bug in copyfile API running under Client Server with MicroFocus.

06 October 2004 Version 2.1.291

Revision to GS32.dll to fix a bug with signed fields when applications compiled with MicroFocus were run under the Client/Server.  Only affects Client Server applications. And only when compiler is MicroFocus.

30 September 2004 Version 2.1.290

Update to Client Server to correct a login bug. Server users should download the new Server installer.

29 September 2004 Version 2.1.290

New GS32.DLL to include new API call to find location of various Windows Directories, the actual location of which varies by Platform version and logged in user.

22 September 2004 Version 2.1.289

New GS32.DLL adds function call for copying files from Client To Server via our API.  This will transparently call our CopyFile api when not running in a client server environment.  Since this functionality lives in gs32 all packages are updated.

Fix bug in Overtype mode which appeared when backspace was pressed in an overtype control.

Previous Updates

15 September 2004 Version 2.1.288b (Microsoft Security Update)

Microsoft has announced a security vulnerability with GDIPLUS.DLL which is also used by GUI ScreenIO. 

NORCOM does not believe this security issue is likely to affect any GUI ScreenIO applications developed by our users, because the vulnerability requires the use of a specially crafted JPEG file to trigger a buffer overrun in GDIPLUS.DLL.  Our users typically use jpg files of their own, or of known origin, rather than arbitrary files from suspect web sites.

Never the less, out of an abundance of caution, we are releasing New versions of GUI ScreenIO, GUI ScreenIO Network Client, and GUI ScreenIO Network Daemon with the revised GDIPLUS.DLL provided by Microsoft.  

Note that if your application allows your users to display arbitrary jpg files we recommend you redistribute the GDIPLUS.DLL included in our installers on our download page as soon as possible. 

NOTE1:  When updating your system and your user's system with the revised GDIPLUS.DLL you must replace the dll that exists in the directory with YOUR software.  DO NOT replace the DLL of the same name found in the Windows or WinNT directory on some platforms (WinXP specifically). We recommend you use Windows Update to upgrade system copies of GDIPLUS.DLL.

NOTE2: On windows XP platforms, GDIPLUS.DLL is generally loaded upon startup from the Windows directory and remains in memory.  Therefore, updating the copy in YOUR software directory will not be sufficient, and, if the truth were known, is not technically necessary, as the windows version will already be in memory and satisfy the need for this dll.  However, that leaves your users at risk if they fail to visit Microsoft Update sites and keep their machines up to date. GDIPLUS.DLL is also distributed with Office and other products, so a visit to Windows Update is in order.

09 September 2004 Version 2.1.288a (Bug fix in editor)

A long standing bug which would occasionally corrupt panels when validation data was changed has been corrected.  In extreme cases this would cause the editor to crash. No gs32.dll changes are required, this is strictly an editor issue.

23 August 2004 Version 2.1.288 (bug fix to gs32.dll)

Two rare bugs were detected and corrected in gs32.dll and minor (cosmetic) documentation changes have also been made.

The only bug of concern dealt with Combo Boxes not returning the data correctly when 1) values were Pre-Selected by the program AND 2) the field never was tabbed into AND 3) leading zero suppression was used.  Data could be returned with trailing spaces.  Since this can cause data exceptions, we are triggering your automatic upgrade detection.

05 August 2004 Version 2.1.287

Automatic Upgrade Checks have been added to the editor.

The Panel Editor automatically checks once per day for newer versions of GUI ScreenIO to help keep you up to date.  No Personally Identifying Information is sent to NORCOM when this check happens.  For those on dial-up, this feature can be turned off in your Profile.

New BrowseForFolder API which provides access to the windows Folder Browse function.  Similar to the File Open Dialog, this can be used when you don't want to select a file. but do want to select a Directory (folder).

WEBGET API allows fetching a web page, image, or other file stored on a web server.  This is not a browser, but a building block for a browser, or a useful facility for fetching remote date files, images, etc.

Enhanced Mass Change to allow mass change facility to modify two additional attributes of certain fields (Overtype and Content Selection) 

Support for Insert vs. Overtype in edit controls and multi-line edit controls.  Allows toggling insert/overtype via the insert key. This feature is applied retroactively to all existing panels without the need to recompile (Just use the new gs32.dll).

Changes to the editor:

23 April 2004 Version 2.1.286d

Correction to Editor to fix a bug in the Code Generator which ignored one byte fields.

Upgrade to Client Server Layer to add ability to run the configuration utility without shutting down the Server. This allows: 

Also added Subscription support to the Client/Server, so you can allow clients to run an application a certain number of times and then it is grayed out on their menu.

Server keeps track of last Login date and Login IP for registered users.

Better diagnostics and logging

CLIENT will now take user directly to Download page when a updated client is needed to handle future capabilities added to the client server layer.  Unfortunately, for THIS upgrade you will have to tell them to go to the website.

29 March 2004 - Version 2.1.286c

Minor corrections to editor, fixing sort order of fields in the copybook for Property Sheets, and preventing and abend caused by selection of previous or next control when no controls are yet defined.

Corrected a Memory Violation in the Client portion of the Client Server.

Added Server Farm capability to the Client Server Layer for large installations having more than one Server.  This allows one server to hand off connections to another server when load increases.  (Each server must have a separate license.)  

7 March 2004 - Version 2.1.286b

This release makes it possible to cause selected APIs to run on either the Server or the Client when using the Client/Server layer while at the same time maintaining the ability to run the same application in a single computer.  Any API that requires user interaction is unsuitable for execution on the Server and as such is always shipped to the Client side to run there.  Change is to documentation and GS32.DLL only.  

3 March 2004 - Version 2.1.286a

Minor refresh of the HELP documentation to fix broken links and a new gs32.dll correcting problems in SendMail API.

18 February 2004 - Version 2.1.286

Minor update to GS32.dll and fixes of a couple bugs discovered in API usage under the Client / Server.

27 January 2004 - Version 2.1.285b

Minor update to include the SendMail API

10 January 2004 - Version 2.1.285a

Minor update.

Bugs Fixed

Enabled Enter to act as a Tab key (when specified) in validated edit controls.

2 January 2004 - Version 2.1.285

Released the GUI ScreenIO Network Client add-on, which enables you to run most GUI ScreenIO applications over the Internet or any other TCP/IP network.  Most applications will run in client/server mode without any changes. 

Various minor fixes and enhancements.


Enhanced automatic Help to position an Html Help document to the help for a control, if a bookmark (associative link) is defined in the Html Help document.  This is primarily of benefit when using the GUI ScreenIO Help Generator.

Improved the Help Generator, including support for Cascading Style Sheets; improved automated help formatting.

Added the ability to include an icon in the title bar of your application.

Implemented return-every-character for edit controls.

Bugs Fixed

Suppress duplicate events that occasionally occurred when an Alt+ keyboard shortcut was used.

Fixed problem with defining arrays in the panel editor.

Fixed inconsistencies in automatically setting the hourglass cursor when your program is busy.

30 October 2003 - Version 2.1.233

Minor updates, includes updates to the documentation to correct some errors and document new features.


Enabled the "centered" option for main panels.

Implemented the feature that allows you to prevent a user from running more than one instance of your application.  If they attempt to run a second instance, GUI ScreenIO will return panel-CLOSE-AND-STOP events immediately, and on subsequent CALLs, until your application closes.  This is compatible with the recommend style for programming GUI ScreenIO applications.  In addition, GUI ScreenIO will attempt to activate the already-running instance of the application.

Added the API ShellExecute, which automatically launches the default application for the file (or URL) you specify. 

Added options to the application profile to specify the default location of generated programs, and whether to generate COBOL-74 style continuation lines (dash in column 7) in copybooks, which are required for AcuCOBOL and IBM Visual Age COBOL. 

Bugs Fixed

Fixed bug in panel editor that could cause an abnormal termination when trying to save a new profile.

Fixed case where keyboard shortcuts to blind menus ceased working if all of the controls on a panel were protected.

Fixed case where a single ampersand (&) was not displayed in static controls and certain styles of edit controls.  Note:  The ampersand character is used by Windows as a keyboard shortcut.

Fixed case where the number of the active field was not being returned reliably.

Fixed case where closing an inactive popup in a multiple working-set application required two clicks on the "X" box in the title bar, instead of just one.

Corrected panel positioning to always use pixels instead of dialog box units.

Deleted the "Must be:" prefix from the error message in validated edit controls so it is more friendly to non-English language applications.

Added two files that were missing from the sample name/address application ADR.ZIP file.

Corrected a minor error in the standard template used by the program generator in the listview loading logic.

30 September 2003

We've added quite a bit since the last version of GUI ScreenIO.  Here's a quick look at the new features.

New Documentation

We spent several months completely rewriting and updating the GUI ScreenIO documentation.  It's been a lot of work, but it was worth it.  The new format makes it easy to find information you need.

The extensive index and full-text search capabilities are great! 

New Program Generator

It's always hard to get that first program written.  GUI ScreenIO helps you hit the ground running! 

GUI ScreenIO's panel editor generates complete programs (or subroutines) that compile and run unchanged.

The generated programs provide a clean, standard framework with nearly everything needed to handle your panel and the controls in it.  The application-specific code is commented out, but clearly marked so it's easy for you to insert your logic where it's needed.

And, because the program generator is template-driven, you can tailor the output to your own preferences. 

Try it, you'll like it.

New Features in the Panel Editor

The panel editor contains lots of new features:

New Features in the GUI ScreenIO Runtime

The GUI ScreenIO runtime has also been upgraded with:

2000-2019 Norcom, all rights reserved 


Send feedback to Norcom