The following code can be used to validate the information in the
versioninfo.dll file:
/* Getting info from versioninfo.dll */
&SCOPED-DEFINE DLLNAME "versioninfo.dll"
PROCEDURE getBuildNumber EXTERNAL {&DLLNAME}:
DEFINE RETURN PARAMETER inum AS LONG.
END.
PROCEDURE getMajorNumber EXTERNAL {&DLLNAME}:
DEFINE RETURN PARAMETER inum AS LONG.
END.
PROCEDURE getMinorNumber EXTERNAL {&DLLNAME}:
DEFINE RETURN PARAMETER inum AS LONG.
END.
PROCEDURE getMaintenanceLevel EXTERNAL {&DLLNAME}:
DEFINE OUTPUT PARAM pcver AS CHARACTER.
DEFINE INPUT PARAM pilen AS LONG.
DEFINE RETURN PARAM iret AS LONG.
END.
PROCEDURE getServicePackNumber EXTERNAL {&DLLNAME}:
DEFINE RETURN PARAMETER inum AS LONG.
END.
PROCEDURE getTemporaryFixNumber EXTERNAL {&DLLNAME}:
DEFINE RETURN PARAMETER inum AS LONG.
END.
DEFINE VARIABLE cMaint AS CHARACTER NO-UNDO.
DEFINE VARIABLE iMajor AS INTEGER NO-UNDO.
DEFINE VARIABLE iMinor AS INTEGER NO-UNDO.
DEFINE VARIABLE iServicePack AS INTEGER NO-UNDO.
DEFINE VARIABLE iHotfix AS INTEGER NO-UNDO.
DEFINE VARIABLE iBuildNo AS INTEGER NO-UNDO.
DEFINE VARIABLE iReturn AS INTEGER NO-UNDO.
RUN getBuildNumber(OUTPUT iBuildNo).
RUN getMajorNumber(OUTPUT iMajor).
RUN getMinorNumber(OUTPUT iMinor).
RUN getMaintenanceLevel(OUTPUT cMaint, INPUT 256, OUTPUT iReturn).
RUN getServicePackNumber(OUTPUT iServicePack).
RUN getTemporaryFixNumber(OUTPUT iHotfix).
MESSAGE
"Major" iMajor SKIP
"Minor" iMinor SKIP
"Maint" cMaint SKIP
"Service Pack" iServicePack SKIP
"Temp fix" iHotfix SKIP
"Build" iBuildNo
VIEW-AS ALERT-BOX INFO BUTTONS OK.