|
|
1.1 ! root 1: /******************************************************************************\ ! 2: * ! 3: * PRINTER.H ! 4: * ! 5: \******************************************************************************/ ! 6: ! 7: ! 8: ! 9: /******************************************************************************\ ! 10: * SYMBOLIC CONSTANTS ! 11: \******************************************************************************/ ! 12: ! 13: #define IDM_PRINT 101 // menu id's ! 14: #define IDM_PRINTDLG 102 ! 15: #define IDM_GETDEVICECAPS 103 ! 16: #define IDM_ENUMPRINTERS 104 ! 17: #define IDM_GETPRINTERDRIVER 105 ! 18: #define IDM_ENUMPRINTERDRIVERS 106 ! 19: #define IDM_REFRESH 107 ! 20: #define IDM_ABOUT 108 ! 21: ! 22: #define IDM_HIENGLISH 201 ! 23: #define IDM_HIMETRIC 202 ! 24: #define IDM_LOENGLISH 203 ! 25: #define IDM_LOMETRIC 204 ! 26: #define IDM_TWIPS 205 ! 27: #define IDM_ISOTROPIC 206 ! 28: #define IDM_ANISOTROPIC 207 ! 29: #define IDM_TEXT 208 ! 30: ! 31: #define IDM_ARC 301 ! 32: #define IDM_ELLIPSE 302 ! 33: #define IDM_LINETO 303 ! 34: #define IDM_PIE 304 ! 35: #define IDM_PLGBLT 305 ! 36: #define IDM_POLYBEZIER 306 ! 37: #define IDM_POLYGON 307 ! 38: #define IDM_POLYLINE 308 ! 39: #define IDM_POLYPOLYGON 309 ! 40: #define IDM_RECTANGLE 310 ! 41: #define IDM_ROUNDRECT 311 ! 42: #define IDM_STRETCHBLT 312 ! 43: #define IDM_ALLGRAPHICS 313 ! 44: #define IDM_NOGRAPHICS 314 ! 45: #define IDM_ENUMFONTS 315 ! 46: #define IDM_DRAWAXIS 316 ! 47: ! 48: #define IDM_SETPENCOLOR 401 ! 49: #define IDM_PENWIDTH_1 402 ! 50: #define IDM_PENWIDTH_2 403 ! 51: #define IDM_PENWIDTH_3 404 ! 52: #define IDM_PENWIDTH_4 405 ! 53: #define IDM_PENWIDTH_5 406 ! 54: #define IDM_PENWIDTH_6 407 ! 55: #define IDM_PENWIDTH_7 408 ! 56: #define IDM_PENWIDTH_8 409 ! 57: #define IDM_PENCOLOR_SOLID 410 ! 58: #define IDM_PENCOLOR_DASH 411 ! 59: #define IDM_PENCOLOR_DOT 412 ! 60: #define IDM_PENCOLOR_DASHDOT 413 ! 61: #define IDM_PENCOLOR_DASHDOTDOT 414 ! 62: #define IDM_PENCOLOR_NULL 415 ! 63: #define IDM_PENCOLOR_INSIDEFRAME 416 ! 64: ! 65: #define IDM_SETBRUSHCOLOR 501 ! 66: #define IDM_BRUSHSTYLE_SOLID 502 ! 67: #define IDM_BRUSHSTYLE_BDIAGONAL 503 ! 68: #define IDM_BRUSHSTYLE_CROSS 504 ! 69: #define IDM_BRUSHSTYLE_DIAGCROSS 505 ! 70: #define IDM_BRUSHSTYLE_FDIAGONAL 506 ! 71: #define IDM_BRUSHSTYLE_HORIZONTAL 507 ! 72: #define IDM_BRUSHSTYLE_VERTICAL 508 ! 73: #define IDM_BRUSHSTYLE_FDIAGONAL1 509 ! 74: #define IDM_BRUSHSTYLE_BDIAGONAL1 510 ! 75: #define IDM_BRUSHSTYLE_DENSE1 511 ! 76: #define IDM_BRUSHSTYLE_DENSE2 512 ! 77: #define IDM_BRUSHSTYLE_DENSE3 513 ! 78: #define IDM_BRUSHSTYLE_DENSE4 514 ! 79: #define IDM_BRUSHSTYLE_DENSE5 515 ! 80: #define IDM_BRUSHSTYLE_DENSE6 516 ! 81: #define IDM_BRUSHSTYLE_DENSE7 517 ! 82: #define IDM_BRUSHSTYLE_DENSE8 518 ! 83: #define IDM_BRUSHSTYLE_NOSHADE 519 ! 84: #define IDM_BRUSHSTYLE_HALFTONE 520 ! 85: ! 86: #define IDM_TEXTCOLOR 601 ! 87: ! 88: #define ID_COMBOBOX 701 // toolbar combobox id ! 89: ! 90: #define MAIN_ICON 1 ! 91: #define MAIN_MENU_NAME "MENU" ! 92: #define MAIN_CLASS_NAME "PRINTER" ! 93: #define MAIN_WND_TITLE "Printer Sample Application" ! 94: #define MAIN_CLASS_STYLE CS_HREDRAW | CS_VREDRAW ! 95: #define MAIN_WND_STYLE WS_OVERLAPPEDWINDOW ! 96: ! 97: #define MAX_MAP_MODES 8 // # items in gaMMLookup ! 98: #define MAX_PENWIDTHS 8 // # items in gaPenWidths ! 99: #define MAX_PENSTYLES 7 // # items in gaPenStyles ! 100: #define MAX_BRUSHSTYLES 19 // # items in gaBrushStyles ! 101: ! 102: #define ERR_MOD_NAME "Error: PRINTER.EXE (PRINTER.C)" ! 103: ! 104: ! 105: ! 106: /******************************************************************************\ ! 107: * TYPEDEFS ! 108: \******************************************************************************/ ! 109: ! 110: typedef struct tagMAPMODELOOKUP ! 111: { ! 112: WORD wMenuItem; ! 113: int iMapMode; ! 114: ! 115: } MAPMODELOOKUP; ! 116: ! 117: typedef struct tagGRAPHICLOOKUP ! 118: { ! 119: WORD wMenuItem; ! 120: DWORD dwGraphic; ! 121: ! 122: } GRAPHICLOOKUP; ! 123: ! 124: typedef struct tagPENWIDTHLOOKUP ! 125: { ! 126: WORD wMenuItem; ! 127: int iPenWidth; ! 128: ! 129: } PENWIDTHLOOKUP; ! 130: ! 131: typedef struct tagPENSTYLELOOKUP ! 132: { ! 133: WORD wMenuItem; ! 134: int iPenStyle; ! 135: ! 136: } PENSTYLELOOKUP; ! 137: ! 138: typedef struct tagBRUSHSTYLELOOKUP ! 139: { ! 140: WORD wMenuItem; ! 141: int iBrushStyle; ! 142: ! 143: } BRUSHSTYLELOOKUP; ! 144: ! 145: typedef struct tagSTATUSBARLOOKUP ! 146: { ! 147: WORD wMenuItem; ! 148: LPCSTR szText; ! 149: ! 150: } STATUSBARLOOKUP; ! 151: ! 152: ! 153: ! 154: /******************************************************************************\ ! 155: * GLOBAL VARS ! 156: \******************************************************************************/ ! 157: ! 158: HANDLE ghInst; // app instance handle ! 159: HWND ghwndMain; // main app window handle ! 160: HWND ghwndAbort; // Abort dialog handle ! 161: LONG glcyMenu; // menu height ! 162: DWORD gdwGraphicsOptions = DRAWAXIS; // current graphic options (to display) ! 163: int giMapMode = MM_TEXT; // current map mode ! 164: HDC ghdc; // device context to print on ! 165: BOOL gbAbort; // AbortProc return code ! 166: ! 167: char gszDeviceName[BUFSIZE]; // current device name ! 168: char gszPort [BUFSIZE]; // current port ! 169: char gszDriverName[BUFSIZE]; // current driver name ! 170: ! 171: DWORD gdwPenColor = 0x00ff00; // current pen color ! 172: DWORD gdwBrushColor = 0x0000ff; // current brush color ! 173: DWORD gdwTextColor = 0xff0000; // current text color ! 174: ! 175: int giPenStyle = PS_SOLID; // current pen style ! 176: int giPenWidth = 1; // current pen width ! 177: int giBrushStyle = HS_SOLID; // current brush style ! 178: ! 179: MAPMODELOOKUP gaMMLookup[] = ! 180: ! 181: { { IDM_HIENGLISH , MM_HIENGLISH }, ! 182: { IDM_HIMETRIC , MM_HIMETRIC }, ! 183: { IDM_LOENGLISH , MM_LOENGLISH }, ! 184: { IDM_LOMETRIC , MM_LOMETRIC }, ! 185: { IDM_TWIPS , MM_TWIPS }, ! 186: { IDM_ISOTROPIC , MM_ISOTROPIC }, ! 187: { IDM_ANISOTROPIC, MM_ANISOTROPIC }, ! 188: { IDM_TEXT , MM_TEXT } }; ! 189: ! 190: GRAPHICLOOKUP gaGraphicLookup[] = ! 191: ! 192: { { IDM_ARC , ARC }, ! 193: { IDM_ELLIPSE , ELLIPSE }, ! 194: { IDM_LINETO , LINETO }, ! 195: { IDM_PIE , PIE }, ! 196: { IDM_PLGBLT , PLG_BLT }, ! 197: { IDM_POLYBEZIER , POLYBEZIER }, ! 198: { IDM_POLYGON , POLYGON }, ! 199: { IDM_POLYLINE , POLYLINE }, ! 200: { IDM_POLYPOLYGON, POLYPOLYGON }, ! 201: { IDM_RECTANGLE , RECTANGLE }, ! 202: { IDM_ROUNDRECT , ROUNDRECT }, ! 203: { IDM_STRETCHBLT , STRETCH_BLT } }; ! 204: ! 205: PENWIDTHLOOKUP gaPenWidths[] = ! 206: ! 207: { { IDM_PENWIDTH_1, 1 }, ! 208: { IDM_PENWIDTH_2, 2 }, ! 209: { IDM_PENWIDTH_3, 3 }, ! 210: { IDM_PENWIDTH_4, 4 }, ! 211: { IDM_PENWIDTH_5, 5 }, ! 212: { IDM_PENWIDTH_6, 6 }, ! 213: { IDM_PENWIDTH_7, 7 }, ! 214: { IDM_PENWIDTH_8, 8 } }; ! 215: ! 216: PENSTYLELOOKUP gaPenStyles[] = ! 217: ! 218: { { IDM_PENCOLOR_SOLID , PS_SOLID }, ! 219: { IDM_PENCOLOR_DASH , PS_DASH }, ! 220: { IDM_PENCOLOR_DOT , PS_DOT }, ! 221: { IDM_PENCOLOR_DASHDOT , PS_DASHDOT }, ! 222: { IDM_PENCOLOR_DASHDOTDOT , PS_DASHDOTDOT }, ! 223: { IDM_PENCOLOR_NULL , PS_NULL }, ! 224: { IDM_PENCOLOR_INSIDEFRAME, PS_INSIDEFRAME} }; ! 225: ! 226: BRUSHSTYLELOOKUP gaBrushStyles[] = ! 227: ! 228: { { IDM_BRUSHSTYLE_SOLID , HS_SOLID }, ! 229: { IDM_BRUSHSTYLE_BDIAGONAL , HS_BDIAGONAL }, ! 230: { IDM_BRUSHSTYLE_CROSS , HS_CROSS }, ! 231: { IDM_BRUSHSTYLE_DIAGCROSS , HS_DIAGCROSS }, ! 232: { IDM_BRUSHSTYLE_FDIAGONAL , HS_FDIAGONAL }, ! 233: { IDM_BRUSHSTYLE_HORIZONTAL, HS_HORIZONTAL}, ! 234: { IDM_BRUSHSTYLE_VERTICAL , HS_VERTICAL }, ! 235: { IDM_BRUSHSTYLE_FDIAGONAL1, HS_FDIAGONAL1}, ! 236: { IDM_BRUSHSTYLE_BDIAGONAL1, HS_BDIAGONAL1}, ! 237: { IDM_BRUSHSTYLE_DENSE1 , HS_DENSE1 }, ! 238: { IDM_BRUSHSTYLE_DENSE2 , HS_DENSE2 }, ! 239: { IDM_BRUSHSTYLE_DENSE3 , HS_DENSE3 }, ! 240: { IDM_BRUSHSTYLE_DENSE4 , HS_DENSE4 }, ! 241: { IDM_BRUSHSTYLE_DENSE5 , HS_DENSE5 }, ! 242: { IDM_BRUSHSTYLE_DENSE6 , HS_DENSE6 }, ! 243: { IDM_BRUSHSTYLE_DENSE7 , HS_DENSE7 }, ! 244: { IDM_BRUSHSTYLE_DENSE8 , HS_DENSE8 }, ! 245: { IDM_BRUSHSTYLE_NOSHADE , HS_NOSHADE }, ! 246: { IDM_BRUSHSTYLE_HALFTONE , HS_HALFTONE } }; ! 247: ! 248: ! 249: ! 250: /******************************************************************************\ ! 251: * FUNCTION PROTOTYPES ! 252: \******************************************************************************/ ! 253: ! 254: LRESULT CALLBACK MainWndProc (HWND, UINT, WPARAM, LPARAM); ! 255: LRESULT CALLBACK AboutDlgProc (HWND, UINT, WPARAM, LPARAM); ! 256: LRESULT CALLBACK AbortDlgProc (HWND, UINT, WPARAM, LPARAM); ! 257: ! 258: BOOL CALLBACK AbortProc (HDC, int); ! 259: ! 260: void InvalidateClient (void); ! 261: void RefreshPrinterCombobox (HWND); ! 262: void PrintThread (LPVOID);
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.