PrinterSettings.h
上传用户:jubilation
上传日期:2007-01-03
资源大小:18k
文件大小:2k
源码类别:

打印编程

开发平台:

Visual C++

  1. // PrinterSettings.h: Interface of CPrinterSettings.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #if !defined(AFX_PRINTIT_H__2B9969C1_0872_11D3_9A02_0000B45414CC__INCLUDED_)
  5. #define AFX_PRINTIT_H__2B9969C1_0872_11D3_9A02_0000B45414CC__INCLUDED_
  6. #if _MSC_VER > 1000
  7. #pragma once
  8. #endif // _MSC_VER > 1000
  9. #include <winspool.h> // for: ClosePrinter,GetPrinter,PRINTER_INFO_2
  10. #define PRINTERNAME_UNDEFINED "printer not set..."
  11. #define PRINTERSETTINGS_DIRECTORYNAME "printer settings"
  12. class CPrinterSettings : public CObject  
  13. {
  14. public:
  15. CPrinterSettings();
  16. CPrinterSettings(const CString dirname );
  17. virtual ~CPrinterSettings();
  18. // for use e.g. in CArray
  19. public:
  20. void operator=(const CPrinterSettings* src);
  21. void operator=(const CPrinterSettings& src);
  22. // general interface
  23. public:
  24. // is m_hDevMode allocated
  25. bool ValidDevMode(void) const
  26. { return m_hDevMode != NULL; }
  27. // get the settings for the default MFC Printer
  28. void CopyDefaultMfcPrinter(void);
  29. // Set the default MFC Printer to this
  30. void SetThisPrinter(void);
  31. // change settings for global Windows Printer
  32. BOOL SetPrinterDevice(LPCTSTR pszDeviceName) const;
  33. // Show the common dialog and get the settings
  34. CString PrinterSetup( CWnd* pWnd);
  35. // restore previous printer settings (if safed )
  36. void RestorePrinter(void);
  37. CString GetFileName( void ) const
  38. { return m_strfilename; }
  39. CString SetDirName( const CString neu) 
  40. { CString temp = m_strdirname; m_strdirname = neu; return temp; }
  41. CString GetDirName( void ) const
  42. { return m_strdirname; }
  43. // save all settings to disk
  44. int Save(LPCTSTR strFilename);
  45. // load all settings
  46. int Load(LPCTSTR strFilename);
  47. // check to see if our printer is still available
  48. BOOL IsPrinterAvailable(LPCTSTR pszDeviceName);
  49. // retrieve the human readable printername :)
  50. CString GetPrinterName(void) const
  51. { return m_strPrinterName; }
  52. private: // but not useless:  :o)
  53. CString DevmodePrinterName(void);
  54. HANDLE CopyHandle(HANDLE h); 
  55. // copy whole DEVMODE ( with dmSize + dmDriverExtra )
  56. int CopyDevmode( DEVMODE* pDest,const DEVMODE * pSrc) const;
  57. CString SetFileName( const CString neu) 
  58. { CString temp = m_strfilename; m_strfilename = neu; return temp; }
  59. HANDLE m_hDevMode;
  60. HANDLE m_hDevNames;
  61. HANDLE m_hSaveDevMode;
  62. HANDLE m_hSaveDevNames;
  63. CString m_strPrinterName;
  64. CString m_strfilename;
  65. CString m_strdirname;
  66. };
  67. #endif // !defined(AFX_PRINTIT_H__2B9969C1_0872_11D3_9A02_0000B45414CC__INCLUDED_)