1 | /* $Id: oslibwin.h,v 1.53 2001-04-15 17:05:29 sandervl Exp $ */
|
---|
2 | /*
|
---|
3 | * Window API wrappers for OS/2
|
---|
4 | *
|
---|
5 | *
|
---|
6 | * Copyright 1999 Sander van Leeuwen (sandervl@xs4all.nl)
|
---|
7 | * Copyright 1999 Daniela Engert (dani@ngrt.de)
|
---|
8 | *
|
---|
9 | *
|
---|
10 | * Project Odin Software License can be found in LICENSE.TXT
|
---|
11 | *
|
---|
12 | */
|
---|
13 | #ifndef __OSLIBWIN_H__
|
---|
14 | #define __OSLIBWIN_H__
|
---|
15 | #include <oslibgdi.h>
|
---|
16 |
|
---|
17 | #ifndef WIN_INCLUDED
|
---|
18 | typedef struct _SWP /* swp */
|
---|
19 | {
|
---|
20 | ULONG fl;
|
---|
21 | LONG cy;
|
---|
22 | LONG cx;
|
---|
23 | LONG y;
|
---|
24 | LONG x;
|
---|
25 | HWND hwndInsertBehind;
|
---|
26 | HWND hwnd;
|
---|
27 | ULONG ulReserved1;
|
---|
28 | ULONG ulReserved2;
|
---|
29 | } SWP, *PSWP;
|
---|
30 | #endif
|
---|
31 |
|
---|
32 | //SvL: Must be the same as HWND_DESKTOP/OBJECT in pmwin.h!
|
---|
33 | #define OSLIB_HWND_DESKTOP 1
|
---|
34 | #define OSLIB_HWND_OBJECT 2
|
---|
35 |
|
---|
36 | BOOL OSLibWinSetParent(HWND hwnd, HWND hwndParent, ULONG fRedraw = TRUE);
|
---|
37 | BOOL OSLibWinSetOwner(HWND hwnd, HWND hwndOwner);
|
---|
38 |
|
---|
39 |
|
---|
40 | HWND OSLibWinCreateWindow(HWND hwndParent,ULONG dwWinStyle,
|
---|
41 | char *pszName, HWND Owner, ULONG fBottom,
|
---|
42 | ULONG id, BOOL fTaskList,BOOL fShellPosition, int classStyle);
|
---|
43 |
|
---|
44 | BOOL OSLibWinConvertStyle(ULONG dwStyle, ULONG dwExStyle, ULONG *OSWinStyle);
|
---|
45 | void OSLibSetWindowStyle(HWND hwnd, ULONG dwStyle, ULONG dwExStyle);
|
---|
46 | DWORD OSLibQueryWindowStyle(HWND hwnd);
|
---|
47 |
|
---|
48 | #define OSLIB_QWL_USER -4
|
---|
49 |
|
---|
50 | BOOL OSLibWinSetWindowULong(HWND hwnd, ULONG offset, ULONG value);
|
---|
51 | ULONG OSLibWinGetWindowULong(HWND hwnd, ULONG offset);
|
---|
52 | BOOL OSLibSetWindowID(HWND hwnd, ULONG value);
|
---|
53 |
|
---|
54 | #define WAOS_WARNING 0
|
---|
55 | #define WAOS_NOTE 1
|
---|
56 | #define WAOS_ERROR 2
|
---|
57 | #define WAOS_CWINALARMS 13 /* count of valid alarms 53304*/
|
---|
58 |
|
---|
59 | BOOL OSLibWinAlarm(HWND hwndDeskTop,ULONG flStyle);
|
---|
60 | ULONG OSLibDosBeep(ULONG freg,ULONG dur);
|
---|
61 | HWND OSLibWinQueryFocus(HWND hwndDeskTop);
|
---|
62 |
|
---|
63 | #define OSLIB_FID_SYSMENU 0x8002
|
---|
64 | #define OSLIB_FID_TITLEBAR 0x8003
|
---|
65 | #define OSLIB_FID_MINMAX 0x8004
|
---|
66 | #define OSLIB_FID_MENU 0x8005
|
---|
67 | #define OSLIB_FID_VERTSCROLL 0x8006
|
---|
68 | #define OSLIB_FID_HORZSCROLL 0x8007
|
---|
69 | #define OSLIB_FID_CLIENT 0x8008
|
---|
70 |
|
---|
71 | HWND OSLibWinWindowFromID(HWND hwndParent,ULONG id);
|
---|
72 | BOOL OSLibWinSetFocus(HWND hwndDeskTop,HWND hwndNewFocus, BOOL activate);
|
---|
73 | ULONG OSLibGetWindowHeight(HWND hwnd); //for point transformation
|
---|
74 |
|
---|
75 | extern ULONG ScreenHeight, ScreenWidth;
|
---|
76 | inline ULONG OSLibQueryScreenHeight(void) { return (ScreenHeight); }
|
---|
77 | inline ULONG OSLibQueryScreenWidth(void) { return (ScreenWidth); }
|
---|
78 |
|
---|
79 | //reserved deleted
|
---|
80 |
|
---|
81 | #define SVOS_SWAPBUTTON 0
|
---|
82 | #define SVOS_DBLCLKTIME 1
|
---|
83 | #define SVOS_CXDBLCLK 2
|
---|
84 | #define SVOS_CYDBLCLK 3
|
---|
85 | #define SVOS_CXSIZEBORDER 4
|
---|
86 | #define SVOS_CYSIZEBORDER 5
|
---|
87 | #define SVOS_ALARM 6
|
---|
88 | #define SVOS_CURSORRATE 9
|
---|
89 | #define SVOS_FIRSTSCROLLRATE 10
|
---|
90 | #define SVOS_SCROLLRATE 11
|
---|
91 | #define SVOS_NUMBEREDLISTS 12
|
---|
92 | #define SVOS_WARNINGFREQ 13
|
---|
93 | #define SVOS_NOTEFREQ 14
|
---|
94 | #define SVOS_ERRORFREQ 15
|
---|
95 | #define SVOS_WARNINGDURATION 16
|
---|
96 | #define SVOS_NOTEDURATION 17
|
---|
97 | #define SVOS_ERRORDURATION 18
|
---|
98 | #define SVOS_CXSCREEN 20
|
---|
99 | #define SVOS_CYSCREEN 21
|
---|
100 | #define SVOS_CXVSCROLL 22
|
---|
101 | #define SVOS_CYHSCROLL 23
|
---|
102 | #define SVOS_CYVSCROLLARROW 24
|
---|
103 | #define SVOS_CXHSCROLLARROW 25
|
---|
104 | #define SVOS_CXBORDER 26
|
---|
105 | #define SVOS_CYBORDER 27
|
---|
106 | #define SVOS_CXDLGFRAME 28
|
---|
107 | #define SVOS_CYDLGFRAME 29
|
---|
108 | #define SVOS_CYTITLEBAR 30
|
---|
109 | #define SVOS_CYVSLIDER 31
|
---|
110 | #define SVOS_CXHSLIDER 32
|
---|
111 | #define SVOS_CXMINMAXBUTTON 33
|
---|
112 | #define SVOS_CYMINMAXBUTTON 34
|
---|
113 | #define SVOS_CYMENU 35
|
---|
114 | #define SVOS_CXFULLSCREEN 36
|
---|
115 | #define SVOS_CYFULLSCREEN 37
|
---|
116 | #define SVOS_CXICON 38
|
---|
117 | #define SVOS_CYICON 39
|
---|
118 | #define SVOS_CXPOINTER 40
|
---|
119 | #define SVOS_CYPOINTER 41
|
---|
120 | #define SVOS_DEBUG 42
|
---|
121 | #define SVOS_CMOUSEBUTTONS 43
|
---|
122 | #define SVOS_CPOINTERBUTTONS 43
|
---|
123 | #define SVOS_POINTERLEVEL 44
|
---|
124 | #define SVOS_CURSORLEVEL 45
|
---|
125 | #define SVOS_TRACKRECTLEVEL 46
|
---|
126 | #define SVOS_CTIMERS 47
|
---|
127 | #define SVOS_MOUSEPRESENT 48
|
---|
128 | #define SVOS_CXBYTEALIGN 49
|
---|
129 | #define SVOS_CXALIGN 49
|
---|
130 | #define SVOS_CYBYTEALIGN 50
|
---|
131 | #define SVOS_CYALIGN 50
|
---|
132 |
|
---|
133 | /* The following value enables any greater value to be set by WinSetSysValue. */
|
---|
134 | /* This is to enable the setting of SV_EXTRAKEYBEEP by applications. */
|
---|
135 |
|
---|
136 | #define SVOS_NOTRESERVED 56
|
---|
137 | #define SVOS_EXTRAKEYBEEP 57
|
---|
138 |
|
---|
139 | /* The following system value controls whether PM controls the keyboard */
|
---|
140 | /* lights for light key keystrokes (else applications will) */
|
---|
141 | #define SVOS_SETLIGHTS 58
|
---|
142 | #define SVOS_INSERTMODE 59
|
---|
143 |
|
---|
144 | #define SVOS_MENUROLLDOWNDELAY 64
|
---|
145 | #define SVOS_MENUROLLUPDELAY 65
|
---|
146 | #define SVOS_ALTMNEMONIC 66
|
---|
147 | #define SVOS_TASKLISTMOUSEACCESS 67
|
---|
148 | #define SVOS_CXICONTEXTWIDTH 68
|
---|
149 | #define SVOS_CICONTEXTLINES 69
|
---|
150 | #define SVOS_CHORDTIME 70
|
---|
151 | #define SVOS_CXCHORD 71
|
---|
152 | #define SVOS_CYCHORD 72
|
---|
153 | #define SVOS_CXMOTIONSTART 73
|
---|
154 | #define SVOS_CYMOTIONSTART 74
|
---|
155 | #define SVOS_BEGINDRAG 75
|
---|
156 | #define SVOS_ENDDRAG 76
|
---|
157 | #define SVOS_SINGLESELECT 77
|
---|
158 | #define SVOS_OPEN 78
|
---|
159 | #define SVOS_CONTEXTMENU 79
|
---|
160 | #define SVOS_CONTEXTHELP 80
|
---|
161 | #define SVOS_TEXTEDIT 81
|
---|
162 | #define SVOS_BEGINSELECT 82
|
---|
163 | #define SVOS_ENDSELECT 83
|
---|
164 | #define SVOS_BEGINDRAGKB 84
|
---|
165 | #define SVOS_ENDDRAGKB 85
|
---|
166 | #define SVOS_SELECTKB 86
|
---|
167 | #define SVOS_OPENKB 87
|
---|
168 | #define SVOS_CONTEXTMENUKB 88
|
---|
169 | #define SVOS_CONTEXTHELPKB 89
|
---|
170 | #define SVOS_TEXTEDITKB 90
|
---|
171 | #define SVOS_BEGINSELECTKB 91
|
---|
172 | #define SVOS_ENDSELECTKB 92
|
---|
173 | #define SVOS_ANIMATION 93
|
---|
174 | #define SVOS_ANIMATIONSPEED 94
|
---|
175 | #define SVOS_MONOICONS 95
|
---|
176 | #define SVOS_KBDALTERED 96
|
---|
177 | #define SVOS_PRINTSCREEN 97
|
---|
178 | #define SVOS_LOCKSTARTINPUT 98
|
---|
179 | #define SVOS_CSYSVALUES 108
|
---|
180 |
|
---|
181 | LONG OSLibWinQuerySysValue(LONG iSysValue);
|
---|
182 | ULONG OSLibWinQueryDlgItemText(HWND hwndDlg,ULONG idItem,LONG cchBufferMax,char* pchBuffer);
|
---|
183 | BOOL OSLibWinSetDlgItemText(HWND hwndDlg,ULONG idItem,char* pszText);
|
---|
184 | BOOL OSLibWinQueryPointerPos(PPOINT pptlPoint); //pptlPoint == POINTL pointer!
|
---|
185 | BOOL OSLibWinSetPointerPos(int x, int y);
|
---|
186 |
|
---|
187 | #define SWPOS_SIZE 0x0001
|
---|
188 | #define SWPOS_MOVE 0x0002
|
---|
189 | #define SWPOS_ZORDER 0x0004
|
---|
190 | #define SWPOS_SHOW 0x0008
|
---|
191 | #define SWPOS_HIDE 0x0010
|
---|
192 | #define SWPOS_NOREDRAW 0x0020
|
---|
193 | #define SWPOS_NOADJUST 0x0040
|
---|
194 | #define SWPOS_ACTIVATE 0x0080
|
---|
195 | #define SWPOS_DEACTIVATE 0x0100
|
---|
196 | #define SWPOS_EXTSTATECHANGE 0x0200
|
---|
197 | #define SWPOS_MINIMIZE 0x0400
|
---|
198 | #define SWPOS_MAXIMIZE 0x0800
|
---|
199 | #define SWPOS_RESTORE 0x1000
|
---|
200 | #define SWPOS_FOCUSACTIVATE 0x2000
|
---|
201 | #define SWPOS_FOCUSDEACTIVATE 0x4000
|
---|
202 | #define SWPOS_NOAUTOCLOSE 0x8000 /* Valid in PROGDETAILS struct only */
|
---|
203 |
|
---|
204 | #define HWNDOS_TOP (HWND)3
|
---|
205 | #define HWNDOS_BOTTOM (HWND)4
|
---|
206 |
|
---|
207 | BOOL OSLibWinSetMultWindowPos(struct _SWP *pswp, ULONG num);
|
---|
208 | BOOL OSLibWinShowWindow(HWND hwnd, ULONG fl);
|
---|
209 |
|
---|
210 | BOOL OSLibWinDestroyWindow(HWND hwnd);
|
---|
211 |
|
---|
212 | BOOL OSLibWinIsIconic(HWND hwnd);
|
---|
213 | BOOL OSLibWinIsChild (HWND hwnd, HWND hwndOf);
|
---|
214 | BOOL OSLibWinSetActiveWindow(HWND hwnd);
|
---|
215 | BOOL OSLibWinSetFocus(HWND hwnd);
|
---|
216 | BOOL OSLibWinEnableWindow(HWND hwnd, BOOL fEnable);
|
---|
217 | BOOL OSLibWinIsWindowEnabled(HWND hwnd);
|
---|
218 | BOOL OSLibWinIsWindowVisible(HWND hwnd);
|
---|
219 | HWND OSLibWinQueryActiveWindow();
|
---|
220 |
|
---|
221 |
|
---|
222 | #define RELATIVE_TO_WINDOW 0
|
---|
223 | #define RELATIVE_TO_SCREEN 1
|
---|
224 | BOOL OSLibWinQueryWindowRect(Win32BaseWindow *window, PRECT pRect, int RelativeTo = RELATIVE_TO_WINDOW);
|
---|
225 | BOOL OSLibWinCalcFrameRect(HWND hwnd, RECT *pRect, BOOL fClient);
|
---|
226 | BOOL OSLibGetMinMaxInfo(HWND hwndFrame, MINMAXINFO *pMinMax);
|
---|
227 |
|
---|
228 | #define QWOS_NEXT 0
|
---|
229 | #define QWOS_PREV 1
|
---|
230 | #define QWOS_TOP 2
|
---|
231 | #define QWOS_BOTTOM 3
|
---|
232 | #define QWOS_OWNER 4
|
---|
233 | #define QWOS_PARENT 5
|
---|
234 | #define QWOS_NEXTTOP 6
|
---|
235 | #define QWOS_PREVTOP 7
|
---|
236 | #define QWOS_FRAMEOWNER 8
|
---|
237 |
|
---|
238 | HWND OSLibWinQueryWindow(HWND hwnd, ULONG lCode);
|
---|
239 |
|
---|
240 | LONG OSLibWinQueryWindowTextLength(HWND hwnd);
|
---|
241 | LONG OSLibWinQueryWindowText(HWND hwnd, LONG length, LPSTR lpsz);
|
---|
242 | BOOL OSLibWinSetWindowText(HWND hwnd, LPSTR lpsz);
|
---|
243 | BOOL OSLibWinFlashWindow(HWND hwnd, BOOL fFlash);
|
---|
244 | HWND OSLibWinWindowFromPoint(HWND hwnd, PVOID ppoint);
|
---|
245 | BOOL OSLibWinMinimizeWindow(HWND hwnd);
|
---|
246 |
|
---|
247 | BOOL OSLibWinGetBorderSize(HWND hwnd, OSLIBPOINT *pointl);
|
---|
248 | BOOL OSLibWinSetIcon(HWND hwnd, HANDLE hIcon);
|
---|
249 |
|
---|
250 | BOOL OSLibWinQueryWindowPos (HWND hwnd, PSWP pswp);
|
---|
251 | void OSLibMapSWPtoWINDOWPOS(PSWP pswp, PWINDOWPOS pwpos, PSWP pswpOld,
|
---|
252 | int parentHeight, int clientOrgX, int clientOrgY,
|
---|
253 | HWND hwnd);
|
---|
254 | void OSLibMapWINDOWPOStoSWP(struct tagWINDOWPOS *pwpos, PSWP pswp, PSWP pswpOld,
|
---|
255 | int parentHeight, int clientOrgX, int clientOrgY, HWND hFrame);
|
---|
256 |
|
---|
257 | HWND OSLibWinBeginEnumWindows(HWND hwnd);
|
---|
258 | HWND OSLibWinGetNextWindow(HWND hwndEnum);
|
---|
259 | HWND OSLibWinQueryClientWindow(HWND hwndFrame);
|
---|
260 | BOOL OSLibWinEndEnumWindows(HWND hwndEnum);
|
---|
261 | BOOL OSLibWinQueryWindowProcess(HWND hwnd, ULONG *pid, ULONG *tid);
|
---|
262 | BOOL OSLibWinMapWindowPoints (HWND hwndFrom, HWND hwndTo, OSLIBPOINT *pptl, ULONG num);
|
---|
263 |
|
---|
264 | HWND OSLibWinObjectWindowFromID(HWND hwndOwner, ULONG ID);
|
---|
265 |
|
---|
266 | HWND OSLibWinQueryObjectWindow(VOID);
|
---|
267 |
|
---|
268 | PVOID OSLibWinSubclassWindow(HWND hwnd,PVOID newWndProc);
|
---|
269 |
|
---|
270 | BOOL OSLibSetWindowRestoreRect(HWND hwnd, PRECT pRect);
|
---|
271 | BOOL OSLibSetWindowMinPos(HWND hwnd, ULONG x, ULONG y);
|
---|
272 |
|
---|
273 | BOOL OSLibWinGetKeyboardStateTable(unsigned char * PMKeyState);
|
---|
274 | BOOL OSLibWinSetKeyboardStateTable(unsigned char * PMKeyState);
|
---|
275 |
|
---|
276 | #define HTOS_NORMAL 0
|
---|
277 | #define HTOS_TRANSPARENT (-1)
|
---|
278 | #define HTOS_DISCARD (-2)
|
---|
279 | #define HTOS_ERROR (-3)
|
---|
280 |
|
---|
281 | BOOL OSLibWinEnableWindowUpdate(HWND hwnd,BOOL fEnable);
|
---|
282 | ULONG OSLibWinGetLastError();
|
---|
283 |
|
---|
284 | void OSLibWinShowTaskList(HWND hwndFrame);
|
---|
285 |
|
---|
286 | void OSLibWinSetVisibleRegionNotify(HWND hwnd, BOOL fNotify);
|
---|
287 |
|
---|
288 | HWND OSLibWinQueryCapture();
|
---|
289 | BOOL OSLibWinSetCapture(HWND hwnd);
|
---|
290 |
|
---|
291 | BOOL OSLibWinRemoveFromTasklist(HANDLE hTaskList);
|
---|
292 | HANDLE OSLibWinAddToTaskList(HWND hwndFrame, char *title, BOOL fVisible);
|
---|
293 | BOOL OSLibWinChangeTaskList(HANDLE hTaskList, HWND hwndFrame, char *title, BOOL fVisible);
|
---|
294 |
|
---|
295 | inline ULONG GetScreenHeight()
|
---|
296 | {
|
---|
297 | return ScreenHeight;
|
---|
298 | }
|
---|
299 |
|
---|
300 | inline ULONG GetScreenWidth()
|
---|
301 | {
|
---|
302 | return ScreenWidth;
|
---|
303 | }
|
---|
304 |
|
---|
305 | ULONG OSLibGetScreenHeight();
|
---|
306 | ULONG OSLibGetScreenWidth();
|
---|
307 |
|
---|
308 | BOOL OSLibWinLockWindowUpdate(HWND hwnd);
|
---|
309 | BOOL OSLibWinGetMaxPosition(HWND hwndOS2, RECT *rect);
|
---|
310 |
|
---|
311 | BOOL OSLibWinShowPointer(BOOL fShow);
|
---|
312 |
|
---|
313 | #endif //__OSLIBWIN_H__
|
---|