The PEEK.EXE program as distributed with this version is a very simple program which just gets the command line with a call to LIB$GET_FOREIGN and then passes it to PEEKSHR, a sharable runtime library. You may use this interface to integrate PEEK into your own applications, making PEEK a part of your product. By specifying the facility name parameter, you may customize the error messages to use your product name as a prefix.
1 – PEEKSHR
PEEKSHR is a callable entry point in a protected shared image which allows you to call PEEK as a subroutine, from your own programs and menus. Note that PEEK.EXE calls this PEEKSHR passing it the command line which was entered as a DCL foreign command. Format: CALLS #5,G^PEEKSHR peekcmd ,actrtn ,facnam ,actprm ,outlen Arguments: peekcmd VMS usage: char_string type: character string access: read only mechanism: by descriptor--fixed length string descriptor Character string containing the PEEK command to be executed. The peekcmd argument is the address of a descriptor specifying the command string being passed to PEEKSHR. It must begin with the verb PEEK. The syntax rules for this command string are the same as for any command which PEEK would process from the DCL command prompt. peekcmd may not be passed as zero but the length in the descriptor of the command may be 0 which will cause PEEKSHR to prompt for a command interactively. actrtn CALLING OF THE USER'S ACTRTN IS NOT YET IMPLEMENTED FOR VERSION 4 on AXP. VMS usage: procedure type: procedure entry mask access: call without stack unwinding mechanism: by reference User-supplied action routine to be executed during message processing. The actrtn argument is the address of the entry mask of this routine. If an actrtn is specified and the actrtn returns a success status (the low bit of R0 is set) then the message is output using $PUTMSG. If the actrtn returns a failure status, (the low bit of R0 clear) then no message is output. If specified as 0 then no actrtn is called and the messages are output by $PUTMSG. facnam VMS usage: char_string type: character-coded text string access: read only mechanism: by descriptor--fixed length string descriptor Facility prefix to be used in the first or only message written by $PUTMSG. The facnam argument is the address of a character string descriptor pointing to this facility prefix. If passed as 0 then PEEK is used as the facility name. actprm CALLING OF THE USER'S ACTRTN IS NOT YET IMPLEMENTED FOR VERSION 4 on AXP. VMS usage: user_arg type: longword (unsigned) access: read only mechanism: by value Parameter to be passed to the action routine. The actprm is a longword value containing this parameter. If there is no parameter to pass then actprm should be specified as 0. outlen VMS usage: word_unsigned type: word (unsigned) access: write only mechanism: by reference The number of bytes in the command passed to PEEKSHR/SPYSHR is returned here unless the command passed was only "PEEK/COMMAND" or "SPY/COMMAND" in which case outlen is returned as zero indicating that there was no actual command passed and that a command was prompted for interactively and executed. This is useful for determining whether or not to call PEEKSHR again in prompting mode. This argument must be passed as the address of a word in the calling program for which there is write access.
2 – SPYSHR
SPYSHR is a callable entry point in a protected shared image which allows you to call SPY as a subroutine, from your own programs and menus. Note that SPY.EXE calls this SPYSHR passing it the command line which was entered as a DCL foreign command. The arguments are the same as those for PEEKSHR except that commands passed to SPYSHR must begin with the verb SPY in the PEEKCMD argument.