The KCAP_Vx.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 KCAPSHR, a sharable runtime library. You may use this interface to integrate KeyCapture into your own applications, making KeyCapture 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 – KCAPSHR
KCAPSHR is a callable entry point in a protected shared image which allows you to call KeyCapture as a subroutine, from your own programs and menus. Note that KCAP_Vx.EXE calls this KCAPSHR passing it the command line which was entered as a DCL foreign command. Format: CALLS #5,G^KCAPSHR kcapcmd ,actrtn ,facnam ,actprm ,outlen Arguments: kcapcmd VMS usage: char_string type: character string access: read only mechanism: by descriptor--fixed length string descriptor Character string containing the KeyCapture command to be executed. The kcapcmd argument is the address of a descriptor specifying the command string being passed to KCAPSHR. It must begin with the verb KCAP. The syntax rules for this command string are the same as for any command which KeyCapture would process from the DCL command prompt. kcapcmd may not be passed as zero but the length in the descriptor of the command may be 0 which will cause KCAPSHR 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 KCAP 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 KCAPSHR is returned here unless the command passed was only "KCAP/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 KCAPSHR 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.