1 FUNCTION INTEGER AXLATE(CMD$) DECLARE INTEGER SUBPROC DECLARE LONG PID DECLARE LONG Istatus EXTERNAL INTEGER FUNCTION LIB$ATTACH COMMON (PIDVAL) LONG Sub_Pid COMMON (ClipBrd) LONG Clip_Brd_Used PID = 0 ! For our PID IF CMD$="" THEN ! If null, return AXLATE=1 ! but show success GOTO 100 ! END IF ! 20 IF CMD$="VPW>" THEN ! If "window" wanted IF Sub_PID = 0 THEN ! If no window yet Command$='$ @SYS$SYSVPWFILES:WINDOW' ! spawn a window CALL LIB$SPAWN(Command$,,'TT:',,,Sub_pid,SUBPROC)!with return addr CALL EXIT_Spawn(Sub_Pid) ! Establish exit handler ELSE ! Else if window exists Istatus = LIB$ATTACH(Sub_PID BY REF) ! just attach to it IF Istatus = 2280 THEN ! but if it went Sub_PID=0 ! away, show it GOTO 20 ! and make a new one END IF ! END IF END IF ! END IF CMD$='REF' ! Repaint screen ELSE ! Ah, must be clipboard CALL EXIT_Clipboard ! Be sure exit handler set CALL LIB$SPAWN(CMD$,,'CLIPBOARD.',,,,SUBPROC) ! send the command CMD$='EXT CLEAR CLIPBOARD;F=CLIPBOARD;INC SYS$VPWFILES:CLIPBOARD.HDR ;INC CLIPBOARD. ;' Clip_Brd_Used=1 ! Show it was used END IF ! subproc=1 ! Always show success 90 AXLATE=SUBPROC 100 FUNCTIONEND