source: trunk/src/user32/oslibwin.h@ 6149

Last change on this file since 6149 was 6149, checked in by sandervl, 24 years ago

GetKeyboardState fixes

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