Date: 12-01-2008 Subject: PATCH RELEASE 9.3 Runtime Files These release notes pertain to the following programs or files: EMBEDINI 9.3 01 Dec 2008 9,3,0,500 MAKECLI 9.3 01 Dec 2008 9,3,0,500 MAKECON 9.3 01 Dec 2008 9,3,0,500 MAKEDEF 9.3 01 Dec 2008 9,3,0,500 MAKEMFD 9.3 01 Dec 2008 9,3,0,500 PLBCLI 9.3 01 Dec 2008 9,3,0,600 PLBCLICON 9.3 01 Dec 2008 9,3,0,500 PLBCLIENT 9.3 01 Dec 2008 9,3,0,500 PLBCLINET 9.3 01 Dec 2008 9,3,0,500 PLBCON 9.3 01 Dec 2008 9,3,0,500 PLBDSIGN 9.3 01 Dec 2008 9,3,0,500 PLBNET 9.3 01 Dec 2008 9,3,0,500 PLBRUN 9.3 01 Dec 2008 9,3,0,600 PLBSERVE 9.3 01 Dec 2008 9,3,0,500 PLBSERVET 9.3 01 Dec 2008 9,3,0,500 (Threaded Server) PLBWIN 9.3 01 Dec 2008 9,3,0,500 SUNAAMDX 9.3 01 Dec 2008 9,3,0,500 SETGUID 9.3 01 Dec 2008 9,3,0,500 SUNINDEX 9.3 01 Dec 2008 9,3,0,500 SUNLS 9.3 01 Dec 2008 9,3,0,500 (New) SUNMOD 9.3 01 Dec 2008 9,3,0,500 SUNSORT 9.3 01 Dec 2008 9,3,0,500 ODSBAC32.DLL 9.3 01 Dec 2008 PLBWSEC.DLL 9.3 01 Dec 2008 9,3,0,500 SA_DLL32.DLL 9.3 01 Dec 2008 9,3,0,500 SUNWADO.DLL 9.3 01 Dec 2008 9,3,0,500 SUNWODBC.DLL 9.3 01 Dec 2008 9,3,0,500 SUNWMSQL.DLL 9.3 01 Dec 2008 9,3,0,500 SUNWSRV.DLL 9.3 01 Dec 2008 9,3,0,500 PLBCMP 9.3 01 Dec 2008 PLBDBUG 9.3 01 Dec 2008 PLBEQU.INC 9.3 01 Dec 2008 ADMEQU.INC 9.3 01 Dec 2008 PLBMETH.INC 9.3 01 Dec 2008 DBGIFACE.PLC 9.3 01 Dec 2008 DESIGNER.PLC 9.3 01 Dec 2008 SUNIDE.PLC 9.3 01 Dec 2008 SUNLIST.PLC 9.3 01 Dec 2008 WATCH.PLC 9.3 01 Dec 2008 SUNCSENC.OCX 9.3 01 Dec 2008 *============================================================================== Notes for some NEW Items: - Sunbelt License Server. *============================================================================== Notes for DOCUMENTATION: - Add the following note (11.) to the GETPROP instruction: 11. When any property has a destination variable that is a GUI object, then the destination GUI object must not be created. Otherwise, the destination GUI object is NOT replaced and it remains unchanged. This is the GETPROP instruction behavior since the original implementation." - Add the following note (9.) to the IMAGELIST ADDBMP method: 9. A {bmp} resource number value of zero causes the imagelist picture to be loaded from the clipboard." - Add the following note (7.) to the IMAGELIST LoadStdToolBitmap method: 7. The execution of the LoadStdToolBitmap method causes the currently created IMAGELIST to be destroyed and replaced with the default images and specialized images from the runtime resources. After the LoadStdToolBitmap method has successfully executed, the newly created IMAGELIST object has the properties implicitly set by the method as follows: MASKCOLOR=0xC0C0C0 USECOLORMASK=1 USEMASK=1 IMAGEHEIGHT=16 IMAGEWIDTH=16" - Change the USEMASK property for the IMAGELIST object to read as follows: The USEMASK property determines whether an IMAGELIST object is to be created to support an image masking or not. When the USEMASK property is set ON, then it is possible to apply an image mask using the COLORMASK COLORMASK and USECOLORMASK properties to create transparent areas when an image is added to the IMAGELIST object. When an IMAGELIST is created with the USEMASK set to OFF, then the IMAGELIST object can not support image masking and using the COLORMASK and USECOLORMASK properties to apply a color mask causes the images to have black areas. The property uses the following format:" - Modify the note (2.) for the USECOLORMASK property as follows: 2. When a masked image is drawn, the mask color specified by the COLORMASK property is combined with the image when the USECOLORMASK property is set to ON. This operation can only create transparent areas for an image if the USEMASK property was set ON when an IMAGELIST object is created. Otherwise, applying an image mask can cause black areas to appear in an image." - Modify the AUTOSCALE property for the PICT object to remove the $NONE value and identify the $SCALEBEST as the default value. Value Keyword Picture scaling is ... 1 $SCALEBEST best fit. (default) 2 $SCALEHORZ horizontal. 3 $SCALENONE disabled. (same as RESIZE=$OFF) 4 $SCALEVERT vertical. - Modify the TYPE instruction to include the following object type values for a NETOBJECT and NETCONTROL. Data Type Sunbelt SWDBC NETOBJECT 14128 (0x3730) 16 NETCONTROL 14384 (0x3830) 16 *============================================================================== The following files have been changed as outlined below: ------------------------------------------------------------------------------- PLBSERVE - Modified the Application Server to allow the DISPLAY/KEYIN *DSPMODE and *KEYMODE controls to take affect at the client. The *DSPMODE/*KEYMODE mode values of 0 and 1 are supported. A mode value of 1 causes the client (Plbclient, Plbclicon, or Plbclinet) to use stdin and/or stdout for DISPLAY/KEYIN IO. The changes as described can allow the plb clients to be used for a web server cgi interface. - Modified to support the License Server. See the SUNLS section for details. - Corrected a problem where the PAUSE instruction was not being ignored when an event was pending using PLBSERVE. - Corrected a problem where the PAUSE instruction did not detect when the end user program clicks the main window close button. - Corrected a problem where the CHECKEVENT instruction was not update the ARG1 to ARG10 parameters when an event was dispatched. ------------------------------------------------------------------------------- PLBSERVE(WINDOWS) - Corrected a problem where the ADMGETINFO instruction was only returning zero for the $ADMITEMSRVVER server version. This problem started with release 9.2 of the Windows Application Server that is processed based. - Corrected a problem where PLBSERVE was not detecting a NT Service stop command when the PLBCS_HOSTNAME ip address was '0.0.0.0'. ------------------------------------------------------------------------------- PLBCLICON - Modified the console client to allow the stdin/stdout to be redirected for DISPLAY/KEYIN IO with or without the use of the DISPLAY/KEYIN '*DSPMODE=1' and '*KEYMODE=1' controls. Prior to this change the redirected IO did not work for the PLBCLICON client. ------------------------------------------------------------------------------- PLBCLIENT, PLBCLICON, PLBCLINET - Modified the clients to allow the DISPLAY/KEYIN '*DSPMODE=1' and '*KEYMODE=1' controls to take affect and be used by the client to redirect DISPLAY/KEYIN IO to stdin/stdout. This ability to redirect stdin/stdout at the client requires that both the Plbserve and client must be a 9.3 version or later. These changes allow a client to be used by a Web Server using the CGI interface. - Added a new command line option named '-quiet' for the clients. This command line option prevents all client administrative data displays at the client workstation. In this case, a quiet error log file named 'plbclient_quiet.log', 'plbclicon_quiet.log', or 'plbclinet_quiet.log' is created in the same directory where the executable is located. Any error messages generated by the client is stored into the quiet error log file. The '-quiet' command line option is required to eliminate any unwanted display data when using a Web Server CGI interface. - Modified to remove trailing blanks from the data for embedded keywords. ------------------------------------------------------------------------------- PLBCLIENT, PLBCLINET - NT Service support has been added for the client modules. The client module's command line options have been change to include the following: Command Line Option: -delete - Remove NT Service. -idefault - Install NT Service using default OS settings. -ilocal - Install NT Service using 'NT AUTHORITY\\LocalService'. -inetwork - Install NT Service using 'NT AUTHORITY\\NetworkService'. -iuser=name;pass - Install NT Service using specified username/password. - New keywords have been added for the client modules to support NT Service recovery configuration settings: PLBCS_SERVICE_FAIL1={0, 1, or 2} - First failure action. 0 - Take no action (default) 1 - Restart the service 2 - Reboot the computer PLBCS_SERVICE_FAIL2={0, 1, or 2} - Second failure action. 0 - Take no action (default) 1 - Restart the service 2 - Reboot the computer PLBCS_SERVICE_FAIL3={0, 1, or 2} - Subsequent failures action. 0 - Take no action (default) 1 - Restart the service 2 - Reboot the computer Note for PLBCS_SERVICE_FAILx: If the service controller handles the SC_ACTION_REBOOT action, the caller must have the SE_SHUTDOWN_NAME privilege. For more information, see Running with Special Privileges in the Microsoft documentation. PLBCS_SERVICE_DELAY1 = 0 <= {min} <= 60 - Time to wait before taking action for first failure. PLBCS_SERVICE_DELAY2 = 0 <= {min} <= 60 - Time to wait before taking action for Second failure. PLBCS_SERVICE_DELAY3 = 0 <= {min} <= 60 - Time to wait before taking action for subsequent failures. PLBCS_SERVICE_DESC = {desc} - Description for NT Service. PLBCS_SERVICE_RESTART = {ON|OFF} - When this keyword is set to 'ON', the NT Service will restart the client module if the NT Service is configured to 'Restart Service' on failures and the PLBCLIENT is terminated. ------------------------------------------------------------------------------- PLBSERVE, PLBCLIENT, PLBCLICON, PLBCLINET - Corrected a problem where the APPEARANCE property was not defaulting to the parent Window setting when the APPEARANCE was not specified in a CREATE instruction. This changes corrects a problem where a CREATE of a LISTVIEW object on the MAINWINDOW did not have a border using PLBWIN and the same program had a border using PLBCLIENT/PLBSERVE. ------------------------------------------------------------------------------- PLB(UNIX), PLBSERVE(UNIX) - Corrected a SEGV error that could occur when opening a XFILE with a user '.xml' file specified that contained complex XML data elements. This SEGV error was caused by a memory buffer conflict using realloc. ------------------------------------------------------------------------------- PLBWIN, PLBNET - NT Service support has been added for the runtimes. The runtime command line options have been change to include the following: Command Line Option: -delete - Remove NT Service. -idefault - Install NT Service using default OS settings. -ilocal - Install NT Service using 'NT AUTHORITY\\LocalService'. -inetwork - Install NT Service using 'NT AUTHORITY\\NetworkService'. -iuser=name;pass - Install NT Service using specified username/password. - New keywords have been added for the runtimes to support NT Service recovery configuration settings: PLB_SERVICE_FAIL1={0, 1, or 2} - First failure action. 0 - Take no action (default) 1 - Restart the service 2 - Reboot the computer PLB_SERVICE_FAIL2={0, 1, or 2} - Second failure action. 0 - Take no action (default) 1 - Restart the service 2 - Reboot the computer PLB_SERVICE_FAIL3={0, 1, or 2} - Subsequent failures action. 0 - Take no action (default) 1 - Restart the service 2 - Reboot the computer Note for PLB_SERVICE_FAILx: If the service controller handles the SC_ACTION_REBOOT action, the caller must have the SE_SHUTDOWN_NAME privilege. For more information, see Running with Special Privileges in the Microsoft documentation. PLB_SERVICE_DELAY1 = 0 <= {min} <= 60 - Time to wait before taking action for First failure. PLB_SERVICE_DELAY2 = 0 <= {min} <= 60 - Time to wait before taking action for Second failure. PLB_SERVICE_DELAY3 = 0 <= {min} <= 60 - Time to wait before taking action for subsequent failures. PLB_SERVICE_DESC={desc} - Description for NT Service. PLB_SERVICE_RESTART={ON|OFF} - When this keyword is set to 'ON', the NT Service will restart the runtime if the the NT Service is configured to 'Restart Service' on failures and the PLB program is terminated. PLB_SERVICE_CMDLINE={cmdline} - The {cmdline} is specified as a PLB runtime command line without the runtime runtime module name. Examples: PLB_SERVICE_CMDLINE=ProgName PLB_SERVICE_CMDLINE=-i c:\app\my.ini ProgName Notes: 1. If there is a need to install more than one NT Service for a PLB runtime, the user can copy the PLBNET or PLBWIN runtime executable to an EXE with a different name and it a runtime with a different name. 2. All of the defined NT Server keywords are optional. ------------------------------------------------------------------------------- PLBWIN, PLBNET, PLBSERVE, PLB(UNIX) - Increased the maximum pending connects from 1 to 10 for a COMFILE that is opened for a socket to listen for multiple connections. - Optimized the XFILE operations when writing at the EOF record position. Depending on the speed of the CPU being used, this change can improve the performance of writing 200000 records by a factor of 400 or more. - Added a new keyword named 'SCHEMATYPE={svar}' for a GETFILE XFILE instruction. The GETFILE SCHEMATYPE keyword returns a delimited string that includes the schema data label references with a XML data node type and its schema type. The format for SCHEMATYPE data with semi-colon ';' character delimiters is: '{data};{data1};...' Where: {data} = ',