This sample code will initialize a PDEVOPENSTRUC and use it to call the function.
#define INCL_SPL
#define INCL_SPLDOSPRINT
#define INCL_BASE
#define INCL_ERRORS
#include <os2.h>
#include <stdio.h>
#include <stdlib.h>
VOID main()
{
HSPL hspl;
PDEVOPENSTRUC pdata; /* Pointer to a DEVOPENSTRUC structure */
PSZ pszToken = "*"; /* Spooler info identifier */
/* Allocate memory for pdata */
if ( !DosAllocMem( &pdata,sizeof( DEVOPENSTRUC ),
(PAG_READ|PAG_WRITE|PAG_COMMIT ) )
{
/* Initialize elements of pdata */
pdata->pszLogAddress = "LPT1Q1";
pdata->pszDriverName = "IBMNULL";
pdata->pdriv = NULL;
pdata->pszDataType = "PM_Q_STD";
pdata->pszComment = NULL;
pdata->pszQueueProcName = NULL;
pdata->pszQueueProcParams = NULL;
pdata->pszSpoolerParams = NULL;
pdata->pszNetworkParams = NULL;
hspl = SplQmOpen( pszToken,4L,( PQMOPENDATA )pdata );
if ( hspl != SPL_ERROR ) /* Good spooler handle */
{
printf("SplQmOpen handle is %d\n",hspl);
}
else
{
printf("SplQmOpen failed.\n");
}
}
}