* :--------------------------------------- * ------------------------: Copybook for GetVersionEx. * : * : See the documentation for details. * :--------------------------------------- * * To use: * * COPY WIN32API. * COPY GVERSION. * . * . * ------------------------: Call the API to obtain the OS version. * * SET API-GETVERSIONEX TO TRUE. * CALL 'GSWINAPI' USING WIN32API-PARMS * GETVERSIONEX * WIN32API-B * WIN32API-C * WIN32API-D * WIN32API-E * WIN32API-F. * * ------------------------: If function failed, * : display a textual error message. * * IF WIN32API-FAILED * MOVE WIN32API-ERROR-TEXT TO my-error-message * do whatever to display my-error-message. * * ---------------------------------------------------------------- * * Notes: The data returned by this API varies depending upon * the operating system. To determine the precise version * use this code: * * EVALUATE TRUE * * WHEN PLATFORM-WINNT * EVALUATE GETVERSION-MAJORVERSION * WHEN 3 * MOVE 'Windows NT 3.x' TO myversion-text * WHEN 4 * MOVE 'Windows NT 4.x' TO myversion-text * WHEN 5 * MOVE 'Windows 2000' TO myversion-text * WHEN OTHER * MOVE 'Unknown Windows NT version' TO myversion-text * END-EVALUATE * * WHEN PLATFORM-WIN9X * EVALUATE GETVERSION-MINORVERSION * WHEN 0 * MOVE 'Windows 95' TO myversion-text * WHEN OTHER * IF WIN9X-VERSION-WINME * MOVE 'Windows Me' TO myversion-text * ELSE * MOVE 'Unknown Windows 9x' TO myversion-text * END-IF * END-EVALUATE * * WHEN OTHER * MOVE 'Unknown Windows version' TO myversion-text * * END-EVALUATE * 01 GETVERSIONEX. 05 GETVERSION-LENGTH PIC S9(9) COMP-5. 05 GETVERSION-MAJORVERSION PIC S9(9) COMP-5. 05 GETVERSION-MINORVERSION PIC S9(9) COMP-5. 05 GETVERSION-BUILDNUMBER PIC S9(9) COMP-5. 05 GETVERSION-WIN9X REDEFINES GETVERSION-BUILDNUMBER. 10 GETVERSION-WIN9X-VERSION PIC S9(4) COMP-5. 88 WIN9X-VERSION-WINME VALUE 3000. 10 GETVERSION-WIN9X-BUILDNUMBER PIC S9(4) COMP-5. 05 GETVERSION-PLATFORMID PIC S9(9) COMP-5. 88 PLATFORM-WIN9X VALUE 1. 88 PLATFORM-WINNT VALUE 2. * ------------------------: Additional text; version dependent. * : * : If Windows NT/2000, * : service pack info: "Service Pack 3" * : If Windows 95/98, * : arbitrary additional OS info. 05 GETVERSION-TEXT PIC X(128).