%TITLE "CREMBX - Create a Permanent Mailbox" %SBTTL "Identification" PROGRAM CREMBX %IDENT "T0.1" ! ! ! Description: ! ! This program will create a VMS Permanent Mailbox and ! assign it the logical name given on the command line. ! %PAGE %SBTTL "Declarations" OPTION TYPE = EXPLICIT, SIZE = (REAL DOUBLE, INTEGER LONG) EXTERNAL LONG CONSTANT & CLI$_ABSENT EXTERNAL LONG FUNCTION & CLI$GET_VALUE, & SYS$CREMBX DECLARE & LONG & BUF_QUO, & MSG_MAX, & RET_STAT, & WORD & ERR_COD, & MBX_CHAN, & BYTE & PRM_FLAG, & STRING & IN_STRNG, & LOG_NAME PRM_FLAG = 1% RET_STAT = CLI$GET_VALUE( 'LOG_NAME', IN_STRNG ) IF (RET_STAT AND 1%) = 0% THEN CALL LIB$STOP( RET_STAT BY VALUE ) ELSE LOG_NAME = IN_STRNG END IF RET_STAT = CLI$GET_VALUE( 'MESSAGE_MAXIMUM', IN_STRNG ) IF RET_STAT = CLI$_ABSENT THEN MSG_MAX = 0% ELSE CALL LIB$STOP( RET_STAT BY VALUE ) & IF (RET_STAT AND 1%) = 0% WHEN ERROR IN ERR_COD = 0% MSG_MAX = VAL%( IN_STRNG ) USE ERR_COD = ERR END WHEN CALL LIB$STOP( 9502738% BY VALUE ) & IF ERR_COD <> 0% END IF RET_STAT = CLI$GET_VALUE( 'BUFFER_QUOTA', IN_STRNG ) IF RET_STAT = CLI$_ABSENT THEN BUF_QUO = 0% ELSE CALL LIB$STOP( RET_STAT BY VALUE ) & IF (RET_STAT AND 1%) = 0% WHEN ERROR IN ERR_COD = 0% BUF_QUO = VAL%( IN_STRNG ) USE ERR_COD = ERR END WHEN CALL LIB$STOP( 9502738% BY VALUE ) & IF ERR_COD <> 0% END IF RET_STAT = SYS$CREMBX( & PRM_FLAG BY VALUE, ! Permanence Flag & MBX_CHAN BY REF, ! Channel Number & MSG_MAX BY VALUE, ! Max. Message Size & BUF_QUO BY VALUE, ! Buffer Quota & , ! Protection Mask & , ! Access mode & LOG_NAME BY DESC ) ! Logical Name IF (RET_STAT AND 1%) = 0% THEN CALL LIB$STOP( RET_STAT BY VALUE ) END IF EXIT PROGRAM