source: trunk/src/user32/oslibmsg.h@ 21955

Last change on this file since 21955 was 21955, checked in by dmik, 14 years ago

Make sure GetQueueStatus() correctly reports QS_KEY state.

Due to a bug in WinQueryQueueStatus(), QS_KEY would be
always set on return if the associated window is active, even
if there were no WM_CHAR messages actually in the queue.
This broke the newer Flash (see Flash #39 for details).

GetInputState() was also affected by this problem; it would always
return TRUE for active windows.

File size: 16.6 KB
Line 
1/* $Id: oslibmsg.h,v 1.24 2004-01-30 22:10:06 bird Exp $ */
2/*
3 * Window message translation functions for OS/2
4 *
5 *
6 * Copyright 1999 Sander van Leeuwen (sandervl@xs4all.nl)
7 *
8 *
9 * Project Odin Software License can be found in LICENSE.TXT
10 *
11 */
12#ifndef __OSLIBMSG_H__
13#define __OSLIBMSG_H__
14
15
16typedef struct tagCOPYDATASTRUCT_W
17{
18 DWORD dwData;
19 DWORD cbData;
20 LPVOID lpData;
21} COPYDATASTRUCT_W, *PCOPYDATASTRUCT_W, *LPCOPYDATASTRUCT_W;
22
23
24#ifdef __cplusplus
25
26ULONG TranslateWinMsg(ULONG msg);
27
28#define MSG_NOREMOVE 0
29#define MSG_REMOVE 1
30
31#ifdef OS2DEF_INCLUDED
32BOOL OS2ToWinMsgTranslate(void *pThdb, QMSG *os2Msg, MSG *winMsg, BOOL isUnicode, BOOL fMsgRemoved);
33void WinToOS2MsgTranslate(MSG *winMsg, QMSG *os2Msg, BOOL isUnicode);
34
35#endif
36
37BOOL OSLibWinGetMsg(LPMSG pMsg, HWND hwnd, UINT uMsgFilterMin,
38 UINT uMsgFilterMax, BOOL isUnicode = FALSE);
39BOOL OSLibWinPeekMsg(LPMSG pMsg, HWND hwnd, UINT uMsgFilterMin,
40 UINT uMsgFilterMax, DWORD fRemove, BOOL isUnicode = FALSE);
41void OSLibWinPostQuitMessage(ULONG nExitCode);
42LONG OSLibWinDispatchMsg(MSG *msg, BOOL isUnicode = FALSE);
43BOOL OSLibWinTranslateMessage(MSG *msg);
44
45ULONG OSLibWinQueryMsgTime();
46BOOL OSLibWinWaitMessage();
47BOOL OSLibWinInSendMessage();
48DWORD OSLibWinGetMessagePos();
49LONG OSLibWinGetMessageTime();
50BOOL OSLibWinReplyMessage(ULONG result);
51ULONG OSLibWinQueryQueueStatus(ULONG flags);
52
53BOOL OSLibPostThreadMessage(ULONG threadid, UINT msg, WPARAM wParam, LPARAM lParam, BOOL fUnicode);
54BOOL OSLibPostMessage(HWND hwndWin32, HWND hwndOS2, ULONG msg, ULONG wParam, ULONG lParam, BOOL fUnicode);
55ULONG OSLibSendMessage(HWND hwndWin32, HWND hwndOS2, ULONG msg, ULONG wParam, ULONG lParam, BOOL fUnicode);
56ULONG OSLibWinBroadcastMsg(ULONG msg, ULONG wParam, ULONG lParam, BOOL fSend);
57BOOL OSLibSendWinMessage(HWND hwnd, ULONG winmsg, ULONG extra = 0);
58
59//Direct posting of messages that must remain invisible to the win32 app
60BOOL OSLibPostMessageDirect(HWND hwnd, ULONG msg, ULONG wParam, ULONG lParam);
61BOOL OSLibForwardMessageToAttachedThread(/*TEB*/ void *pvTeb, MSG *pMsg, void *hmm);
62
63#define WINWM_NULL 0x0000
64#define WINWM_CREATE 0x0001
65#define WINWM_DESTROY 0x0002
66#define WINWM_MOVE 0x0003
67#define WINWM_SIZE 0x0005
68#define WINWM_ACTIVATE 0x0006
69#define WINWM_SETFOCUS 0x0007
70#define WINWM_KILLFOCUS 0x0008
71#define WINWM_ENABLE 0x000A
72#define WINWM_SETREDRAW 0x000B
73#define WINWM_SETTEXT 0x000C
74#define WINWM_GETTEXT 0x000D
75#define WINWM_GETTEXTLENGTH 0x000E
76#define WINWM_PAINT 0x000F
77#define WINWM_CLOSE 0x0010
78#define WINWM_QUERYENDSESSION 0x0011
79#define WINWM_QUIT 0x0012
80#define WINWM_QUERYOPEN 0x0013
81#define WINWM_ERASEBKGND 0x0014
82#define WINWM_SYSCOLORCHANGE 0x0015
83#define WINWM_ENDSESSION 0x0016
84#define WINWM_SHOWWINDOW 0x0018
85#define WINWM_WININICHANGE 0x001A
86#define WINWM_DEVMODECHANGE 0x001B
87#define WINWM_ACTIVATEAPP 0x001C
88#define WINWM_FONTCHANGE 0x001D
89#define WINWM_TIMECHANGE 0x001E
90#define WINWM_CANCELMODE 0x001F
91#define WINWM_SETCURSOR 0x0020
92#define WINWM_MOUSEACTIVATE 0x0021
93#define WINWM_CHILDACTIVATE 0x0022
94#define WINWM_QUEUESYNC 0x0023
95#define WINWM_GETMINMAXINFO 0x0024
96#define WINWM_PAINTICON 0x0026
97#define WINWM_ICONERASEBKGND 0x0027
98#define WINWM_NEXTDLGCTL 0x0028
99#define WINWM_SPOOLERSTATUS 0x002A
100#define WINWM_DRAWITEM 0x002B
101#define WINWM_MEASUREITEM 0x002C
102#define WINWM_DELETEITEM 0x002D
103#define WINWM_VKEYTOITEM 0x002E
104#define WINWM_CHARTOITEM 0x002F
105#define WINWM_SETFONT 0x0030
106#define WINWM_GETFONT 0x0031
107#define WINWM_SETHOTKEY 0x0032
108#define WINWM_GETHOTKEY 0x0033
109#define WINWM_QUERYDRAGICON 0x0037
110#define WINWM_COMPAREITEM 0x0039
111#define WINWM_COMPACTING 0x0041
112#define WINWM_WINDOWPOSCHANGING 0x0046
113#define WINWM_WINDOWPOSCHANGED 0x0047
114#define WINWM_POWER 0x0048
115#define WINWM_COPYDATA 0x004A
116#define WINWM_CANCELJOURNAL 0x004B
117#define WINWM_CONTEXTMENU 0x007b
118#define WINWM_STYLECHANGING 0x007c
119#define WINWM_STYLECHANGED 0x007d
120#define WINWM_DISPLAYCHANGE 0x007e
121#define WINWM_GETICON 0x007f
122#define WINWM_SETICON 0x0080
123#define WINWM_NCCREATE 0x0081
124#define WINWM_NCDESTROY 0x0082
125#define WINWM_NCCALCSIZE 0x0083
126#define WINWM_NCHITTEST 0x0084
127#define WINWM_NCPAINT 0x0085
128#define WINWM_NCACTIVATE 0x0086
129#define WINWM_GETDLGCODE 0x0087
130#define WINWM_NCMOUSEMOVE 0x00A0
131#define WINWM_NCLBUTTONDOWN 0x00A1
132#define WINWM_NCLBUTTONUP 0x00A2
133#define WINWM_NCLBUTTONDBLCLK 0x00A3
134#define WINWM_NCRBUTTONDOWN 0x00A4
135#define WINWM_NCRBUTTONUP 0x00A5
136#define WINWM_NCRBUTTONDBLCLK 0x00A6
137#define WINWM_NCMBUTTONDOWN 0x00A7
138#define WINWM_NCMBUTTONUP 0x00A8
139#define WINWM_NCMBUTTONDBLCLK 0x00A9
140#define WINWM_KEYFIRST 0x0100
141#define WINWM_KEYDOWN 0x0100
142#define WINWM_KEYUP 0x0101
143#define WINWM_CHAR 0x0102
144#define WINWM_DEADCHAR 0x0103
145#define WINWM_SYSKEYDOWN 0x0104
146#define WINWM_SYSKEYUP 0x0105
147#define WINWM_SYSCHAR 0x0106
148#define WINWM_SYSDEADCHAR 0x0107
149#define WINWM_KEYLAST 0x0108
150#define WINWM_IME_STARTCOMPOSITION 0x010D
151#define WINWM_IME_ENDCOMPOSITION 0x010E
152#define WINWM_IME_COMPOSITION 0x010F
153#define WINWM_IME_KEYLAST 0x010F
154#define WINWM_INITDIALOG 0x0110
155#define WINWM_COMMAND 0x0111
156#define WINWM_SYSCOMMAND 0x0112
157#define WINWM_TIMER 0x0113
158#define WINWM_HSCROLL 0x0114
159#define WINWM_VSCROLL 0x0115
160#define WINWM_INITMENU 0x0116
161#define WINWM_INITMENUPOPUP 0x0117
162#define WINWM_SYSTIMER 0x0118
163#define WINWM_MENUSELECT 0x011F
164#define WINWM_MENUCHAR 0x0120
165#define WINWM_ENTERIDLE 0x0121
166#define WINWM_CTLCOLORMSGBOX 0x0132
167#define WINWM_CTLCOLOREDIT 0x0133
168#define WINWM_CTLCOLORLISTBOX 0x0134
169#define WINWM_CTLCOLORBTN 0x0135
170#define WINWM_CTLCOLORDLG 0x0136
171#define WINWM_CTLCOLORSCROLLBAR 0x0137
172#define WINWM_CTLCOLORSTATIC 0x0138
173#define WINWM_MOUSEFIRST 0x0200
174#define WINWM_MOUSEMOVE 0x0200
175#define WINWM_LBUTTONDOWN 0x0201
176#define WINWM_LBUTTONUP 0x0202
177#define WINWM_LBUTTONDBLCLK 0x0203
178#define WINWM_RBUTTONDOWN 0x0204
179#define WINWM_RBUTTONUP 0x0205
180#define WINWM_RBUTTONDBLCLK 0x0206
181#define WINWM_MBUTTONDOWN 0x0207
182#define WINWM_MBUTTONUP 0x0208
183#define WINWM_MBUTTONDBLCLK 0x0209
184#define WINWM_MOUSEWHEEL 0x020A
185#define WINWM_MOUSELAST 0x020A
186#define WINWM_PARENTNOTIFY 0x0210
187#define WINWM_ENTERMENULOOP 0x0211
188#define WINWM_EXITMENULOOP 0x0212
189#define WINWM_MDICREATE 0x0220
190#define WINWM_MDIDESTROY 0x0221
191#define WINWM_MDIACTIVATE 0x0222
192#define WINWM_MDIRESTORE 0x0223
193#define WINWM_MDINEXT 0x0224
194#define WINWM_MDIMAXIMIZE 0x0225
195#define WINWM_MDITILE 0x0226
196#define WINWM_MDICASCADE 0x0227
197#define WINWM_MDIICONARRANGE 0x0228
198#define WINWM_MDIGETACTIVE 0x0229
199#define WINWM_MDISETMENU 0x0230
200#define WINWM_DROPFILES 0x0233
201#define WINWM_MDIREFRESHMENU 0x0234
202#define WINWM_IME_SETCONTEXT 0x0281
203#define WINWM_IME_NOTIFY 0x0282
204#define WINWM_IME_CONTROL 0x0283
205#define WINWM_IME_COMPOSITIONFULL 0x0284
206#define WINWM_IME_SELECT 0x0285
207#define WINWM_IME_CHAR 0x0286
208#define WINWM_IME_REQUEST 0x0288
209#define WINWM_IME_KEYDOWN 0x0290
210#define WINWM_IME_KEYUP 0x0291
211#define WINWM_CUT 0x0300
212#define WINWM_COPY 0x0301
213#define WINWM_PASTE 0x0302
214#define WINWM_CLEAR 0x0303
215#define WINWM_UNDO 0x0304
216#define WINWM_RENDERFORMAT 0x0305
217#define WINWM_RENDERALLFORMATS 0x0306
218#define WINWM_DESTROYCLIPBOARD 0x0307
219#define WINWM_DRAWCLIPBOARD 0x0308
220#define WINWM_PAINTCLIPBOARD 0x0309
221#define WINWM_VSCROLLCLIPBOARD 0x030A
222#define WINWM_SIZECLIPBOARD 0x030B
223#define WINWM_ASKCBFORMATNAME 0x030C
224#define WINWM_CHANGECBCHAIN 0x030D
225#define WINWM_HSCROLLCLIPBOARD 0x030E
226#define WINWM_QUERYNEWPALETTE 0x030F
227#define WINWM_PALETTEISCHANGING 0x0310
228#define WINWM_PALETTECHANGED 0x0311
229#define WINWM_HOTKEY 0x0312
230#define WINWM_DDE_FIRST 0x03E0
231#define WINWM_DDE_INITIATE (WINWM_DDE_FIRST)
232#define WINWM_DDE_TERMINATE (WINWM_DDE_FIRST + 1)
233#define WINWM_DDE_ADVISE (WINWM_DDE_FIRST + 2)
234#define WINWM_DDE_UNADVISE (WINWM_DDE_FIRST + 3)
235#define WINWM_DDE_ACK (WINWM_DDE_FIRST + 4)
236#define WINWM_DDE_DATA (WINWM_DDE_FIRST + 5)
237#define WINWM_DDE_REQUEST (WINWM_DDE_FIRST + 6)
238#define WINWM_DDE_POKE (WINWM_DDE_FIRST + 7)
239#define WINWM_DDE_EXECUTE (WINWM_DDE_FIRST + 8)
240#define WINWM_DDE_LAST (WINWM_DDE_FIRST + 8)
241#define WINWM_USER 0x0400
242
243/*******
244#define OSWM_NULL 0x0000
245#define OSWM_CREATE 0x0001
246#define OSWM_DESTROY 0x0002
247#define OSWM_ENABLE 0x0004
248#define OSWM_SHOW 0x0005
249#define OSWM_MOVE 0x0006
250#define OSWM_SIZE 0x0007
251#define OSWM_ADJUSTWINDOWPOS 0x0008
252#define OSWM_CALCVALIDRECTS 0x0009
253#define OSWM_SETWINDOWPARAMS 0x000a
254#define OSWM_QUERYWINDOWPARAMS 0x000b
255#define OSWM_HITTEST 0x000c
256#define OSWM_ACTIVATE 0x000d
257#define OSWM_SETFOCUS 0x000f
258#define OSWM_SETSELECTION 0x0010
259#define OSWM_PPAINT 0x0011
260#define OSWM_PSETFOCUS 0x0012
261#define OSWM_PSYSCOLORCHANGE 0x0013
262#define OSWM_PSIZE 0x0014
263#define OSWM_PACTIVATE 0x0015
264#define OSWM_PCONTROL 0x0016
265#define OSWM_COMMAND 0x0020
266#define OSWM_SYSCOMMAND 0x0021
267#define OSWM_HELP 0x0022
268#define OSWM_PAINT 0x0023
269#define OSWM_TIMER 0x0024
270#define OSWM_SEM1 0x0025
271#define OSWM_SEM2 0x0026
272#define OSWM_SEM3 0x0027
273#define OSWM_SEM4 0x0028
274#define OSWM_CLOSE 0x0029
275#define OSWM_QUIT 0x002a
276#define OSWM_SYSCOLORCHANGE 0x002b
277#define OSWM_SYSVALUECHANGED 0x002d
278#define OSWM_APPTERMINATENOTIFY 0x002e
279#define OSWM_PRESPARAMCHANGED 0x002f
280#define OSWM_CONTROL 0x0030
281#define OSWM_VSCROLL 0x0031
282#define OSWM_HSCROLL 0x0032
283#define OSWM_INITMENU 0x0033
284#define OSWM_MENUSELECT 0x0034
285#define OSWM_MENUEND 0x0035
286#define OSWM_DRAWITEM 0x0036
287#define OSWM_MEASUREITEM 0x0037
288#define OSWM_CONTROLPOINTER 0x0038
289#define OSWM_QUERYDLGCODE 0x003a
290#define OSWM_INITDLG 0x003b
291#define OSWM_SUBSTITUTESTRING 0x003c
292#define OSWM_MATCHMNEMONIC 0x003d
293#define OSWM_SAVEAPPLICATION 0x003e
294#define OSWM_FLASHWINDOW 0x0040
295#define OSWM_FORMATFRAME 0x0041
296#define OSWM_UPDATEFRAME 0x0042
297#define OSWM_FOCUSCHANGE 0x0043
298#define OSWM_SETBORDERSIZE 0x0044
299#define OSWM_TRACKFRAME 0x0045
300#define OSWM_MINMAXFRAME 0x0046
301#define OSWM_SETICON 0x0047
302#define OSWM_QUERYICON 0x0048
303#define OSWM_SETACCELTABLE 0x0049
304#define OSWM_QUERYACCELTABLE 0x004a
305#define OSWM_TRANSLATEACCEL 0x004b
306#define OSWM_QUERYTRACKINFO 0x004c
307#define OSWM_QUERYBORDERSIZE 0x004d
308#define OSWM_NEXTMENU 0x004e
309#define OSWM_ERASEBACKGROUND 0x004f
310#define OSWM_QUERYFRAMEINFO 0x0050
311#define OSWM_QUERYFOCUSCHAIN 0x0051
312#define OSWM_OWNERPOSCHANGE 0x0052
313#define OSWM_CALCFRAMERECT 0x0053
314#define OSWM_WINDOWPOSCHANGED 0x0055
315#define OSWM_ADJUSTFRAMEPOS 0x0056
316#define OSWM_QUERYFRAMECTLCOUNT 0x0059
317#define OSWM_QUERYHELPINFO 0x005B
318#define OSWM_SETHELPINFO 0x005C
319#define OSWM_ERROR 0x005D
320#define OSWM_REALIZEPALETTE 0x005E
321#define OSWM_RENDERFMT 0x0060
322#define OSWM_RENDERALLFMTS 0x0061
323#define OSWM_DESTROYCLIPBOARD 0x0062
324#define OSWM_PAINTCLIPBOARD 0x0063
325#define OSWM_SIZECLIPBOARD 0x0064
326#define OSWM_HSCROLLCLIPBOARD 0x0065
327#define OSWM_VSCROLLCLIPBOARD 0x0066
328#define OSWM_DRAWCLIPBOARD 0x0067
329#define OSWM_MOUSEMOVE 0x0070
330#define OSWM_BUTTON1DOWN 0x0071
331#define OSWM_BUTTON1UP 0x0072
332#define OSWM_BUTTON1DBLCLK 0x0073
333#define OSWM_BUTTON2DOWN 0x0074
334#define OSWM_BUTTON2UP 0x0075
335#define OSWM_BUTTON2DBLCLK 0x0076
336#define OSWM_BUTTON3DOWN 0x0077
337#define OSWM_BUTTON3UP 0x0078
338#define OSWM_BUTTON3DBLCLK 0x0079
339#define OSWM_CHAR 0x007a
340#define OSWM_VIOCHAR 0x007b
341#define OSWM_JOURNALNOTIFY 0x007c
342#define OSWM_MOUSEMAP 0x007D
343#define OSWM_VRNDISABLED 0x007e
344#define OSWM_VRNENABLED 0x007f
345#define OSWM_DDE_FIRST 0x00A0
346#define OSWM_DDE_INITIATE 0x00A0
347#define OSWM_DDE_REQUEST 0x00A1
348#define OSWM_DDE_ACK 0x00A2
349#define OSWM_DDE_DATA 0x00A3
350#define OSWM_DDE_ADVISE 0x00A4
351#define OSWM_DDE_UNADVISE 0x00A5
352#define OSWM_DDE_POKE 0x00A6
353#define OSWM_DDE_EXECUTE 0x00A7
354#define OSWM_DDE_TERMINATE 0x00A8
355#define OSWM_DDE_INITIATEACK 0x00A9
356#define OSWM_DDE_LAST 0x00AF
357#define OSWM_QUERYCONVERTPOS 0x00b0
358#define OSWM_DBCSFIRST 0x00b0
359#define OSWM_DBCSLAST 0x00cf
360#define OSWM_MSGBOXINIT 0x010E
361#define OSWM_MSGBOXDISMISS 0x010F
362#define OSWM_CTLCOLORCHANGE 0x0129
363#define OSWM_QUERYCTLTYPE 0x0130
364#define OSWM_EXTMOUSEFIRST 0x0410
365#define OSWM_EXTMOUSELAST 0x0419
366#define OSWM_CHORD 0x0410
367#define OSWM_BUTTON1MOTIONSTART 0x0411
368#define OSWM_BUTTON1MOTIONEND 0x0412
369#define OSWM_BUTTON1CLICK 0x0413
370#define OSWM_BUTTON2MOTIONSTART 0x0414
371#define OSWM_BUTTON2MOTIONEND 0x0415
372#define OSWM_BUTTON2CLICK 0x0416
373#define OSWM_BUTTON3MOTIONSTART 0x0417
374#define OSWM_BUTTON3MOTIONEND 0x0418
375#define OSWM_BUTTON3CLICK 0x0419
376#define OSWM_MOUSETRANSLATEFIRST 0x0420
377#define OSWM_MOUSETRANSLATELAST 0x0428
378#define OSWM_BEGINDRAG 0x0420
379#define OSWM_ENDDRAG 0x0421
380#define OSWM_SINGLESELECT 0x0422
381#define OSWM_OPEN 0x0423
382#define OSWM_CONTEXTMENU 0x0424
383#define OSWM_CONTEXTHELP 0x0425
384#define OSWM_TEXTEDIT 0x0426
385#define OSWM_BEGINSELECT 0x0427
386#define OSWM_ENDSELECT 0x0428
387#define OSWM_PICKUP 0x0429
388#define OSWM_PENFIRST 0x04C0
389#define OSWM_PENLAST 0x04FF
390#define OSWM_MMPMFIRST 0x0500
391#define OSWM_MMPMLAST 0x05FF
392#define OSWM_STDDLGFIRST 0x0600
393#define OSWM_STDDLGLAST 0x065F
394#define OSWM_BIDI_FIRST 0x0BD0
395#define OSWM_BIDI_LAST 0x0BFF
396#define OSWM_USER 0x1000
397************/
398
399#define OSWM_SYSCOMMAND 0x0021
400#define OSSC_SYSMENU 0x8007
401
402#endif
403
404#ifdef __cplusplus
405extern "C" {
406#endif
407
408void OSLibSetMenuDoubleClick(BOOL fSet);
409
410#ifdef __cplusplus
411}
412#endif
413
414#endif //__OSLIBMSG_H__
Note: See TracBrowser for help on using the repository browser.