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