win_msg_name/
lib.rs

1use std::borrow::Cow;
2
3pub fn win_msg_name(id: u32) -> Cow<'static, str> {
4    match ID_TO_NAME.binary_search_by_key(&id, |&(id, _name)| id) {
5        Ok(idx) => ID_TO_NAME[idx].1.into(),
6        Err(_) => format!("WM_??? (0x{:04x})", id).into(),
7    }
8}
9
10#[cfg(test)]
11#[test]
12fn test() {
13    assert_eq!(win_msg_name(5), "WM_SIZE");
14    assert_eq!(win_msg_name(0x9999), "WM_??? (0x9999)");
15}
16
17// generated by extract.py
18const ID_TO_NAME: &[(u32, &str)] = &[
19    (0x0000, "WM_NULL"),
20    (0x0001, "WM_CREATE"),
21    (0x0002, "WM_DESTROY"),
22    (0x0003, "WM_MOVE"),
23    (0x0005, "WM_SIZE"),
24    (0x0006, "WM_ACTIVATE"),
25    (0x0007, "WM_SETFOCUS"),
26    (0x0008, "WM_KILLFOCUS"),
27    (0x000a, "WM_ENABLE"),
28    (0x000b, "WM_SETREDRAW"),
29    (0x000c, "WM_SETTEXT"),
30    (0x000d, "WM_GETTEXT"),
31    (0x000e, "WM_GETTEXTLENGTH"),
32    (0x000f, "WM_PAINT"),
33    (0x0010, "WM_CLOSE"),
34    (0x0011, "WM_QUERYENDSESSION"),
35    (0x0012, "WM_QUIT"),
36    (0x0013, "WM_QUERYOPEN"),
37    (0x0014, "WM_ERASEBKGND"),
38    (0x0015, "WM_SYSCOLORCHANGE"),
39    (0x0016, "WM_ENDSESSION"),
40    (0x0018, "WM_SHOWWINDOW"),
41    (0x001a, "WM_WININICHANGE"),
42    (0x001b, "WM_DEVMODECHANGE"),
43    (0x001c, "WM_ACTIVATEAPP"),
44    (0x001d, "WM_FONTCHANGE"),
45    (0x001e, "WM_TIMECHANGE"),
46    (0x001f, "WM_CANCELMODE"),
47    (0x0020, "WM_SETCURSOR"),
48    (0x0021, "WM_MOUSEACTIVATE"),
49    (0x0022, "WM_CHILDACTIVATE"),
50    (0x0023, "WM_QUEUESYNC"),
51    (0x0024, "WM_GETMINMAXINFO"),
52    (0x0026, "WM_PAINTICON"),
53    (0x0027, "WM_ICONERASEBKGND"),
54    (0x0028, "WM_NEXTDLGCTL"),
55    (0x002a, "WM_SPOOLERSTATUS"),
56    (0x002b, "WM_DRAWITEM"),
57    (0x002c, "WM_MEASUREITEM"),
58    (0x002d, "WM_DELETEITEM"),
59    (0x002e, "WM_VKEYTOITEM"),
60    (0x002f, "WM_CHARTOITEM"),
61    (0x0030, "WM_SETFONT"),
62    (0x0031, "WM_GETFONT"),
63    (0x0032, "WM_SETHOTKEY"),
64    (0x0033, "WM_GETHOTKEY"),
65    (0x0037, "WM_QUERYDRAGICON"),
66    (0x0039, "WM_COMPAREITEM"),
67    (0x003d, "WM_GETOBJECT"),
68    (0x0041, "WM_COMPACTING"),
69    (0x0046, "WM_WINDOWPOSCHANGING"),
70    (0x0047, "WM_WINDOWPOSCHANGED"),
71    (0x0048, "WM_POWER"),
72    (0x004a, "WM_COPYDATA"),
73    (0x004b, "WM_CANCELJOURNAL"),
74    (0x004e, "WM_NOTIFY"),
75    (0x0050, "WM_INPUTLANGCHANGEREQUEST"),
76    (0x0051, "WM_INPUTLANGCHANGE"),
77    (0x0052, "WM_TCARD"),
78    (0x0053, "WM_HELP"),
79    (0x0054, "WM_USERCHANGED"),
80    (0x0055, "WM_NOTIFYFORMAT"),
81    (0x007b, "WM_CONTEXTMENU"),
82    (0x007c, "WM_STYLECHANGING"),
83    (0x007d, "WM_STYLECHANGED"),
84    (0x007e, "WM_DISPLAYCHANGE"),
85    (0x007f, "WM_GETICON"),
86    (0x0080, "WM_SETICON"),
87    (0x0081, "WM_NCCREATE"),
88    (0x0082, "WM_NCDESTROY"),
89    (0x0083, "WM_NCCALCSIZE"),
90    (0x0084, "WM_NCHITTEST"),
91    (0x0085, "WM_NCPAINT"),
92    (0x0086, "WM_NCACTIVATE"),
93    (0x0087, "WM_GETDLGCODE"),
94    (0x0088, "WM_SYNCPAINT"),
95    (0x00a0, "WM_NCMOUSEMOVE"),
96    (0x00a1, "WM_NCLBUTTONDOWN"),
97    (0x00a2, "WM_NCLBUTTONUP"),
98    (0x00a3, "WM_NCLBUTTONDBLCLK"),
99    (0x00a4, "WM_NCRBUTTONDOWN"),
100    (0x00a5, "WM_NCRBUTTONUP"),
101    (0x00a6, "WM_NCRBUTTONDBLCLK"),
102    (0x00a7, "WM_NCMBUTTONDOWN"),
103    (0x00a8, "WM_NCMBUTTONUP"),
104    (0x00a9, "WM_NCMBUTTONDBLCLK"),
105    (0x00ab, "WM_NCXBUTTONDOWN"),
106    (0x00ac, "WM_NCXBUTTONUP"),
107    (0x00ad, "WM_NCXBUTTONDBLCLK"),
108    (0x00fe, "WM_INPUT_DEVICE_CHANGE"),
109    (0x00ff, "WM_INPUT"),
110    (0x0100, "WM_KEYDOWN"),
111    (0x0101, "WM_KEYUP"),
112    (0x0102, "WM_CHAR"),
113    (0x0103, "WM_DEADCHAR"),
114    (0x0104, "WM_SYSKEYDOWN"),
115    (0x0105, "WM_SYSKEYUP"),
116    (0x0106, "WM_SYSCHAR"),
117    (0x0107, "WM_SYSDEADCHAR"),
118    (0x0109, "WM_UNICHAR"),
119    (0x010d, "WM_IME_STARTCOMPOSITION"),
120    (0x010e, "WM_IME_ENDCOMPOSITION"),
121    (0x010f, "WM_IME_COMPOSITION"),
122    (0x0110, "WM_INITDIALOG"),
123    (0x0111, "WM_COMMAND"),
124    (0x0112, "WM_SYSCOMMAND"),
125    (0x0113, "WM_TIMER"),
126    (0x0114, "WM_HSCROLL"),
127    (0x0115, "WM_VSCROLL"),
128    (0x0116, "WM_INITMENU"),
129    (0x0117, "WM_INITMENUPOPUP"),
130    (0x0119, "WM_GESTURE"),
131    (0x011a, "WM_GESTURENOTIFY"),
132    (0x011f, "WM_MENUSELECT"),
133    (0x0120, "WM_MENUCHAR"),
134    (0x0121, "WM_ENTERIDLE"),
135    (0x0122, "WM_MENURBUTTONUP"),
136    (0x0123, "WM_MENUDRAG"),
137    (0x0124, "WM_MENUGETOBJECT"),
138    (0x0125, "WM_UNINITMENUPOPUP"),
139    (0x0126, "WM_MENUCOMMAND"),
140    (0x0127, "WM_CHANGEUISTATE"),
141    (0x0128, "WM_UPDATEUISTATE"),
142    (0x0129, "WM_QUERYUISTATE"),
143    (0x0132, "WM_CTLCOLORMSGBOX"),
144    (0x0133, "WM_CTLCOLOREDIT"),
145    (0x0134, "WM_CTLCOLORLISTBOX"),
146    (0x0135, "WM_CTLCOLORBTN"),
147    (0x0136, "WM_CTLCOLORDLG"),
148    (0x0137, "WM_CTLCOLORSCROLLBAR"),
149    (0x0138, "WM_CTLCOLORSTATIC"),
150    (0x0200, "WM_MOUSEMOVE"),
151    (0x0201, "WM_LBUTTONDOWN"),
152    (0x0202, "WM_LBUTTONUP"),
153    (0x0203, "WM_LBUTTONDBLCLK"),
154    (0x0204, "WM_RBUTTONDOWN"),
155    (0x0205, "WM_RBUTTONUP"),
156    (0x0206, "WM_RBUTTONDBLCLK"),
157    (0x0207, "WM_MBUTTONDOWN"),
158    (0x0208, "WM_MBUTTONUP"),
159    (0x0209, "WM_MBUTTONDBLCLK"),
160    (0x020a, "WM_MOUSEWHEEL"),
161    (0x020b, "WM_XBUTTONDOWN"),
162    (0x020c, "WM_XBUTTONUP"),
163    (0x020d, "WM_XBUTTONDBLCLK"),
164    (0x020e, "WM_MOUSEHWHEEL"),
165    (0x0210, "WM_PARENTNOTIFY"),
166    (0x0211, "WM_ENTERMENULOOP"),
167    (0x0212, "WM_EXITMENULOOP"),
168    (0x0213, "WM_NEXTMENU"),
169    (0x0214, "WM_SIZING"),
170    (0x0215, "WM_CAPTURECHANGED"),
171    (0x0216, "WM_MOVING"),
172    (0x0218, "WM_POWERBROADCAST"),
173    (0x0219, "WM_DEVICECHANGE"),
174    (0x0220, "WM_MDICREATE"),
175    (0x0221, "WM_MDIDESTROY"),
176    (0x0222, "WM_MDIACTIVATE"),
177    (0x0223, "WM_MDIRESTORE"),
178    (0x0224, "WM_MDINEXT"),
179    (0x0225, "WM_MDIMAXIMIZE"),
180    (0x0226, "WM_MDITILE"),
181    (0x0227, "WM_MDICASCADE"),
182    (0x0228, "WM_MDIICONARRANGE"),
183    (0x0229, "WM_MDIGETACTIVE"),
184    (0x0230, "WM_MDISETMENU"),
185    (0x0231, "WM_ENTERSIZEMOVE"),
186    (0x0232, "WM_EXITSIZEMOVE"),
187    (0x0233, "WM_DROPFILES"),
188    (0x0234, "WM_MDIREFRESHMENU"),
189    (0x0238, "WM_POINTERDEVICECHANGE"),
190    (0x0239, "WM_POINTERDEVICEINRANGE"),
191    (0x023a, "WM_POINTERDEVICEOUTOFRANGE"),
192    (0x0240, "WM_TOUCH"),
193    (0x0241, "WM_NCPOINTERUPDATE"),
194    (0x0242, "WM_NCPOINTERDOWN"),
195    (0x0243, "WM_NCPOINTERUP"),
196    (0x0245, "WM_POINTERUPDATE"),
197    (0x0246, "WM_POINTERDOWN"),
198    (0x0247, "WM_POINTERUP"),
199    (0x0249, "WM_POINTERENTER"),
200    (0x024a, "WM_POINTERLEAVE"),
201    (0x024b, "WM_POINTERACTIVATE"),
202    (0x024c, "WM_POINTERCAPTURECHANGED"),
203    (0x024d, "WM_TOUCHHITTESTING"),
204    (0x024e, "WM_POINTERWHEEL"),
205    (0x024f, "WM_POINTERHWHEEL"),
206    (0x0281, "WM_IME_SETCONTEXT"),
207    (0x0282, "WM_IME_NOTIFY"),
208    (0x0283, "WM_IME_CONTROL"),
209    (0x0284, "WM_IME_COMPOSITIONFULL"),
210    (0x0285, "WM_IME_SELECT"),
211    (0x0286, "WM_IME_CHAR"),
212    (0x0288, "WM_IME_REQUEST"),
213    (0x0290, "WM_IME_KEYDOWN"),
214    (0x0291, "WM_IME_KEYUP"),
215    (0x02a0, "WM_NCMOUSEHOVER"),
216    (0x02a1, "WM_MOUSEHOVER"),
217    (0x02a2, "WM_NCMOUSELEAVE"),
218    (0x02a3, "WM_MOUSELEAVE"),
219    (0x02b1, "WM_WTSSESSION_CHANGE"),
220    (0x02c0, "WM_TABLET_FIRST"),
221    (0x02df, "WM_TABLET_LAST"),
222    (0x02e0, "WM_DPICHANGED"),
223    (0x0300, "WM_CUT"),
224    (0x0301, "WM_COPY"),
225    (0x0302, "WM_PASTE"),
226    (0x0303, "WM_CLEAR"),
227    (0x0304, "WM_UNDO"),
228    (0x0305, "WM_RENDERFORMAT"),
229    (0x0306, "WM_RENDERALLFORMATS"),
230    (0x0307, "WM_DESTROYCLIPBOARD"),
231    (0x0308, "WM_DRAWCLIPBOARD"),
232    (0x0309, "WM_PAINTCLIPBOARD"),
233    (0x030a, "WM_VSCROLLCLIPBOARD"),
234    (0x030b, "WM_SIZECLIPBOARD"),
235    (0x030c, "WM_ASKCBFORMATNAME"),
236    (0x030d, "WM_CHANGECBCHAIN"),
237    (0x030e, "WM_HSCROLLCLIPBOARD"),
238    (0x030f, "WM_QUERYNEWPALETTE"),
239    (0x0310, "WM_PALETTEISCHANGING"),
240    (0x0311, "WM_PALETTECHANGED"),
241    (0x0312, "WM_HOTKEY"),
242    (0x0317, "WM_PRINT"),
243    (0x0318, "WM_PRINTCLIENT"),
244    (0x0319, "WM_APPCOMMAND"),
245    (0x031a, "WM_THEMECHANGED"),
246    (0x031d, "WM_CLIPBOARDUPDATE"),
247    (0x031e, "WM_DWMCOMPOSITIONCHANGED"),
248    (0x031f, "WM_DWMNCRENDERINGCHANGED"),
249    (0x0320, "WM_DWMCOLORIZATIONCOLORCHANGED"),
250    (0x0321, "WM_DWMWINDOWMAXIMIZEDCHANGE"),
251    (0x0323, "WM_DWMSENDICONICTHUMBNAIL"),
252    (0x0326, "WM_DWMSENDICONICLIVEPREVIEWBITMAP"),
253    (0x033f, "WM_GETTITLEBARINFOEX"),
254    (0x0358, "WM_HANDHELDFIRST"),
255    (0x035f, "WM_HANDHELDLAST"),
256    (0x0360, "WM_AFXFIRST"),
257    (0x037f, "WM_AFXLAST"),
258    (0x0380, "WM_PENWINFIRST"),
259    (0x038f, "WM_PENWINLAST"),
260    (0x0400, "WM_USER"),
261    (0x8000, "WM_APP"),
262];