|
|
1.1 ! root 1: /******************************************************************************\ ! 2: * ! 3: * ENUMPRT.H ! 4: * ! 5: \******************************************************************************/ ! 6: ! 7: ! 8: ! 9: /******************************************************************************\ ! 10: * SYMBOLIC CONSTANTS ! 11: \******************************************************************************/ ! 12: ! 13: #define MAX_ATTRIBUTES 4 // # of elements in gaAttributes ! 14: #define MAX_PRIORITIES 4 // # of elements in gaPriorities ! 15: #define MAX_STATUS 3 // # of elements in gaStatus ! 16: #define MAX_FIELDS 15 // # of elements in gaFields ! 17: #define MAX_ORIENTATION 2 // # of elements in gaOrientation ! 18: #define MAX_PAPERSIZE 41 // # of elements in gaPaperSize ! 19: #define MAX_DEFAULTSOURCE 16 // # of elements in gaDefaultSource ! 20: #define MAX_PRINTQUALITY 4 // # of elements in gaPrintQuality ! 21: #define MAX_COLOR 2 // # of elements in gaColor ! 22: #define MAX_DUPLEX 3 // # of elements in gaDuplex ! 23: ! 24: #define ERR_MOD_NAME (LPCTSTR)"Error: PRINTER.EXE (ENUMPRT.C)" ! 25: ! 26: #define BLANKS " \t\t" ! 27: ! 28: /******************************************************************************\ ! 29: * TYPEDEFS ! 30: \******************************************************************************/ ! 31: ! 32: typedef struct tagENUMPRTLOOKUP ! 33: { ! 34: DWORD dwValue; ! 35: LPCSTR szValue; ! 36: ! 37: } ENUMPRTLOOKUP; ! 38: ! 39: ! 40: ! 41: /******************************************************************************\ ! 42: * GLOBAL VARIABLES ! 43: \******************************************************************************/ ! 44: ! 45: HWND ghwndEnumPrt; ! 46: DWORD gdwEnumFlags; ! 47: char gszEnumName[BUFSIZE]; ! 48: ! 49: LPSTR gaEnumPrt[] = ! 50: ! 51: { "PRINTER_INFO_1" , ! 52: " pDescription: \t\t%s" , ! 53: " pName: \t\t%s" , ! 54: " pComment: \t%s" , ! 55: "PRINTER_INFO_2" , ! 56: " pServerName: \t%s" , // 5 ! 57: " pPrinterName: \t%s" , ! 58: " pShareName: \t%s" , ! 59: " pPortName: \t%s" , ! 60: " pDriverName: \t%s" , ! 61: " pComment: \t%s" , // 10 ! 62: " pLocation: \t%s" , ! 63: " pDevMode \t" , ! 64: " dmDeviceName: \t%s" , ! 65: " dmSpecVersion: \t%d" , ! 66: " dmDriverVersion: \t%d" , // 15 ! 67: " dmSize: \t%d" , ! 68: " dmDriverExtra: \t%d" , ! 69: " dmFields: \t%s" , ! 70: " dmOrientation: \t%s" , ! 71: " dmPaperSize: \t%s" , // 20 ! 72: " dmPaperLength: \t%d" , ! 73: " dmPaperWidth: \t%d" , ! 74: " dmScale: \t%d" , ! 75: " dmCopies: \t%d" , ! 76: " dmDefaultSource: \t%s" , // 25 ! 77: " dmPrintQuality: \t%s" , ! 78: " dmColor: \t%s" , ! 79: " dmDuplex: \t%s" , ! 80: " dmYResolution: \t" , ! 81: " dmTTOption: \t" , // 30 ! 82: " dmCollate: \t" , ! 83: " dmFormName: \t" , ! 84: " pSepFile: \t\t%s" , ! 85: " pPrintProcessor: \t%s" , ! 86: " pDatatype: \t\t%s" , // 35 ! 87: " pParameters: \t%s" , ! 88: " Attributes: \t\t" , ! 89: " Priority: \t\t%s" , ! 90: " Priority: \t\t%ld", ! 91: " DefaultPriority: \t\t%ld", // 40 ! 92: " StartTime: \t\t%ld", ! 93: " UntilTime: \t\t%ld", ! 94: " Status: \t" , ! 95: " cJobs: \t\t%ld", ! 96: " AveragePPM: \t%ld" }; ! 97: ! 98: ENUMPRTLOOKUP gaAttributes[] = ! 99: ! 100: { { PRINTER_ATTRIBUTE_QUEUED , "PRINTER_ATTRIBUTE_QUEUED " }, ! 101: { PRINTER_ATTRIBUTE_DIRECT , "PRINTER_ATTRIBUTE_DIRECT " }, ! 102: { PRINTER_ATTRIBUTE_DEFAULT , "PRINTER_ATTRIBUTE_DEFAULT " }, ! 103: { PRINTER_ATTRIBUTE_SHARED , "PRINTER_ATTRIBUTE_SHARED " } }; ! 104: ! 105: ENUMPRTLOOKUP gaPriorities[] = ! 106: ! 107: { { NO_PRIORITY , "NO_PRIORITY " }, ! 108: { MAX_PRIORITY , "MAX_PRIORITY " }, ! 109: { MIN_PRIORITY , "MIN_PRIORITY " }, ! 110: { DEF_PRIORITY , "DEF_PRIORITY " } }; ! 111: ! 112: ENUMPRTLOOKUP gaStatus[] = ! 113: ! 114: { { PRINTER_STATUS_PAUSED , "PRINTER_STATUS_PAUSED " }, ! 115: { PRINTER_STATUS_ERROR , "PRINTER_STATUS_ERROR " }, ! 116: { PRINTER_STATUS_PENDING_DELETION, "PRINTER_STATUS_PENDING_DELETION "}, ! 117: { 0 , "" }}; ! 118: ! 119: ENUMPRTLOOKUP gaFields[] = ! 120: ! 121: { { DM_ORIENTATION , "DM_ORIENTATION " }, ! 122: { DM_PAPERSIZE , "DM_PAPERSIZE " }, ! 123: { DM_PAPERLENGTH , "DM_PAPERLENGTH " }, ! 124: { DM_PAPERWIDTH , "DM_PAPERWIDTH " }, ! 125: { DM_SCALE , "DM_SCALE " }, ! 126: { DM_COPIES , "DM_COPIES " }, ! 127: { DM_DEFAULTSOURCE, "DM_DEFAULTSOURCE" }, ! 128: { DM_PRINTQUALITY , "DM_PRINTQUALITY " }, ! 129: { DM_COLOR , "DM_COLOR " }, ! 130: { DM_DUPLEX , "DM_DUPLEX " }, ! 131: { DM_YRESOLUTION , "DM_YRESOLUTION " }, ! 132: { DM_TTOPTION , "DM_TTOPTION " }, ! 133: { DM_COLLATE , "DM_COLLATE " }, ! 134: { DM_FORMNAME , "DM_FORMNAME " }, ! 135: { 0 , "0 " } }; ! 136: ! 137: ENUMPRTLOOKUP gaOrientation[] = ! 138: ! 139: { { DMORIENT_PORTRAIT , "DMORIENT_PORTRAIT " }, ! 140: { DMORIENT_LANDSCAPE, "DMORIENT_LANDSCAPE" } }; ! 141: ! 142: ENUMPRTLOOKUP gaPaperSize[] = ! 143: ! 144: { { DMPAPER_FIRST , "DMPAPER_FIRST " }, ! 145: { DMPAPER_LETTER , "DMPAPER_LETTER " }, ! 146: { DMPAPER_LETTERSMALL , "DMPAPER_LETTERSMALL " }, ! 147: { DMPAPER_TABLOID , "DMPAPER_TABLOID " }, ! 148: { DMPAPER_LEDGER , "DMPAPER_LEDGER " }, ! 149: { DMPAPER_LEGAL , "DMPAPER_LEGAL " }, ! 150: { DMPAPER_STATEMENT , "DMPAPER_STATEMENT " }, ! 151: { DMPAPER_EXECUTIVE , "DMPAPER_EXECUTIVE " }, ! 152: { DMPAPER_A3 , "DMPAPER_A3 " }, ! 153: { DMPAPER_A4 , "DMPAPER_A4 " }, ! 154: { DMPAPER_A4SMALL , "DMPAPER_A4SMALL " }, ! 155: { DMPAPER_A5 , "DMPAPER_A5 " }, ! 156: { DMPAPER_B4 , "DMPAPER_B4 " }, ! 157: { DMPAPER_B5 , "DMPAPER_B5 " }, ! 158: { DMPAPER_FOLIO , "DMPAPER_FOLIO " }, ! 159: { DMPAPER_QUARTO , "DMPAPER_QUARTO " }, ! 160: { DMPAPER_10X14 , "DMPAPER_10X14 " }, ! 161: { DMPAPER_11X17 , "DMPAPER_11X17 " }, ! 162: { DMPAPER_NOTE , "DMPAPER_NOTE " }, ! 163: { DMPAPER_ENV_9 , "DMPAPER_ENV_9 " }, ! 164: { DMPAPER_ENV_10 , "DMPAPER_ENV_10 " }, ! 165: { DMPAPER_ENV_11 , "DMPAPER_ENV_11 " }, ! 166: { DMPAPER_ENV_12 , "DMPAPER_ENV_12 " }, ! 167: { DMPAPER_ENV_14 , "DMPAPER_ENV_14 " }, ! 168: { DMPAPER_CSHEET , "DMPAPER_CSHEET " }, ! 169: { DMPAPER_DSHEET , "DMPAPER_DSHEET " }, ! 170: { DMPAPER_ESHEET , "DMPAPER_ESHEET " }, ! 171: { DMPAPER_ENV_DL , "DMPAPER_ENV_DL " }, ! 172: { DMPAPER_ENV_C5 , "DMPAPER_ENV_C5 " }, ! 173: { DMPAPER_ENV_C3 , "DMPAPER_ENV_C3 " }, ! 174: { DMPAPER_ENV_C4 , "DMPAPER_ENV_C4 " }, ! 175: { DMPAPER_ENV_C6 , "DMPAPER_ENV_C6 " }, ! 176: { DMPAPER_ENV_C65 , "DMPAPER_ENV_C65 " }, ! 177: { DMPAPER_ENV_B4 , "DMPAPER_ENV_B4 " }, ! 178: { DMPAPER_ENV_B5 , "DMPAPER_ENV_B5 " }, ! 179: { DMPAPER_ENV_B6 , "DMPAPER_ENV_B6 " }, ! 180: { DMPAPER_ENV_ITALY , "DMPAPER_ENV_ITALY " }, ! 181: { DMPAPER_ENV_MONARCH , "DMPAPER_ENV_MONARCH " }, ! 182: { DMPAPER_ENV_PERSONAL , "DMPAPER_ENV_PERSONAL " }, ! 183: { DMPAPER_FANFOLD_STD_GERMAN, "DMPAPER_FANFOLD_STD_GERMAN" }, ! 184: { DMPAPER_FANFOLD_LGL_GERMAN, "DMPAPER_FANFOLD_LGL_GERMAN" } }; ! 185: ! 186: ENUMPRTLOOKUP gaDefaultSource[] = ! 187: ! 188: { { DMBIN_FIRST , "DMBIN_FIRST " }, ! 189: { DMBIN_UPPER , "DMBIN_UPPER " }, ! 190: { DMBIN_ONLYONE , "DMBIN_ONLYONE " }, ! 191: { DMBIN_LOWER , "DMBIN_LOWER " }, ! 192: { DMBIN_MIDDLE , "DMBIN_MIDDLE " }, ! 193: { DMBIN_MANUAL , "DMBIN_MANUAL " }, ! 194: { DMBIN_ENVELOPE , "DMBIN_ENVELOPE " }, ! 195: { DMBIN_ENVMANUAL , "DMBIN_ENVMANUAL " }, ! 196: { DMBIN_AUTO , "DMBIN_AUTO " }, ! 197: { DMBIN_TRACTOR , "DMBIN_TRACTOR " }, ! 198: { DMBIN_SMALLFMT , "DMBIN_SMALLFMT " }, ! 199: { DMBIN_LARGEFMT , "DMBIN_LARGEFMT " }, ! 200: { DMBIN_LARGECAPACITY, "DMBIN_LARGECAPACITY" }, ! 201: { DMBIN_CASSETTE , "DMBIN_CASSETTE " }, ! 202: { DMBIN_LAST , "DMBIN_LAST " }, ! 203: { DMBIN_USER , "DMBIN_USER " } }; ! 204: ! 205: ENUMPRTLOOKUP gaPrintQuality[] = ! 206: ! 207: { { (DWORD)DMRES_DRAFT , "DMRES_DRAFT " }, ! 208: { (DWORD)DMRES_LOW , "DMRES_LOW " }, ! 209: { (DWORD)DMRES_MEDIUM, "DMRES_MEDIUM" }, ! 210: { (DWORD)DMRES_HIGH , "DMRES_HIGH " } }; ! 211: ! 212: ENUMPRTLOOKUP gaColor[] = ! 213: ! 214: { { DMCOLOR_MONOCHROME, "DMCOLOR_MONOCHROME" }, ! 215: { DMCOLOR_COLOR , "DMCOLOR_COLOR " } }; ! 216: ! 217: ENUMPRTLOOKUP gaDuplex[] = ! 218: ! 219: { { DMDUP_SIMPLEX , "DMDUP_SIMPLEX " }, ! 220: { DMDUP_VERTICAL , "DMDUP_VERTICAL " }, ! 221: { DMDUP_HORIZONTAL, "DMDUP_HORIZONTAL" } }; ! 222: ! 223: char *gaDriverInfo[] = ! 224: ! 225: { "DRIVER_INFO_1", ! 226: " pName\t\t%s", ! 227: ! 228: "DRIVER_INFO_2", ! 229: " cVersion\t%ld", ! 230: " pName\t\t%s", ! 231: " pEnvironment\t%s", ! 232: " pDriverPath\t%s", ! 233: " pDataFile\t%s", ! 234: " pConfigFile\t%s" }; ! 235: ! 236: ! 237: ! 238: /******************************************************************************\ ! 239: * EXTERNAL VARIABLES ! 240: \******************************************************************************/ ! 241: ! 242: extern HWND ghwndMain; ! 243: ! 244: ! 245: ! 246: /******************************************************************************\ ! 247: * MACROS ! 248: \******************************************************************************/ ! 249: ! 250: #define outstr(fmt,arg) wsprintf (buf,fmt,arg?arg:"(null)"); \ ! 251: SendDlgItemMessage (hwnd, DID_LISTBOX, \ ! 252: LB_INSERTSTRING, (UINT)-1, \ ! 253: (LONG) buf); ! 254: ! 255: #define outstr2(buf) SendDlgItemMessage (hwnd, DID_LISTBOX, \ ! 256: LB_INSERTSTRING, (UINT)-1, \ ! 257: (LONG) buf); ! 258: ! 259: #define outstr3() SendDlgItemMessage (hwnd, DID_LISTBOX, \ ! 260: LB_INSERTSTRING, \ ! 261: (UINT)-1, (LONG) buf); ! 262: ! 263: #define outnum(fmt,arg) wsprintf(buf,fmt,arg); \ ! 264: SendDlgItemMessage (hwnd, DID_LISTBOX, \ ! 265: LB_INSERTSTRING, (UINT)-1, \ ! 266: (LONG) buf); ! 267: ! 268: ! 269: ! 270: /******************************************************************************\ ! 271: * FUNCTION PROTOTYPES ! 272: \******************************************************************************/ ! 273: ! 274: LRESULT CALLBACK EnumPrintersOptionsDlgProc (HWND, UINT, WPARAM, LPARAM); ! 275: ! 276: BOOL DisplayEnumPrintersInfo (HWND); ! 277: void SetEnumPrintersDlgFields (HWND, DWORD, LPPRINTER_INFO_1, ! 278: LPPRINTER_INFO_2); ! 279: void ComplexEnumPrintersLine (HWND, char *, ENUMPRTLOOKUP *, int, DWORD); ! 280: BOOL DisplayPrinterDriversInfo (HWND);
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.