SplSetQueue - Example Code

This sample code prompts the user to enter a parameter number and a value at the prompt. This value is then put into a buffer for use by the function.

#define INCL_SPL
#define INCL_SPLDOSPRINT
#define INCL_SPLERRORS

#include <os2.h>
#include <stdio.h>     /* for printf function */
#include <stdlib.h>    /* for atoi function   */
#include <string.h>    /* for strlen function */

INT main (argc, argv)
    INT argc;
    CHAR *argv[];
{
    CHAR   bufValue[2] = {0};
    CHAR   bufInput[128]= {0};
    ULONG  splerr ;
    ULONG  cbBuf ;
    ULONG  ulParmNum ;
    USHORT usParm ;
    PSZ    pszComputerName ;
    PSZ    pszQueueName ;
    PVOID  pBuf;

    if (argc != 2)
    {
       printf("Syntax:  setqryq  QueueName \n");
       DosExit( EXIT_PROCESS , 0 ) ;
    }

    /* This function will be for the local workstation.
    pszComputerName = (PSZ)NULL ;

    /* Get the parameter from the command line.                               */
    pszQueueName = argv[1];

    /* Prompt the user for the parameter and values, and put them in buffers. */
    printf("Enter Parameter number to be modified\n");
    gets(&bufValue[0]);
    printf("Enter new parameter value \n");
    gets(&bufInput[0]);

    /* Convert the ParmNum to a ULONG.                                        */
    ulParmNum = atoi(&bufValue[0]);
    switch (ulParmNum){
       case 2:
       case 3:
       case 4:
       case 10:
          /* Determine the size of the buffer needed.                         */
          cbBuf = sizeof(PUSHORT);

          /* Convert the buffer input to a USHORT.                            */
          usParm =(USHORT)atoi(&bufInput[0]);

          /* Set the pBuf pointer to point to the value obtained.             */
          pBuf = &usParm;
          break;
       case 5:
       case 6:
       case 8:
       case 9:
       case 12:
       case 13:
          /* Determine the size of the buffer needed.                         */
          cbBuf = strlen(&bufInput[0])+1;

          /* Set the pBuf pointer to point to the value obtained from input.  */
          pBuf = (PSZ)&bufInput;
          break;
       case 14:
          printf("For simplicity this is not implemented.");
          break;
       default:
          printf("Invalid number\n");
          DosExit( EXIT_PROCESS , 0 ) ;
          break;
    }

    /* Make the call with all the proper parameters.                          */
    splerr = SplSetQueue(pszComputerName, pszQueueName, 3L,
                         pBuf, cbBuf, ulParmNum) ;

    /* Print the resultant error code, and the parameters entered.            */
    printf("SplSetQueue Error= %ld, Parameter= %d, cbBuf= %ld,
                        ulParmNum= %ld\n",
                             splerr, usParm, cbBuf, ulParmNum);
    DosExit( EXIT_PROCESS , 0 ) ;
    return (splerr);
}


[Back: SplSetQueue - Related Functions]
[Next: SplSetQueue - Topics]