hi. I have an MFC based app which uses a printer to print.
After install printer named "HP Lazer Jet 4000 PCL 6".
When I print it with "Test Page", the page can be printed out successfully( or by other program such as word 2000 ). So I think
the printer is installed properly.
But In my app I will use this printer to print pages.
From MSDN, "6" means the handle is Invalid, But the function callCode:CDC * CreatePrinterDC( LPCTSTR lpszPrinter ) { HANDLE hPrinter = NULL ; if (!OpenPrinter((LPTSTR)lpszPrinter , &hPrinter, NULL)) return NULL; DWORD dwErr = GetLastError() ; // dwErr == 0 // A zero for last param returns the size of buffer needed. // Get the printer settings and reset with default values. int nSize = DocumentProperties(NULL, hPrinter, (LPTSTR) lpszPrinter , NULL, NULL, 0); dwErr = GetLastError() ; // dwErr == 6 if(nSize < 0) { ClosePrinter( hPrinter ) ; return NULL; } // other codes for set the default behaviors for this // printer and return the printer DC. }
OpenPrinter() succeeds.
I don't the reason. who has ideas ?
wxuf


Reply With Quote
Bookmarks