[6901] | 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
|
---|