|
|
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.