intrface_12.h 25.1 KB
Newer Older
Peter Achten's avatar
Peter Achten committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
/* C module intrface */

#define MaxRand									32767
#define iWhitePattern							4
#define iLtGreyPattern							3
#define iGreyPattern							2
#define iDkGreyPattern							1
#define iBlackPattern							0
#define iModeNotBic								7
#define iModeNotXor								6
#define iModeNotOr								5
#define iModeNotCopy							4
#define iModeBic								3
#define iModeXor								2
#define iModeOr									1
#define iModeCopy								0
#define iStrikeOut								8
#define iUnderline								4
#define iItalic									2
#define iBold									1
#define WinHelpKey								5
#define WinEscapeKey							27
#define WinReturnKey							13
#define WinTabKey								9
#define WinDelKey								127
#define WinBackSpKey							8
#define WinEndKey								4
#define WinBeginKey								1
#define WinPgDownKey							12
#define WinPgUpKey								11
#define WinRightKey								29
#define WinLeftKey								28
#define WinDownKey								31
#define WinUpKey								30
#define WinF1Key								1001
#define WinF2Key								1002
#define WinF3Key								1003
#define WinF4Key								1004
#define WinF5Key								1005
#define WinF6Key								1006
#define WinF7Key								1007
#define WinF8Key								1008
#define WinF9Key								1009
#define WinF10Key								1010
#define WinF11Key								1011
#define WinF12Key								1012
#define CTRLBIT									4
#define ALTBIT									2
#define SHIFTBIT								1
#define KEYREPEAT								4
#define KEYUP									2
#define KEYDOWN									1
#define BUTTONSTILLUP							0			/* PA: new constant for mouse handling. */
#define BUTTONUP								50
#define BUTTONSTILLDOWN							40
#define BUTTONTRIPLEDOWN						3
#define BUTTONDOUBLEDOWN						2
#define BUTTONDOWN								1
#define CURSHIDDEN								6
#define CURSARROW								5
#define CURSFATCROSS							4
#define CURSCROSS								3
#define CURSIBEAM								2
#define CURSBUSY								1
#define EDITISMULTILINE							1			/* PA: flag value: edit control is multi-line. */
#define EDITISKEYSENSITIVE						2			/* PA: flag value: edit control sends keyboard events to Clean. */

/* PA: new constants that are passed when creating (custom)button controls.
*/
#define ISNORMALBUTTON							0			/* The button is a normal button.   */
#define ISOKBUTTON								1			/* The button is the OK button.     */
#define ISCANCELBUTTON							2			/* The button is the CANCEL button. */

/* Mike... */
#define CcRqUSERGAMEEVENT						1905        /* send user event to other objects */
#define CcRqCREATEGAMEOBJECT					1904        /* create a new game object */
#define CcRqPLAYSOUNDSAMPLE						1903        /* initialize sound sample */
#define CcRqRUNGAME								1901		/* run the game engine */
#define CcRqCREATEGAMEWINDOW					1900		/* create a game window */
/* ...Mike */

// MW...
83
#define CcRqDO_PRINT_SETUP						1828
Peter Achten's avatar
Peter Achten committed
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#define CcRqDO_HTML_HELP						1827
#define CcRqGET_PRINTER_DC						1824
#define CcRqDISPATCH_MESSAGES_WHILE_PRINTING	1823
#define CcRqENDDOC								1822
#define CcRqSTARTDOC							1821
// ... MW
#define CcRqDESTROYMDIDOCWINDOW					1817		/* PA: added to destroy MDI document window */
#define CcRqCREATESDIDOCWINDOW					1816		/* PA: added to create SDI document window */
#define CcRqCREATEMDIDOCWINDOW					1815		/* PA: added to create MDI document window */
#define CcRqCREATEMDIFRAMEWINDOW				1814		/* PA: added to create MDI frame window */
#define CcRqCREATESDIFRAMEWINDOW				1813		/* PA: added to create SDI frame window */
#define CcRqCLIPBOARDHASTEXT					1812
#define CcRqGETCLIPBOARDTEXT					1811
#define CcRqSETCLIPBOARDTEXT					1810
#define CcRqDIRECTORYDIALOG						1802		/* PA: added to create directory selector dialog. */
#define CcRqFILESAVEDIALOG						1801
#define CcRqFILEOPENDIALOG						1800
101
#define CcRqUPDATEDESKTOP						1790		/* PA: added to force refresh of desktop. */
Peter Achten's avatar
Peter Achten committed
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
#define CcRqSHOWCONTROL							1755		/* PA: added */
#define CcRqSELECTPOPUPITEM						1754
#define CcRqENABLEPOPUPITEM						1753
#define CcRqADDTOPOPUP							1752
#define CcRqSETITEMCHECK						1751
#define CcRqENABLECONTROL						1750
#define CcRqCREATECOMPOUND						1729		/* PA: added */
#define CcRqCREATESCROLLBAR						1728		/* PA: added */
#define CcRqCREATECUSTOM						1727
#define CcRqCREATEICONBUT						1726
#define CcRqCREATEPOPUP							1725
#define CcRqCREATECHECKBOX						1724
#define CcRqCREATERADIOBUT						1723
#define CcRqCREATEEDITTXT						1722
#define CcRqCREATESTATICTXT						1721
#define CcRqCREATEBUTTON						1720
#define CcRqCREATEMODALDIALOG					1701		/* PA: added to create modal dialog. */
#define CcRqCREATEDIALOG						1700
//#define CcRqGETBLINKTIME						1670	PA: has become obsolete because implemented as direct C call
//#define CcRqWAIT								1660	PA: has become obsolete because implemented as direct C call
//#define CcRqGETCURDATE							1651	PA: has become obsolete because implemented as direct C call
//#define CcRqGETCURTIME							1650	PA: has become obsolete because implemented as direct C call
#define CcRqCREATETOOLBARSEPARATOR				1603		/* PA: added to create a toolbar separator item. */
#define CcRqCREATETOOLBARITEM					1602		/* PA: added to create a toolbar bitmap item. */
#define CcRqCREATEMDITOOLBAR					1601		/* PA: added to create a toolbar for a MDI process. */
#define CcRqCREATESDITOOLBAR					1600		/* PA: added to create a toolbar. */
#define CcCbFONTSIZE							1530
#define CcCbFONTNAME							1520
#define CcRqGETFONTSIZES						1510
#define CcRqGETFONTNAMES						1500

#define CcRqSETCLIENTSIZE						1438		/* PA: added to set client size. */
#define CcRqDELCONTROLTIP						1437		/* PA: added to remove controls from tooltip areas. */
#define CcRqADDCONTROLTIP						1436		/* PA: added to add controls to tooltip areas. */
#define CcRqGETWINDOWSIZE						1435		/* PA: new identifier for cross-calls */
#define CcRqRESTACKWINDOW						1434		/* PA: new identifier for cross-calls */
#define CcRqSHOWWINDOW							1433		/* PA: new identifier for cross-calls */
#define CcRqSETWINDOWSIZE						1432		/* PA: new identifier for cross-calls */
#define CcRqSETSELECTWINDOW						1431		/* PA: new identifier for cross-calls */
#define CcRqSETWINDOWPOS						1430		/* PA: new identifier for cross-calls */
#define CcRqINVALIDATERECT						1429		/* PA: new identifier for cross-calls */
#define CcRqSETEDITSELECTION					1428		/* PA: new identifier for cross-calls */
#define CcRqSETSCROLLSIZE						1427		/* PA: new identifier for cross-calls */
#define CcRqSETSCROLLPOS						1426		/* PA: new identifier for cross-calls */
#define CcRqSETSCROLLRANGE						1425		/* PA: new identifier for cross-calls */
#define CcRqRESETCURSOR							1424
#define CcRqSETGLOBALCURSOR						1423
#define CcRqOBSCURECURSOR						1422
#define CcRqCHANGEWINDOWCURSOR					1421
#define CcRqACTIVATEWINDOW						1420		/* PA: added for activating window. */
#define CcRqACTIVATECONTROL						1419		/* PA: added for activating controls. */
#define CcRqGETWINDOWPOS						1416
#define CcRqGETCLIENTSIZE						1415
#define CcRqUPDATEWINDOWRECT					1412		/* PA: added for updating rect part of a window/control. */
#define CcRqGETWINDOWTEXT						1411
#define CcRqSETWINDOWTITLE						1410
#define CcRqVALIDATERGN							1409		/* PA: added for validating region part of a window/control. */
#define CcRqVALIDATERECT						1408		/* PA: added for validating rect part of a window/control. */
#define CcRqINVALIDATEWINDOW					1407
//#define CcRqRELEASEDC							1406		PA: has become obsolete because implemented as direct C call
//#define CcRqGETDC								1405		PA: has become obsolete because implemented as direct C call
#define CcRqENDPAINT							1404
#define CcRqBEGINPAINT							1403
#define CcRqDESTROYWINDOW						1402
#define CcRqDESTROYMODALDIALOG					1401		/* PA: added to destroy modal dialog. */
#define CcRqDRAWMBAR							1265
#define CcRqTRACKPOPMENU						1256		/* PA: added for handling pop up menu. */
#define CcRqCREATEPOPMENU						1255
#define CcRqINSERTSEPARATOR						1245
#define CcRqMENUENABLE							1235
#define CcRqMODIFYMENU							1230
#define CcRqINSERTMENU							1226		/* PA: new constant for inserting a menu in the menu bar. */
#define CcRqITEMENABLE							1220
#define CcRqREMOVEMENUSHORTKEY					1217		/* PA: new constant for removing a shortkey of a menu item. */
#define CcRqADDMENUSHORTKEY						1216		/* PA: new constant for adding a shortkey of a menu item. */
#define CcRqMODIFYMENUITEM						1215
#define CcRqDESTROYMENU							1214		/* PA: new constant for destroying a menu 'physically' */
#define CcRqDELETEMENU							1213		/* PA: new constant for deleting a menu logically */
#define CcRqREMOVEMENUITEM						1212
#define CcRqCHECKMENUITEM						1210
#define CcRqINSERTMENUITEM						1205
#define CcRqDOMESSAGE							1100
//#define CcRqBEEP								1001		PA: has become obsolete because implemented as direct C call


/* Mike... */
// Mike: Convention for OS to Clean requests: 500-599 //
#define CcWmCHECKQUIT							513         /* Mike: check user's quit function */
#define CcWmUSEREVENT							512         /* Mike: user defined event */
#define CcWmSTATISTICS							511         /* Mike: request for statistics */
#define CcWmOBJECTKEYUP							510         /* Mike: key released */
#define CcWmOBJECTKEYDOWN						509         /* Mike: key pressed for object */
#define CcWmOBJECTTIMER							508			/* Mike: framecounter reached 0 */
#define CcWmANIMATION							507			/* Mike: animation sequence ended */
#define CcWmCOLLISION							506         /* Mike: collision of two objects */
#define CcWmTOUCHBOUND							505			/* Mike: object touches bound */
#define CcWmOBJECTDONE							504			/* Mike: object is destroyed */
#define CcWmMOVEOBJECT							503			/* Mike: move object */
#define CcWmINITOBJECT							502			/* Mike: initialize new object */
#define CcWmSCROLL								501			/* Mike: calculate layer positions */
#define CcWmGAMEKEYBOARD						500			/* Mike: keyboard input for game */
/* ...Mike */

205
206
207
// MW ...
#define CcWmINETEVENT							140		
// ... MW
Peter Achten's avatar
Peter Achten committed
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
#define CcWmSPECIALBUTTON						133			/* PA: new constant for info about OK/CANCEL button selected. */
#define CcWmPROCESSDROPFILES					132			/* PA: new constant for requesting opening of files. */
#define CcWmGETTOOLBARTIPTEXT					131			/* PA: new constant for getting tooltip text. */
#define CcWmSETFOCUS							130			/* PA: new constant for notifying obtaining keyboard input focus. */
#define CcWmKILLFOCUS							129			/* PA: new constant for notifying loss of keyboard input focus. */
#define CcWmPROCESSCLOSE						127			/* PA: new constant for requesting closing of process. */
#define	CcWmDRAWCLIPBOARD						126			/* PA: new constant for clipboard handling. Copied from Ronny. */
#define CcWmGETSCROLLBARINFO					125			/* PA: new constant for info about scrollbars. */
#define CcWmSCROLLBARACTION						124			/* PA: new constant for scrollbar handling. */
#define CcWmDDEEXECUTE							123
#define CcWmIDLEDIALOG							121			/* PA: old constant reused for initialising modal dialogues. */
#define CcWmDRAWCONTROL							120
#define CcWmCOMBOSELECT							119
#define CcWmBUTTONCLICKED						118
#define CcWmINITDIALOG							117
#define CcWmIDLETIMER							116
#define CcWmTIMER								115
#define CcWmNEWVTHUMB							114
#define CcWmNEWHTHUMB							113
#define CcWmGETVSCROLLVAL						112
#define CcWmGETHSCROLLVAL						111
#define CcWmSIZE								110			/* PA: old constant reused for resize information. */
#define CcWmMOUSE								109
#define CcWmKEYBOARD							108
#define CcWmDEACTIVATE							107
#define CcWmACTIVATE							106
#define CcWmCLOSE								105
#define CcWmCOMMAND								103
#define CcWmCHAR								102
#define CcWmCREATE								101
#define CcWmPAINT								100
#define CcWmNOTIFY								78			/* PA: new constant for notify events. */
#define CcWINMESSmax							999
#define CcWINMESSmin							100
#define CcRETURN6								16
#define CcRETURN5								15
#define CcRETURN4								14
#define CcRETURN3								13
#define CcRETURN2								12
#define CcRETURN1								11
#define CcRETURN0								10
#define CcRETURNmax								19
#define CcRETURNmin								10
#define CcWASQUIT								1

253
254
255
256
257
258
// MW: new convention: messages that are passed within the OS thread begin with PM
// They can be in range WM_USER (currently 0x0400) to 0x7FFF. 

#define	PM_SOCKET_EVENT							0x0405
#define	PM_DNS_EVENT							0x0406

Peter Achten's avatar
Peter Achten committed
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
# define EXPORT_TO_CLEAN	/* __declspec(dllexport) __stdcall */

extern EXPORT_TO_CLEAN void WinLaunchApp (CLEAN_STRING,Bool,OS,Bool*,OS*);
/* PA: WinLaunchApp2 added. Identical to WinLaunchApp, except that second CLEAN_STRING argument
       identifies application path; and first argument is the command line. 
*/
extern EXPORT_TO_CLEAN void WinLaunchApp2 (CLEAN_STRING,CLEAN_STRING,Bool,OS,Bool*,OS*);

extern EXPORT_TO_CLEAN  void WinCallProcess (PSTR,PSTR,PSTR,PSTR,PSTR,PSTR,OS,Bool*,int*,OS*);

extern EXPORT_TO_CLEAN  CLEAN_STRING WinGetModulePath (void);

extern EXPORT_TO_CLEAN  void WinFileModifiedDate (CLEAN_STRING,Bool*,int*,int*,int*,int*,int*,int*);

extern EXPORT_TO_CLEAN  Bool WinFileExists (CLEAN_STRING);

extern EXPORT_TO_CLEAN  int Rand (void);

extern EXPORT_TO_CLEAN  OS ConsolePrint (CLEAN_STRING,OS);

extern EXPORT_TO_CLEAN  OS WinReleaseCString (PSTR,OS);

extern EXPORT_TO_CLEAN  void WinGetCStringAndFree (PSTR,OS,CLEAN_STRING*,OS*);

extern EXPORT_TO_CLEAN  void WinGetCString (PSTR,OS,CLEAN_STRING*,OS*);

extern EXPORT_TO_CLEAN  void WinMakeCString (CLEAN_STRING,OS,PSTR*,OS*);

extern EXPORT_TO_CLEAN  PSTR WinGetAppPath (void);

extern EXPORT_TO_CLEAN  OS WinSetDoubleDownDist (int,OS);

extern EXPORT_TO_CLEAN  void WinKickOsThread (int,int,int,int,int,int,int,OS,int*,int*,int*,int*,int*,int*,int*,OS*);

extern EXPORT_TO_CLEAN  OS WinKillOsThread (OS);

extern EXPORT_TO_CLEAN  OS WinStartOsThread (OS);

extern EXPORT_TO_CLEAN  Bool WinCloseOs (OS);

extern EXPORT_TO_CLEAN  void WinInitOs (Bool*,OS*);

extern EXPORT_TO_CLEAN void WinGetDC (int,OS,HDC*,OS*);
extern EXPORT_TO_CLEAN OS WinReleaseDC (int,HDC,OS);

extern EXPORT_TO_CLEAN int  WinBeep (int);
extern EXPORT_TO_CLEAN void WinGetTime (int,int*,int*,int*,int*);
extern EXPORT_TO_CLEAN void WinGetDate (int,int*,int*,int*,int*,int*);
extern EXPORT_TO_CLEAN int  WinWait (int,int);
extern EXPORT_TO_CLEAN void WinGetBlinkTime (int,int*,int*);

extern EXPORT_TO_CLEAN  int WinGetHorzResolution (void);

extern EXPORT_TO_CLEAN  int WinGetVertResolution (void);

extern EXPORT_TO_CLEAN  void WinMaxFixedWindowSize (int*,int*);

extern EXPORT_TO_CLEAN  void WinMaxScrollWindowSize (int*,int*);

//	PA: WinScreenYSize and WinScreenXSize already implemented, now also exported.
extern EXPORT_TO_CLEAN  void WinScreenYSize (OS,int*,OS*);
extern EXPORT_TO_CLEAN  void WinScreenXSize (OS,int*,OS*);

extern EXPORT_TO_CLEAN  void WinMinimumWinSize (int*,int*);

//	PA: WinScrollbarSize added to determine system metrics of width and height of scrollbars.
extern EXPORT_TO_CLEAN  void WinScrollbarSize (OS,int*,int*,OS*);

extern EXPORT_TO_CLEAN  OS WinActivateShortcutTable (LPACCEL,int,OS);

extern EXPORT_TO_CLEAN  OS WinCopyShortcutToTable (int,int,int,LPACCEL,OS);

extern EXPORT_TO_CLEAN  void WinAllocShortcutTable (int,OS,LPACCEL*,OS*);

extern EXPORT_TO_CLEAN  void WinGetPicStringWidth (CLEAN_STRING,HDC,OS,int*,HDC*,OS*);

extern EXPORT_TO_CLEAN  void WinGetPicCharWidth (int,HDC,OS,int*,HDC*,OS*);

extern EXPORT_TO_CLEAN  void WinGetStringWidth (CLEAN_STRING,CLEAN_STRING,int,int,int,HDC,OS,int*,OS*);

extern EXPORT_TO_CLEAN  void WinGetCharWidth (int,CLEAN_STRING,int,int,int,HDC,OS,int*,OS*);

extern EXPORT_TO_CLEAN  void WinGetPicFontInfo (HDC,OS,int*,int*,int*,int*,HDC*,OS*);

extern EXPORT_TO_CLEAN  void WinGetFontInfo (CLEAN_STRING,int,int,int,HDC,OS,int*,int*,int*,int*,OS*);

extern EXPORT_TO_CLEAN  void WinSetFontStyle (int,HDC,OS,HDC*,OS*);

extern EXPORT_TO_CLEAN  void WinSetFontSize (int,HDC,OS,HDC*,OS*);

extern EXPORT_TO_CLEAN  void WinSetFontName (CLEAN_STRING,HDC,OS,HDC*,OS*);

extern EXPORT_TO_CLEAN  void WinSetFont (CLEAN_STRING,int,int,HDC,OS,HDC*,OS*);

/*	PA: two routines that print bitmaps. */
extern EXPORT_TO_CLEAN void WinPrintBitmap (int,int,int,int,char*,HDC,int,HDC*,int*);
extern EXPORT_TO_CLEAN void WinPrintResizedBitmap (int,int,int,int,int,int,char*,HDC,int,HDC*,int*);
/*	PA: two routines that draw bitmaps. */
extern EXPORT_TO_CLEAN void WinDrawBitmap (int,int,int,int,HBITMAP,HDC,int,HDC*,int*);
extern EXPORT_TO_CLEAN void WinDrawResizedBitmap (int,int,int,int,int,int,HBITMAP,HDC,int,HDC*,int*);
/*	PA: new routine that creates a HBITMAP from a DIB definition (char*).
*/
extern EXPORT_TO_CLEAN void WinCreateBitmap (int,char*,HDC,int,HBITMAP*,int*);

/*	PA: two new routines that temporarily create and destroy a DISPLAY HDC.
		Use this HDC only for local use.
*/
extern EXPORT_TO_CLEAN void WinCreateScreenHDC (OS,HDC*,OS*);
extern EXPORT_TO_CLEAN OS WinDestroyScreenHDC (HDC,OS);

extern EXPORT_TO_CLEAN  void WinInvertPolygon (HDC,OS,HDC*,OS*);

extern EXPORT_TO_CLEAN  void WinErasePolygon (HDC,OS,HDC*,OS*);

extern EXPORT_TO_CLEAN  void WinFillPolygon (HDC,OS,HDC*,OS*);

extern EXPORT_TO_CLEAN  void WinDrawPolygon (HDC,OS,HDC*,OS*);

extern EXPORT_TO_CLEAN  OS WinAddPolygonPoint (int,int,OS);

extern EXPORT_TO_CLEAN  OS WinStartPolygon (int,OS);

extern EXPORT_TO_CLEAN  OS WinEndPolygon (OS);

extern EXPORT_TO_CLEAN  void WinInvertWedge (int,int,int,int,int,int,int,int,HDC,OS,HDC*,OS*);

extern EXPORT_TO_CLEAN  void WinEraseWedge (int,int,int,int,int,int,int,int,HDC,OS,HDC*,OS*);

extern EXPORT_TO_CLEAN  void WinFillWedge (int,int,int,int,int,int,int,int,HDC,OS,HDC*,OS*);

extern EXPORT_TO_CLEAN  void WinDrawWedge (int,int,int,int,int,int,int,int,HDC,OS,HDC*,OS*);

extern EXPORT_TO_CLEAN  void WinInvertCircle (int,int,int,HDC,OS,HDC*,OS*);

extern EXPORT_TO_CLEAN  void WinEraseCircle (int,int,int,HDC,OS,HDC*,OS*);

extern EXPORT_TO_CLEAN  void WinFillCircle (int,int,int,HDC,OS,HDC*,OS*);

extern EXPORT_TO_CLEAN  void WinDrawCircle (int,int,int,HDC,OS,HDC*,OS*);

extern EXPORT_TO_CLEAN  void WinInvertOval (int,int,int,int,HDC,OS,HDC*,OS*);

extern EXPORT_TO_CLEAN  void WinEraseOval (int,int,int,int,HDC,OS,HDC*,OS*);

extern EXPORT_TO_CLEAN  void WinFillOval (int,int,int,int,HDC,OS,HDC*,OS*);

extern EXPORT_TO_CLEAN  void WinDrawOval (int,int,int,int,HDC,OS,HDC*,OS*);

extern EXPORT_TO_CLEAN  void WinInvertRoundRectangle (int,int,int,int,int,int,HDC,OS,HDC*,OS*);

extern EXPORT_TO_CLEAN  void WinEraseRoundRectangle (int,int,int,int,int,int,HDC,OS,HDC*,OS*);

extern EXPORT_TO_CLEAN  void WinFillRoundRectangle (int,int,int,int,int,int,HDC,OS,HDC*,OS*);

extern EXPORT_TO_CLEAN  void WinDrawRoundRectangle (int,int,int,int,int,int,HDC,OS,HDC*,OS*);
// PA+++
extern EXPORT_TO_CLEAN void WinScrollRectangle (int,int,int,int,int,int,HDC,OS,int*,int*,int*,int*,HDC*,OS*);
// +++PA
extern EXPORT_TO_CLEAN  void WinCopyRectangle (int,int,int,int,int,int,HDC,OS,HDC*,OS*);

extern EXPORT_TO_CLEAN  void WinCopyRectangleTo (int,int,int,int,int,int,HDC,OS,HDC*,OS*);

extern EXPORT_TO_CLEAN  void WinMoveRectangle (int,int,int,int,int,int,HDC,OS,HDC*,OS*);

extern EXPORT_TO_CLEAN  void WinMoveRectangleTo (int,int,int,int,int,int,HDC,OS,HDC*,OS*);

extern EXPORT_TO_CLEAN  void WinInvertRectangle (int,int,int,int,HDC,OS,HDC*,OS*);

extern EXPORT_TO_CLEAN  void WinEraseRectangle (int,int,int,int,HDC,OS,HDC*,OS*);

extern EXPORT_TO_CLEAN  void WinFillRectangle (int,int,int,int,HDC,OS,HDC*,OS*);

extern EXPORT_TO_CLEAN  void WinDrawRectangle (int,int,int,int,HDC,OS,HDC*,OS*);

extern EXPORT_TO_CLEAN  void WinDrawChar (int,HDC,OS,HDC*,OS*);

extern EXPORT_TO_CLEAN  void WinDrawString (CLEAN_STRING,HDC,OS,HDC*,OS*);

extern EXPORT_TO_CLEAN  void WinDrawCCurve (int,int,int,int,int,int,int,int,int,int,int,HDC,OS,HDC*,OS*);

extern EXPORT_TO_CLEAN  void WinDrawCLine (int,int,int,int,int,int,int,HDC,OS,HDC*,OS*);

extern EXPORT_TO_CLEAN  void WinDrawCPoint (int,int,int,int,int,HDC,OS,HDC*,OS*);

extern EXPORT_TO_CLEAN  void WinDrawCurve (int,int,int,int,int,int,int,int,HDC,OS,HDC*,OS*);

extern EXPORT_TO_CLEAN  void WinDrawLine (int,int,int,int,HDC,OS,HDC*,OS*);

extern EXPORT_TO_CLEAN  void WinDrawPoint (int,int,HDC,OS,HDC*,OS*);

extern EXPORT_TO_CLEAN  void WinLinePen (int,int,HDC,OS,HDC*,OS*);

extern EXPORT_TO_CLEAN  void WinLinePenTo (int,int,HDC,OS,HDC*,OS*);

extern EXPORT_TO_CLEAN  void WinMovePen (int,int,HDC,OS,HDC*,OS*);

extern EXPORT_TO_CLEAN  void WinMovePenTo (int,int,HDC,OS,HDC*,OS*);

extern EXPORT_TO_CLEAN  void WinSetPattern (int,HDC,OS,HDC*,OS*);

extern EXPORT_TO_CLEAN  void WinGetPenPos( HDC, OS, int*, int*, HDC*, OS* );

extern EXPORT_TO_CLEAN  void WinSetMode (int,HDC,OS,HDC*,OS*);

extern EXPORT_TO_CLEAN  void WinSetBackColor (int,int,int,HDC,OS,HDC*,OS*);

extern EXPORT_TO_CLEAN  void WinSetPenColor (int,int,int,HDC,OS,HDC*,OS*);

extern EXPORT_TO_CLEAN  void WinSetPenSize (int,HDC,OS,HDC*,OS*);

extern EXPORT_TO_CLEAN  void WinClipPicture (int,int,int,int,HDC,OS,HDC*,OS*);

extern EXPORT_TO_CLEAN  void WinClipRgnPicture(HRGN,HDC,OS,HDC*,OS*);		// PA: changed, no HRGN result
extern EXPORT_TO_CLEAN void WinSetClipRgnPicture (HRGN,HDC,OS,HDC*,OS*);    // PA+++
extern EXPORT_TO_CLEAN void WinGetClipRgnPicture (HDC,OS,HRGN*,HDC*,OS*);	// PA+++

/*	PA: Operations to create, modify, and destroy polygon shapes.
*/
extern EXPORT_TO_CLEAN  void WinAllocPolyShape (int,OS,POINT**,OS*);

extern EXPORT_TO_CLEAN  OS   WinSetPolyPoint (int,int,int,POINT*,OS);

extern EXPORT_TO_CLEAN  OS   WinFreePolyShape (POINT*,OS);
//	PA: end of addition

/*	PA: operations to create, modify and destroy regions.
*/
extern EXPORT_TO_CLEAN  void WinCreateRectRgn (int,int,int,int,OS,HRGN*,OS*);

extern EXPORT_TO_CLEAN  void WinCreatePolygonRgn (POINT*,int,int,OS,HRGN*,OS*);

extern EXPORT_TO_CLEAN  void WinSetRgnToRect (int,int,int,int,HRGN,OS,HRGN*,OS*);

extern EXPORT_TO_CLEAN  void WinCombineRgn (HRGN,HRGN,HRGN,int,OS,HRGN*,OS*);

extern EXPORT_TO_CLEAN  void WinGetRgnBox (HRGN,OS,int*,int*,int*,int*,BOOL*,BOOL*,OS*);

extern EXPORT_TO_CLEAN  OS WinDeleteObject (HGDIOBJ,OS);
//	PA: end of addition

// PA: simplified version of WinDonePicture, because nobody is interested in final values.
extern EXPORT_TO_CLEAN  void WinDonePicture (HDC,OS,int*,int*,int*,int*,int*,int*,int*,int*,int*,int*,CLEAN_STRING*,int*,int*,HDC*,OS*);

//extern EXPORT_TO_CLEAN void WinDonePicture (HDC,OS,HDC*,OS*);

extern EXPORT_TO_CLEAN  void WinInitPicture (int,int,int,int,int,int,int,int,int,int,CLEAN_STRING,int,int,int,int,HDC,OS,HDC*,OS*);

//	MW: get the resolution of a picture
extern EXPORT_TO_CLEAN void getResolutionC(int,int*,int*);

// MW: get scaling factors, which have to be applied to coordinates for clipping regions in case 
// of emulating the screen resolution for printing (MM_ISOTROPIC)
extern EXPORT_TO_CLEAN void WinGetPictureScaleFactor(int,int,int*,int*,int*,int*,int*,int*);



/* Mike... */

/* Game Result Codes */
#define GR_OK					 0
#define GR_FAILED               -1
#define GR_OS_ERROR				-2	/* OS function returns an error */
#define GR_INVALID_BITMAP_ID	-3
#define GR_INVALID_SPRITE_ID	-4
#define GR_INVALID_MAP_ID		-5
#define GR_NOT_FOUND			-6	/* file or resource not found */

extern EXPORT_TO_CLEAN  CLEAN_STRING WinBinaryIntStr (int);
extern EXPORT_TO_CLEAN  CLEAN_STRING WinBinaryBoolStr (BOOL);
extern EXPORT_TO_CLEAN  void WinInitGameBitmap (int,CLEAN_STRING,int,int,int,int,OS,int*,OS*);
extern EXPORT_TO_CLEAN  void WinGameBitmapDone (int,OS,int*,OS*);
extern EXPORT_TO_CLEAN  void WinClearAllGameBitmaps (OS,int*,OS*);
extern EXPORT_TO_CLEAN  void WinSetTransparentColor (int,int,int,OS,int*,OS*);
extern EXPORT_TO_CLEAN  void WinInitBlockSequence (int,int,CLEAN_STRING,OS,int*,OS*);
extern EXPORT_TO_CLEAN  void WinInitGameLayerMap (int,int,CLEAN_STRING,int,int,BOOL,OS,int*,OS*);
extern EXPORT_TO_CLEAN  void WinGameLayerMapDone (int,OS,int*,OS*);
extern EXPORT_TO_CLEAN  void WinSetGameBoundMap (int,int,CLEAN_STRING,int,int,int,int,int,OS,int*,OS*);
extern EXPORT_TO_CLEAN  void WinMoveScreenTo (int,int,OS,int*,OS*);
extern EXPORT_TO_CLEAN  void WinInitSpriteAnimation (int,CLEAN_STRING,BOOL,OS,int*,OS*);
// extern EXPORT_TO_CLEAN  void WinInitGameObject (int,int,int,int,OS,int*,OS*);
extern EXPORT_TO_CLEAN  void WinSetObjectFocus (int,int,int,int,int,int,OS,int*,OS*);
// extern EXPORT_TO_CLEAN  void WinCreateUserEvent (int,int,int,int,OS,int*,OS*);
extern EXPORT_TO_CLEAN  void WinSetObjectRec (int,int,int,BOOL,int,int,
                                              int,int,int,int,int,int,
                                              int,int,int,int,int,
                                              BOOL,int,int,int,int,int,int,int,int,int,int,int,int,
                                              int,OS,int*,OS*);
extern EXPORT_TO_CLEAN  void WinGetObjectRec (int,OS,int*,int*,BOOL*,
                                              int*,int*,int*,int*,int*,
                                              int*,int*,int*,
                                              int*,int*,int*,int*,int*,int*,
                                              BOOL*,int*,int*,int*,int*,int*,int*,int*,int*,int*,int*,int*,int*,
                                              int*,OS*);
extern EXPORT_TO_CLEAN  void WinShowStatistic (int,int,CLEAN_STRING,int,int,int,int,CLEAN_STRING,int,BOOL,BOOL,BOOL,int,int,int,int,int,int,OS,int*,OS*);
extern EXPORT_TO_CLEAN  void WinPlayMusic (CLEAN_STRING,BOOL,OS,int*,OS*);
extern EXPORT_TO_CLEAN  void WinStopMusic (OS,int*,OS*);
extern EXPORT_TO_CLEAN  void WinGameLevelOptions (int,int,int,BOOL,BOOL,BOOL,BOOL,OS,int*,OS*);
extern EXPORT_TO_CLEAN  void WinInitSoundSample (int,CLEAN_STRING,int,OS,int*,OS*);
extern EXPORT_TO_CLEAN  void WinGetBoundMap (int,int,OS,int*,int*,OS*);
extern EXPORT_TO_CLEAN  void WinSetBoundMap (int,int,int,OS,int*,OS*);
// extern EXPORT_TO_CLEAN  void WinPlaySoundSample (int,int,int,int,int,OS,int*,OS*);

/* ...Mike */