This sample code demonstrates the result of various actions that can be performed on the print device by this function call. At the command line, a print device name is entered along with an action code.
#define INCL_SPL #define INCL_SPLDOSPRINT #define INCL_SPLERRORS #include <os2.h> #include <stdio.h> /* for printf function */ INT main (argc, argv) INT argc; CHAR *argv[]; { SPLERR splerr ; ULONG ulControl=0L ; PSZ pszComputerName = NULL ; PSZ pszPrintDeviceName ; /* Input a Print Device Name and an Action Code on the command line */ if (argc != 3) { printf("Syntax is: qcontrol PrintDeviceName ActionCode \n"); printf("Action codes are: D-Delete, P-Pause, C-Continue, R-Restart\n\n"); DosExit( EXIT_PROCESS , 0 ) ; } /* Get the print device name from the first input parameter. */ pszPrintDeviceName = argv[1]; /* Get the action code from the second input parameter. */ switch (argv[2][0]) { case 'D': ulControl = PRD_DELETE ; break; case 'P': ulControl = PRD_PAUSE ; break; case 'C': ulControl = PRD_CONT ; break; case 'R': ulControl = PRD_RESTART ; break; default: printf("Invalid code\n"); DosExit( EXIT_PROCESS , 0 ) ; } /* Call the function with the parameters obtained from the command line. */ splerr = SplControlDevice(pszComputerName, pszPrintDeviceName, ulControl); /* If there is an error returned, print it. */ if (splerr != 0L) { switch (splerr) { case NERR_DestNotFound : printf("Destination does not exist.\n"); break; case NERR_DestIdle: printf("This print device is idle - can't do control ops. \n"); break; default: printf("Errorcode = %ld\n",splerr); } } else { printf("The print job operation was performed.\n\n"); } DosExit( EXIT_PROCESS , 0 ) ; return (splerr) ; }