Retrieve Printer Status Using Windows API
docPrint and docPrint Pro are virtual printer
software that saves any document you print as 20+ formats. Below are some
examples that can help you to accomplish your task with docPrint Printer.
Download Evaluation Version of docPrint
SDK
Purchase docPrint SDK
#include <Winspool.h> DWORD GetPrinterStatus( char* szPrnName ) { HANDLE hHandle = 0; // Handle of the printer DWORD dwStatus = 0; // Printer status we should receive // Few values for example: // 0x00000000 - ready // 0x00000001 - paused // 0x00000002 - error // 0x00000200 - busy // 0x00000400 - printing // for more info please see MSDN DWORD dwSize = 0; // Size of memory we should // allocate for PRINTER_INFO_2 PRINTER_INFO_2* pPrnInfo2 = 0; // Structure specifies detailed // printer information DEVMODE DevMode = {0}; // Structure contains information // about the device initialization // and environment of a printer PRINTER_DEFAULTS PrnDef = { 0, &DevMode, PRINTER_ACCESS_USE }; // Open printer with name szPrnName if( !OpenPrinter( szPrnName, &hHandle, &PrnDef ) ) return 0; // Error // How many memory should be allocated for printer data? GetPrinter( hHandle, 2, 0, 0, &dwSize ); if( !dwSize ) return 0; // Error // Allocate memory pPrnInfo2 = (PRINTER_INFO_2*)malloc( dwSize ); // Receive printer details if(!GetPrinter( hHandle, 2, (LPBYTE)pPrnInfo2, dwSize, &dwSize )) return 0; // Error dwStatus = pPrnInfo2->Status; // Free allocated memory free( pPrnInfo2 ); // Close printer ClosePrinter( hHandle ); return dwStatus; } |
Copyright
© 2000-2006 by VeryPDF, Inc.
Send comments about this site to the webmaster.