BOOL EnumJobs( HANDLE hPrinter, // handle to printer object DWORD FirstJob, // location of first job in print queue to // enumerate DWORD NoJobs, // number of jobs to enumerate DWORD Level, // structure level LPBYTE pJob, // pointer to structure array DWORD cbBuf, // size of array, in bytes LPDWORD pcbNeeded, // addr. of variable with no. of bytes copied // (or required) LPDWORD pcReturned // addr. of variable with no. of job info. // structures copied ); WHERE pJob is "Pointer to an array of either JOB_INFO_1 or JOB_INFO_2 structures." typedef struct _JOB_INFO_1 { // ji1 DWORD JobId; LPTSTR pPrinterName; LPTSTR pMachineName; LPTSTR pUserName; LPTSTR pDocument; LPTSTR pDatatype; LPTSTR pStatus; DWORD Status; DWORD Priority; DWORD Position; DWORD TotalPages; DWORD PagesPrinted; SYSTEMTIME Submitted; } JOB_INFO_1;I was able to get pJob into a character variable but it was full of all those unprintable characters although I can see the pPrintName, pMachineName, pUserName, pDocument contents in that variable.