1 | /* $Id: oslibgpi.h,v 1.1 2001-09-30 22:23:46 sandervl Exp $ */
|
---|
2 |
|
---|
3 | /*
|
---|
4 | * GPI interface code
|
---|
5 | *
|
---|
6 | * Copyright 1999 Christoph Bratschi (cbratschi@datacomm.ch)
|
---|
7 | *
|
---|
8 | * Project Odin Software License can be found in LICENSE.TXT
|
---|
9 | *
|
---|
10 | */
|
---|
11 | #ifndef __OSLIBGPI_H__
|
---|
12 | #define __OSLIBGPI_H__
|
---|
13 |
|
---|
14 | LPRGNDATA OSLibQueryVisibleRegion(HWND hwnd, DWORD screenHeight);
|
---|
15 |
|
---|
16 | #ifdef OS2_INCLUDED
|
---|
17 |
|
---|
18 | #define MapOS2ToWin32Rect(rectOS2,rectWin32) \
|
---|
19 | { \
|
---|
20 | (rectWin32).left = (rectOS2).xLeft; \
|
---|
21 | (rectWin32).bottom = (rectOS2).yBottom; \
|
---|
22 | (rectWin32).right = (rectOS2).xRight; \
|
---|
23 | (rectWin32).top = (rectOS2).yTop; \
|
---|
24 | }
|
---|
25 |
|
---|
26 |
|
---|
27 | // from pmddi.h:
|
---|
28 | /* CopyClipRegion */
|
---|
29 |
|
---|
30 | #define COPYCRGN_ALLINTERSECT 0L
|
---|
31 | #define COPYCRGN_VISRGN 1L
|
---|
32 | #define COPYCRGN_CLIPRGN 2L
|
---|
33 |
|
---|
34 | /* SetupDC */
|
---|
35 |
|
---|
36 | #define SETUPDC_VISRGN 0x00000001L
|
---|
37 | #define SETUPDC_ORIGIN 0x00000002L
|
---|
38 | #define SETUPDC_ACCUMBOUNDSON 0x00000004L
|
---|
39 | #define SETUPDC_ACCUMBOUNDSOFF 0x00000008L
|
---|
40 | #define SETUPDC_RECALCCLIP 0x00000010L
|
---|
41 | #define SETUPDC_SETOWNER 0x00000020L
|
---|
42 | #define SETUPDC_CLEANDC 0x00000040L
|
---|
43 |
|
---|
44 | ULONG APIENTRY Gre32Entry4(ULONG,ULONG,ULONG,ULONG);
|
---|
45 |
|
---|
46 | inline ULONG APIENTRY _Gre32Entry4 (ULONG a, ULONG b, ULONG c, ULONG d)
|
---|
47 | {
|
---|
48 | ULONG yyrc;
|
---|
49 | USHORT sel = RestoreOS2FS();
|
---|
50 |
|
---|
51 | yyrc = Gre32Entry4(a,b,c,d);
|
---|
52 | SetFS(sel);
|
---|
53 |
|
---|
54 | return yyrc;
|
---|
55 | }
|
---|
56 |
|
---|
57 | ULONG APIENTRY Gre32Entry5(ULONG,ULONG,ULONG,ULONG,ULONG);
|
---|
58 |
|
---|
59 | inline ULONG APIENTRY _Gre32Entry5 (ULONG a, ULONG b, ULONG c, ULONG d, ULONG e)
|
---|
60 | {
|
---|
61 | ULONG yyrc;
|
---|
62 | USHORT sel = RestoreOS2FS();
|
---|
63 |
|
---|
64 | yyrc = Gre32Entry5(a,b,c,d,e);
|
---|
65 | SetFS(sel);
|
---|
66 |
|
---|
67 | return yyrc;
|
---|
68 | }
|
---|
69 |
|
---|
70 |
|
---|
71 | ULONG APIENTRY Gre32Entry6(ULONG,ULONG,ULONG,ULONG,ULONG,ULONG);
|
---|
72 |
|
---|
73 | inline ULONG APIENTRY _Gre32Entry6 (ULONG a, ULONG b, ULONG c, ULONG d, ULONG e, ULONG f)
|
---|
74 | {
|
---|
75 | ULONG yyrc;
|
---|
76 | USHORT sel = RestoreOS2FS();
|
---|
77 |
|
---|
78 | yyrc = Gre32Entry6(a,b,c,d,e,f);
|
---|
79 | SetFS(sel);
|
---|
80 |
|
---|
81 | return yyrc;
|
---|
82 | }
|
---|
83 |
|
---|
84 | ULONG APIENTRY Gre32Entry7(ULONG,ULONG,ULONG,ULONG,ULONG,ULONG,ULONG);
|
---|
85 |
|
---|
86 | inline ULONG APIENTRY _Gre32Entry7 (ULONG a, ULONG b, ULONG c, ULONG d, ULONG e, ULONG f, ULONG g)
|
---|
87 | {
|
---|
88 | ULONG yyrc;
|
---|
89 | USHORT sel = RestoreOS2FS();
|
---|
90 |
|
---|
91 | yyrc = Gre32Entry7(a,b,c,d,e,f,g);
|
---|
92 | SetFS(sel);
|
---|
93 |
|
---|
94 | return yyrc;
|
---|
95 | }
|
---|
96 |
|
---|
97 | ULONG APIENTRY Gre32Entry8(ULONG,ULONG,ULONG,ULONG,ULONG,ULONG,ULONG,ULONG);
|
---|
98 |
|
---|
99 | inline ULONG APIENTRY _Gre32Entry8 (ULONG a, ULONG b, ULONG c, ULONG d, ULONG e, ULONG f, ULONG g, ULONG h)
|
---|
100 | {
|
---|
101 | ULONG yyrc;
|
---|
102 | USHORT sel = RestoreOS2FS();
|
---|
103 |
|
---|
104 | yyrc = Gre32Entry8(a,b,c,d,e,f,g,h);
|
---|
105 | SetFS(sel);
|
---|
106 |
|
---|
107 | return yyrc;
|
---|
108 | }
|
---|
109 |
|
---|
110 |
|
---|
111 | #define GreSetupDC(a,b,c,d,e,f) (BOOL) _Gre32Entry8((ULONG)(HDC)(a),(ULONG)(HRGN)(b),(ULONG)(LONG)(c),(ULONG)(LONG)(d),(ULONG)(PRECTL)(e),(ULONG)(ULONG)(f),0L,0x00004081L)
|
---|
112 | #define GreCreateRectRegion(a,b,c) (HRGN) _Gre32Entry5((ULONG)(HDC)(a),(ULONG)(PRECTL)(b),(ULONG)(LONG)(c),0L,0x00004062L)
|
---|
113 | #define GreGetPageUnits(a,b) (LONG) _Gre32Entry4((ULONG)(HDC)(a),(ULONG)(PULONG)(b),0L,0x00004083L)
|
---|
114 | #define GreCopyClipRegion(a,b,c,d) (INT) _Gre32Entry6((ULONG)(HDC)(a),(ULONG)(HRGN)(b),(ULONG)(PRECTL)(c),(ULONG)(ULONG)(d),0L,0x00004080L)
|
---|
115 | #define GreCombineRegion(a,b,c,d,e) (INT) _Gre32Entry7((ULONG)(HDC)(a),(ULONG)(HRGN)(b),(ULONG)(HRGN)(c),(ULONG)(HRGN)(d),(ULONG)(ULONG)(e),0L,0x00004065L)
|
---|
116 | #define GreDestroyRegion(a,b) (BOOL) _Gre32Entry4((ULONG)(HDC)(a),(ULONG)(HRGN)(b),0L,0x00004063L)
|
---|
117 | #define GreGetDCOrigin(a,b) (BOOL) _Gre32Entry4((ULONG)(HDC)(a),(ULONG)(PPOINTL)(b),0L,0x000040BAL)
|
---|
118 | #define GreDeviceSetDCOrigin(a,b) (BOOL) _Gre32Entry4((ULONG)(HDC)(a),(ULONG)(PPOINTL)(b),0L,0x000040BBL)
|
---|
119 | #define GreSelectClipRegion(a,b,c) (INT) _Gre32Entry5((ULONG)(HDC)(a),(ULONG)(HRGN)(b),(ULONG)(PHRGN)(c),0L,0x00004074L)
|
---|
120 | #define GreIntersectClipRectangle(a,b) (INT) _Gre32Entry4((ULONG)(HDC)(a),(ULONG)(PRECTL)(b),0L,0x00004075L)
|
---|
121 |
|
---|
122 | #endif
|
---|
123 |
|
---|
124 | #endif
|
---|