Click here to Skip to main content
15,922,696 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
Questiondata transfer. Pin
rajeev8222-Mar-06 2:02
rajeev8222-Mar-06 2:02 
GeneralRe: data transfer. Pin
Ștefan-Mihai MOGA22-Mar-06 2:39
professionalȘtefan-Mihai MOGA22-Mar-06 2:39 
AnswerRe: data transfer. Pin
basementman22-Mar-06 5:12
basementman22-Mar-06 5:12 
QuestionCDHTMLViewSpec related urgent!!! Pin
Shoaib Patel22-Mar-06 1:58
Shoaib Patel22-Mar-06 1:58 
QuestionCOleDateTime error in VS.NET 2003 ? Pin
irol22-Mar-06 1:36
professionalirol22-Mar-06 1:36 
AnswerRe: COleDateTime error in VS.NET 2003 ? Pin
RChin22-Mar-06 3:23
RChin22-Mar-06 3:23 
QuestionCHttpconnection Pin
vivek.s.vivek22-Mar-06 1:10
vivek.s.vivek22-Mar-06 1:10 
QuestionHow to get the status of a USB printer. Pin
ashwath200522-Mar-06 0:58
ashwath200522-Mar-06 0:58 
hi,
I needed a small help regarding the code which i have written in VC++ to get the status of a printer like ''PRINTER_STATUS_NO_TONER", "PRINTER_STATUS_PAPER_JAM" etc..
I have written the following code:

char szPrinter[255];
memset(szPrinter,'\0',255);
strcpy(szPrinter,m_szPrinterName.operator LPCTSTR());

BOOL bSuccess = FALSE;

HANDLE hPrinter = NULL;
PRINTER_DEFAULTS *lpDefaults = NULL;

BOOL bOpen = ::OpenPrinter(szPrinter, &hPrinter, lpDefaults);
DWORD dwBytesReturned;
DWORD dwBytesNeeded;

GetPrinter(hPrinter, 2, NULL, 0, &dwBytesNeeded);
PRINTER_INFO_2 *pPrinterInfo = (PRINTER_INFO_2*)GlobalAlloc(GPTR,dwBytesNeeded);

bSuccess = ::GetPrinter(hPrinter, 2, (LPBYTE)pPrinterInfo,dwBytesNeeded, &dwBytesReturned);

uint32 dwStatusID = 0;
switch(pPrinterInfo->Status)
{
case PRINTER_STATUS_BUSY:
dwStatusID = ID_STAT_PRN_BUSY;
bSuccess = TRUE;
break;
case PRINTER_STATUS_DOOR_OPEN:
dwStatusID = ID_STAT_PRN_DOOR_OPEN;
bSuccess = TRUE;
break;
case PRINTER_STATUS_ERROR:
dwStatusID = ID_STAT_PRN_ERROR;
bSuccess = FALSE;
break;
case PRINTER_STATUS_INITIALIZING:
dwStatusID = ID_STAT_PRN_INITIALIZING;
bSuccess = TRUE;
break;
case PRINTER_STATUS_IO_ACTIVE:
dwStatusID = ID_STAT_PRN_IO_ACTIVE;
bSuccess = TRUE;
break;
case PRINTER_STATUS_MANUAL_FEED:
dwStatusID = ID_STAT_PRN_MANUAL_FEED;
bSuccess = TRUE;
break;
case PRINTER_STATUS_NO_TONER:
dwStatusID = ID_STAT_PRN_NO_TONER;
bSuccess = FALSE;
break;
case PRINTER_STATUS_NOT_AVAILABLE:
dwStatusID = ID_STAT_PRN_NOT_AVAILABLE;
bSuccess = FALSE;
break;
case PRINTER_STATUS_OFFLINE:
dwStatusID = ID_STAT_PRN_OFFLINE;
bSuccess = TRUE;
break;
case PRINTER_STATUS_OUT_OF_MEMORY:
dwStatusID = ID_STAT_PRN_OUT_OF_MEMORY;
bSuccess = FALSE;
break;
case PRINTER_STATUS_OUTPUT_BIN_FULL:
dwStatusID = ID_STAT_PRN_OUTPUT_BIN_FULL;
bSuccess = TRUE;
break;
case PRINTER_STATUS_PAGE_PUNT:
dwStatusID = ID_STAT_PRN_PAGE_PUNT;
bSuccess = FALSE;
break;
case PRINTER_STATUS_PAPER_JAM:
dwStatusID = ID_STAT_PRN_PAPER_JAM;
bSuccess = FALSE;
break;
case PRINTER_STATUS_PAPER_OUT:
dwStatusID = ID_STAT_PRN_PAPER_OUT;
bSuccess = FALSE;
break;
case PRINTER_STATUS_PAPER_PROBLEM:
dwStatusID = ID_STAT_PRN_PAPER_PROBLEM;
bSuccess = FALSE;
break;
case PRINTER_STATUS_PAUSED:
dwStatusID = ID_STAT_PRN_PAUSED;
bSuccess = TRUE;
break;
case PRINTER_STATUS_PENDING_DELETION:
dwStatusID = ID_STAT_PRN_PENDING_DELETION;
bSuccess = FALSE;
break;
case PRINTER_STATUS_POWER_SAVE:
dwStatusID = ID_STAT_PRN_POWER_SAVE;
bSuccess = TRUE;
break;
case PRINTER_STATUS_PRINTING:
dwStatusID = ID_STAT_PRN_PRINTING;
bSuccess = TRUE;
break;
case PRINTER_STATUS_PROCESSING:
dwStatusID = ID_STAT_PRN_PROCESSING;
bSuccess = TRUE;
break;
case PRINTER_STATUS_SERVER_UNKNOWN:
dwStatusID = ID_STAT_PRN_SERVER_UNKNOWN;
bSuccess = FALSE;
break;
case PRINTER_STATUS_TONER_LOW:
dwStatusID = ID_STAT_PRN_TONER_LOW;
bSuccess = TRUE;
break;
case PRINTER_STATUS_USER_INTERVENTION:
dwStatusID = ID_STAT_PRN_USER_INTERVENTION;
bSuccess = FALSE;
break;
case PRINTER_STATUS_WAITING:
dwStatusID = ID_STAT_PRN_WAITING;
bSuccess = TRUE;
break;
case PRINTER_STATUS_WARMING_UP:
dwStatusID = ID_STAT_PRN_WARMING_UP;
bSuccess = TRUE;
break;
case 0:
bSuccess = TRUE;
break;
default:
dwStatusID = PRINTER_STATUS_SERVER_UNKNOWN;
bSuccess = FALSE;
break;
}

The above code works fine for a parallel port network printer,but the "pPrinterInfo->Status" parameter returns "0" for a local USB printer.
Can anyone kindly tell me what may be the problem.



QuestionDisabling item in MENUBAR Pin
Killer322-Mar-06 0:25
Killer322-Mar-06 0:25 
AnswerRe: Disabling item in MENUBAR Pin
ashokbngr22-Mar-06 0:37
ashokbngr22-Mar-06 0:37 
AnswerRe: Disabling item in MENUBAR Pin
Nibu babu thomas22-Mar-06 0:54
Nibu babu thomas22-Mar-06 0:54 
GeneralRe: Disabling item in MENUBAR Pin
Killer322-Mar-06 2:33
Killer322-Mar-06 2:33 
GeneralRe: Disabling item in MENUBAR Pin
Ștefan-Mihai MOGA22-Mar-06 2:47
professionalȘtefan-Mihai MOGA22-Mar-06 2:47 
GeneralRe: Disabling item in MENUBAR Pin
Nibu babu thomas22-Mar-06 16:56
Nibu babu thomas22-Mar-06 16:56 
QuestionHigh CPU with Mouse Global Hook Pin
redfish3422-Mar-06 0:11
redfish3422-Mar-06 0:11 
QuestionNid help in getting list of URLS in a webpage/website Pin
SteelCrow21-Mar-06 23:50
SteelCrow21-Mar-06 23:50 
AnswerRe: Nid help in getting list of URLS in a webpage/website Pin
Giannakakis Kostas22-Mar-06 1:13
professionalGiannakakis Kostas22-Mar-06 1:13 
GeneralRe: Nid help in getting list of URLS in a webpage/website Pin
SteelCrow22-Mar-06 16:02
SteelCrow22-Mar-06 16:02 
GeneralRe: Nid help in getting list of URLS in a webpage/website Pin
Giannakakis Kostas22-Mar-06 19:02
professionalGiannakakis Kostas22-Mar-06 19:02 
QuestionHow to get window's color? Pin
at2000121-Mar-06 23:23
at2000121-Mar-06 23:23 
AnswerRe: How to get window's color? Pin
Hamid_RT21-Mar-06 23:39
Hamid_RT21-Mar-06 23:39 
Questionprinting Pin
_tasleem21-Mar-06 23:20
_tasleem21-Mar-06 23:20 
AnswerRe: printing Pin
Monty221-Mar-06 23:43
Monty221-Mar-06 23:43 
AnswerRe: printing Pin
Hamid_RT22-Mar-06 8:45
Hamid_RT22-Mar-06 8:45 
QuestionAutomatization help needed Pin
Radu Sorin21-Mar-06 23:18
Radu Sorin21-Mar-06 23:18 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.