71 lines
1.9 KiB
C++
71 lines
1.9 KiB
C++
// Printer.h: interface for the CPrinter class.
|
|
//
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef _PRINTER_H
|
|
#define _PRINTER_H
|
|
|
|
/***********************************************\
|
|
* Define - ULOFFSET
|
|
*
|
|
* Description - This gives the offset into a data structure
|
|
\***********************************************/
|
|
#define ULOFFSET(type, identifier) ((ULONG_PTR)&(((type)0)->identifier))
|
|
|
|
|
|
class CPrinter
|
|
{
|
|
public:
|
|
DWORD GetWaitingTime();
|
|
BOOL GetJobEtaData (DWORD &, DWORD &, DWORD &, DWORD &);
|
|
LPTSTR GetPrinterWebUrl();
|
|
LPTSTR GetOemUrl(LPTSTR & pszManufactureName);
|
|
|
|
PPRINTER_INFO_2 GetPrinterInfo2 ();
|
|
BOOL CalJobEta();
|
|
BOOL Open (LPTSTR pPrinterName, LPHANDLE phPrinter = NULL);
|
|
CPrinter();
|
|
virtual ~CPrinter();
|
|
|
|
private:
|
|
|
|
enum DriverData {
|
|
OEMUrlPattern = 0,
|
|
HardwareID,
|
|
Manufacturer,
|
|
LastDriverData // This must always be the last member of the Enum.
|
|
};
|
|
|
|
PDRIVER_INFO_6 GetDriverInfo6 ();
|
|
|
|
BOOL AllocGetPrinterInfo2();
|
|
BOOL AllocGetPrinterInfo4();
|
|
BOOL AllocGetDriverInfo6();
|
|
|
|
DWORD GetPPM();
|
|
DWORD GetWaitingMinutes(DWORD dwPPM, PJOB_INFO_2 pJobInfo, DWORD dwNumJob);
|
|
BOOL GetDriverData(DriverData dwDriverData, LPTSTR &pszData);
|
|
BOOL ParseUrlPattern(LPTSTR pSrc, LPTSTR pDest, DWORD &dwDestLen);
|
|
|
|
HANDLE m_hPrinter;
|
|
PPRINTER_INFO_2 m_pInfo2;
|
|
PPRINTER_INFO_4 m_pInfo4;
|
|
PDRIVER_INFO_6 m_pDriverInfo6;
|
|
BOOL m_bCalcJobETA;
|
|
DWORD m_dwPendingJobCount;
|
|
DWORD m_dwAvgJobSize;
|
|
DWORD m_dwJobCompletionMinute;
|
|
DWORD m_dwAvgJobSizeUnit;
|
|
|
|
LPTSTR m_pszUrlBuffer;
|
|
|
|
LPTSTR m_pszOemUrl;
|
|
LPTSTR m_pszManufacturer;
|
|
};
|
|
|
|
#else
|
|
|
|
class CPrinter;
|
|
|
|
#endif
|