Splice 0.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,19 @@
1
+ require 'Splice'
2
+
3
+ title = File.basename(__FILE__, '.rbw')
4
+
5
+ Splice::Window.on(WM_CREATE) { |hwnd, *args|
6
+ answer = MessageBox(hwnd, 'Create?', title, MB_YESNO | MB_ICONQUESTION)
7
+
8
+ (answer == IDYES) ? 0 : -1
9
+ }
10
+
11
+ Splice::Window.on(WM_CLOSE) { |hwnd, *args|
12
+ answer = MessageBox(hwnd, 'Close?', title, MB_YESNO | MB_DEFBUTTON2 | MB_ICONQUESTION)
13
+
14
+ DestroyWindow(hwnd) if answer == IDYES
15
+
16
+ 0
17
+ }
18
+
19
+ Splice::Application.run
@@ -0,0 +1,19 @@
1
+ require 'Splice'
2
+
3
+ title = File.basename(__FILE__, '.rbw')
4
+
5
+ Splice::Window.on(:create) { |hwnd, *args|
6
+ answer = MessageBox(hwnd, 'Create?', title, MB_YESNO | MB_ICONQUESTION)
7
+
8
+ (answer == IDYES) ? 0 : -1
9
+ }
10
+
11
+ Splice::Window.on(:close) { |hwnd, *args|
12
+ answer = MessageBox(hwnd, 'Close?', title, MB_YESNO | MB_DEFBUTTON2 | MB_ICONQUESTION)
13
+
14
+ DestroyWindow(hwnd) if answer == IDYES
15
+
16
+ 0
17
+ }
18
+
19
+ Splice::Application.run
@@ -0,0 +1,11 @@
1
+ require 'Splice'
2
+
3
+ Splice::Window.on(:create) { |hwnd, *args|
4
+ result = Splice::FileDialog.showOpen(hwnd)
5
+
6
+ MessageBox(hwnd, result, 'Open', MB_OK | MB_ICONINFORMATION) if result
7
+
8
+ -1
9
+ }
10
+
11
+ Splice::Application.run
@@ -0,0 +1,11 @@
1
+ require 'Splice'
2
+
3
+ Splice::Window.on(:create) { |hwnd, *args|
4
+ result = Splice::FileDialog.showSave(hwnd)
5
+
6
+ MessageBox(hwnd, result, 'Save', MB_OK | MB_ICONINFORMATION) if result
7
+
8
+ -1
9
+ }
10
+
11
+ Splice::Application.run
@@ -0,0 +1,11 @@
1
+ require 'Splice'
2
+
3
+ Splice::Window.on(:create) { |hwnd, *args|
4
+ result = Splice::FolderDialog.show(hwnd)
5
+
6
+ MessageBox(hwnd, result, 'Folder', MB_OK | MB_ICONINFORMATION) if result
7
+
8
+ -1
9
+ }
10
+
11
+ Splice::Application.run
@@ -0,0 +1,3 @@
1
+ require 'Splice'
2
+
3
+ Splice::Application.run
@@ -0,0 +1,128 @@
1
+ if __FILE__ == $0
2
+ require 'ffi'
3
+
4
+ require 'WinAPI/Constants'
5
+ require 'WinAPI/Types'
6
+ require 'WinAPI/Functions'
7
+
8
+ require 'Window'
9
+ end
10
+
11
+ module Splice
12
+ class Application
13
+ @@window = nil
14
+ @@visualStylesCtx = nil
15
+ @@oleInitialized = false
16
+
17
+ def self.enableVisualStyles
18
+ return if @@visualStylesCtx
19
+
20
+ manifest = "#{File.dirname(File.expand_path(__FILE__))}/Common-Controls.manifest"
21
+
22
+ ctx = ACTCTX.new
23
+
24
+ ctx.to_ptr.put_ulong(ctx.offset_of(:cbSize), ctx.size)
25
+ ctx.to_ptr.put_ulong(ctx.offset_of(:dwFlags), 0)
26
+ ctx.to_ptr.put_pointer(ctx.offset_of(:lpSource), FFI::MemoryPointer.from_string(manifest))
27
+ ctx.to_ptr.put_ushort(ctx.offset_of(:wProcessorArchitecture), 0)
28
+ ctx.to_ptr.put_ushort(ctx.offset_of(:wLangId), 0)
29
+ ctx.to_ptr.put_pointer(ctx.offset_of(:lpAssemblyDirectory), nil)
30
+ ctx.to_ptr.put_pointer(ctx.offset_of(:lpResourceName), nil)
31
+ ctx.to_ptr.put_pointer(ctx.offset_of(:lpApplicationName), nil)
32
+ ctx.to_ptr.put_pointer(ctx.offset_of(:hModule), nil)
33
+
34
+ return false if (hctx = CreateActCtx(ctx.to_ptr)) == FFI::Pointer.new(INVALID_HANDLE_VALUE)
35
+
36
+ cookie = FFI::MemoryPointer.new(:ULONG_PTR)
37
+
38
+ return false if ActivateActCtx(hctx, cookie) == 0
39
+
40
+ @@visualStylesCtx = {}
41
+
42
+ @@visualStylesCtx[:hctx] = hctx
43
+ @@visualStylesCtx[:cookie] = cookie
44
+
45
+ true
46
+ end
47
+
48
+ def self.releaseVisualStylesCtx
49
+ return unless @@visualStylesCtx
50
+
51
+ DeactivateActCtx(0, @@visualStylesCtx[:cookie].get_ulong(0))
52
+ ReleaseActCtx(@@visualStylesCtx[:hctx])
53
+ @@visualStylesCtx[:cookie].free
54
+
55
+ @@visualStylesCtx = nil
56
+ end
57
+
58
+ def self.initCommonControls
59
+ icc = INITCOMMONCONTROLSEX.new
60
+
61
+ icc.to_ptr.put_ulong(icc.offset_of(:dwSize), icc.size)
62
+ icc.to_ptr.put_ulong(icc.offset_of(:dwICC),
63
+ ICC_LISTVIEW_CLASSES |
64
+ ICC_TREEVIEW_CLASSES |
65
+ ICC_BAR_CLASSES |
66
+ ICC_TAB_CLASSES |
67
+ ICC_UPDOWN_CLASS |
68
+ ICC_PROGRESS_CLASS |
69
+ ICC_HOTKEY_CLASS |
70
+ ICC_ANIMATE_CLASS |
71
+ ICC_WIN95_CLASSES |
72
+ ICC_DATE_CLASSES |
73
+ ICC_USEREX_CLASSES |
74
+ ICC_COOL_CLASSES |
75
+ ICC_INTERNET_CLASSES |
76
+ ICC_PAGESCROLLER_CLASS |
77
+ ICC_NATIVEFNTCTL_CLASS
78
+ )
79
+
80
+ InitCommonControlsEx(icc.to_ptr)
81
+ end
82
+
83
+ def self.run(opts = {})
84
+ defopts = {
85
+ :enableVisualStyles => true,
86
+ :initCommonControls => true,
87
+ :oleInitialize => true
88
+ }
89
+
90
+ badopts = opts.keys - defopts.keys
91
+
92
+ raise "Bad option(s): #{badopts.join(', ')}!" unless badopts.empty?
93
+
94
+ opts = defopts.merge(opts)
95
+
96
+ enableVisualStyles if opts[:enableVisualStyles]
97
+ initCommonControls if opts[:initCommonControls]
98
+ @@oleInitialized = true if opts[:oleInitialize] && OleInitialize(nil) == S_OK
99
+
100
+ begin
101
+ @@window = Window.new
102
+
103
+ ShowWindow(@@window.hwnd, SW_SHOWNORMAL)
104
+ UpdateWindow(@@window.hwnd)
105
+
106
+ msg = MSG.new
107
+
108
+ while (get = GetMessage(msg.to_ptr, nil, 0, 0)) != 0
109
+ raise 'GetMessage failed!' if get == -1
110
+
111
+ TranslateMessage(msg.to_ptr)
112
+ DispatchMessage(msg.to_ptr)
113
+ end
114
+ rescue
115
+ raise
116
+ ensure
117
+ releaseVisualStylesCtx
118
+ OleUninitialize() if @@oleInitialized
119
+ end
120
+
121
+ msg[:wParam]
122
+ end
123
+
124
+ def self.window
125
+ @@window
126
+ end
127
+ end
128
+ end
@@ -0,0 +1,8 @@
1
+ <?xml version='1.0' encoding='UTF-8' standalone='yes'?>
2
+ <assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
3
+ <dependency>
4
+ <dependentAssembly>
5
+ <assemblyIdentity type='Win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*' />
6
+ </dependentAssembly>
7
+ </dependency>
8
+ </assembly>
@@ -0,0 +1,13 @@
1
+ if __FILE__ == $0
2
+ require 'ffi'
3
+
4
+ require 'WinAPI/Constants'
5
+ require 'WinAPI/Types'
6
+ require 'WinAPI/Functions'
7
+
8
+ require 'Application'
9
+ end
10
+
11
+ module Splice
12
+
13
+ end
@@ -0,0 +1,106 @@
1
+ if __FILE__ == $0
2
+ require 'ffi'
3
+
4
+ require 'WinAPI/Constants'
5
+ require 'WinAPI/Types'
6
+ require 'WinAPI/Functions'
7
+
8
+ require 'Application'
9
+ end
10
+
11
+ module Splice
12
+ class FileDialog
13
+ @@buffer = nil
14
+
15
+ def self.hookProc(hwnd, uMsg, wParam, lParam)
16
+ 0
17
+ end
18
+
19
+ def self.ofn(hwnd)
20
+ ofn = OPENFILENAME.new
21
+
22
+ ofn.to_ptr.put_ulong(ofn.offset_of(:lStructSize), ofn.size)
23
+ ofn.to_ptr.put_pointer(ofn.offset_of(:hwndOwner), hwnd)
24
+ ofn.to_ptr.put_pointer(ofn.offset_of(:hInstance), GetModuleHandle(nil))
25
+ ofn.to_ptr.put_pointer(ofn.offset_of(:lpstrFilter), nil)
26
+ ofn.to_ptr.put_pointer(ofn.offset_of(:lpstrCustomFilter), nil)
27
+ ofn.to_ptr.put_ulong(ofn.offset_of(:nMaxCustFilter), 0)
28
+ ofn.to_ptr.put_ulong(ofn.offset_of(:nFilterIndex), 0)
29
+
30
+ # TODO: Allocate buffer with the right size. (Hook on OK to determine it.)
31
+ ofn.to_ptr.put_pointer(ofn.offset_of(:lpstrFile), @@buffer = FFI::MemoryPointer.new(:char, 1024))
32
+ ofn.to_ptr.put_ulong(ofn.offset_of(:nMaxFile), 1024)
33
+
34
+ ofn.to_ptr.put_pointer(ofn.offset_of(:lpstrFileTitle), nil)
35
+ ofn.to_ptr.put_ulong(ofn.offset_of(:nMaxFileTitle), 0)
36
+ ofn.to_ptr.put_pointer(ofn.offset_of(:lpstrInitialDir), nil)
37
+ ofn.to_ptr.put_pointer(ofn.offset_of(:lpstrTitle), nil)
38
+ ofn.to_ptr.put_ulong(ofn.offset_of(:Flags), OFN_EXPLORER | OFN_ENABLESIZING | OFN_ENABLEHOOK)
39
+ ofn.to_ptr.put_ushort(ofn.offset_of(:nFileOffset), 0)
40
+ ofn.to_ptr.put_ushort(ofn.offset_of(:nFileExtension), 0)
41
+ ofn.to_ptr.put_pointer(ofn.offset_of(:lpstrDefExt), nil)
42
+ ofn.to_ptr.put_long(ofn.offset_of(:lCustData), 0)
43
+ ofn.to_ptr.put_callback(ofn.offset_of(:lpfnHook), method(:hookProc), FFI.find_type(:LPOFNHOOKPROC))
44
+ ofn.to_ptr.put_pointer(ofn.offset_of(:lpTemplateName), nil)
45
+ ofn.to_ptr.put_pointer(ofn.offset_of(:pvReserved), nil)
46
+ ofn.to_ptr.put_ulong(ofn.offset_of(:dwReserved), 0)
47
+ ofn.to_ptr.put_ulong(ofn.offset_of(:FlagsEx), 0)
48
+
49
+ ofn
50
+ end
51
+
52
+ def self.showOpen(hwnd, opts = {})
53
+ result = @@buffer.get_string(0) unless GetOpenFileName(ofn(hwnd).to_ptr) == 0
54
+
55
+ @@buffer.free
56
+
57
+ result
58
+ end
59
+
60
+ def self.showSave(hwnd, opts = {})
61
+ result = @@buffer.get_string(0) unless GetSaveFileName(ofn(hwnd).to_ptr) == 0
62
+
63
+ @@buffer.free
64
+
65
+ result
66
+ end
67
+ end
68
+
69
+ class FolderDialog
70
+ def self.bffCallback(hwnd, uMsg, lParam, lpData)
71
+ 0
72
+ end
73
+
74
+ def self.show(hwnd, opts = {})
75
+ bi = BROWSEINFO.new
76
+
77
+ bi.to_ptr.put_pointer(bi.offset_of(:hwndOwner), hwnd)
78
+ bi.to_ptr.put_pointer(bi.offset_of(:pidlRoot), nil)
79
+ bi.to_ptr.put_pointer(bi.offset_of(:pszDisplayName), displayName = FFI::MemoryPointer.new(:char, 1024))
80
+ bi.to_ptr.put_pointer(bi.offset_of(:lpszTitle), nil)
81
+ bi.to_ptr.put_uint(bi.offset_of(:ulFlags), BIF_USENEWUI | BIF_RETURNONLYFSDIRS)
82
+ # TODO: Crashes both 1.8 and 1.9 runtimes. Debug.
83
+ # MEIGNORANT: Callback gets called just fine. Not meeting caller expectations is probably the reason.
84
+ #bi.to_ptr.put_callback(bi.offset_of(:lpfn), method(:bffCallback), FFI.find_type(:BFFCALLBACK))
85
+ bi.to_ptr.put_long(bi.offset_of(:lParam), 0)
86
+ bi.to_ptr.put_int(bi.offset_of(:iImage), 0)
87
+
88
+ pidl = SHBrowseForFolder(bi.to_ptr)
89
+
90
+ return nil if pidl == FFI::Pointer.new(0)
91
+
92
+ displayName.free
93
+
94
+ result = nil
95
+
96
+ FFI::MemoryPointer.new(:char, 1024) { |buffer|
97
+ SHGetPathFromIDList(pidl, buffer)
98
+ CoTaskMemFree(pidl)
99
+
100
+ result = buffer.get_string(0)
101
+ }
102
+
103
+ result
104
+ end
105
+ end
106
+ end
@@ -0,0 +1,827 @@
1
+ #{ INVALID_xxx
2
+ INVALID_HANDLE_VALUE = -1
3
+ INVALID_FILE_SIZE = 0xFFFFFFFF
4
+ INVALID_SET_FILE_POINTER = -1
5
+ INVALID_FILE_ATTRIBUTES = -1
6
+ #}
7
+
8
+ #{ S_xxx
9
+ S_OK = 0
10
+ S_FALSE = 1
11
+ #}
12
+
13
+ #{ ACTCTX_xxx
14
+ ACTCTX_FLAG_PROCESSOR_ARCHITECTURE_VALID = 0x00000001
15
+ ACTCTX_FLAG_LANGID_VALID = 0x00000002
16
+ ACTCTX_FLAG_ASSEMBLY_DIRECTORY_VALID = 0x00000004
17
+ ACTCTX_FLAG_RESOURCE_NAME_VALID = 0x00000008
18
+ ACTCTX_FLAG_SET_PROCESS_DEFAULT = 0x00000010
19
+ ACTCTX_FLAG_APPLICATION_NAME_VALID = 0x00000020
20
+ ACTCTX_FLAG_SOURCE_IS_ASSEMBLYREF = 0x00000040
21
+ ACTCTX_FLAG_HMODULE_VALID = 0x00000080
22
+ #}
23
+
24
+ #{ COINIT_xxx
25
+ COINIT_APARTMENTTHREADED = 0x2
26
+ COINIT_MULTITHREADED = 0x0
27
+ COINIT_DISABLE_OLE1DDE = 0x4
28
+ COINIT_SPEED_OVER_MEMORY = 0x8
29
+ #}
30
+
31
+ #{ IDI_xxx
32
+ IDI_APPLICATION = 32512
33
+ IDI_HAND = 32513
34
+ IDI_QUESTION = 32514
35
+ IDI_EXCLAMATION = 32515
36
+ IDI_ASTERISK = 32516
37
+ IDI_WINLOGO = 32517
38
+ IDI_SHIELD = 32518
39
+ IDI_WARNING = IDI_EXCLAMATION
40
+ IDI_ERROR = IDI_HAND
41
+ IDI_INFORMATION = IDI_ASTERISK
42
+ #}
43
+
44
+ #{ IDC_xxx
45
+ IDC_ARROW = 32512
46
+ IDC_IBEAM = 32513
47
+ IDC_WAIT = 32514
48
+ IDC_CROSS = 32515
49
+ IDC_UPARROW = 32516
50
+ IDC_SIZE = 32640
51
+ IDC_ICON = 32641
52
+ IDC_SIZENWSE = 32642
53
+ IDC_SIZENESW = 32643
54
+ IDC_SIZEWE = 32644
55
+ IDC_SIZENS = 32645
56
+ IDC_SIZEALL = 32646
57
+ IDC_NO = 32648
58
+ IDC_HAND = 32649
59
+ IDC_APPSTARTING = 32650
60
+ IDC_HELP = 32651
61
+ #}
62
+
63
+ #{ CTLCOLOR_xxx
64
+ CTLCOLOR_MSGBOX = 0
65
+ CTLCOLOR_EDIT = 1
66
+ CTLCOLOR_LISTBOX = 2
67
+ CTLCOLOR_BTN = 3
68
+ CTLCOLOR_DLG = 4
69
+ CTLCOLOR_SCROLLBAR = 5
70
+ CTLCOLOR_STATIC = 6
71
+ CTLCOLOR_MAX = 7
72
+ #}
73
+
74
+ #{ COLOR_xxx
75
+ COLOR_SCROLLBAR = 0
76
+ COLOR_BACKGROUND = 1
77
+ COLOR_ACTIVECAPTION = 2
78
+ COLOR_INACTIVECAPTION = 3
79
+ COLOR_MENU = 4
80
+ COLOR_WINDOW = 5
81
+ COLOR_WINDOWFRAME = 6
82
+ COLOR_MENUTEXT = 7
83
+ COLOR_WINDOWTEXT = 8
84
+ COLOR_CAPTIONTEXT = 9
85
+ COLOR_ACTIVEBORDER = 10
86
+ COLOR_INACTIVEBORDER = 11
87
+ COLOR_APPWORKSPACE = 12
88
+ COLOR_HIGHLIGHT = 13
89
+ COLOR_HIGHLIGHTTEXT = 14
90
+ COLOR_BTNFACE = 15
91
+ COLOR_BTNSHADOW = 16
92
+ COLOR_GRAYTEXT = 17
93
+ COLOR_BTNTEXT = 18
94
+ COLOR_INACTIVECAPTIONTEXT = 19
95
+ COLOR_BTNHIGHLIGHT = 20
96
+ COLOR_3DDKSHADOW = 21
97
+ COLOR_3DLIGHT = 22
98
+ COLOR_INFOTEXT = 23
99
+ COLOR_INFOBK = 24
100
+ COLOR_HOTLIGHT = 26
101
+ COLOR_GRADIENTACTIVECAPTION = 27
102
+ COLOR_GRADIENTINACTIVECAPTION = 28
103
+ COLOR_MENUHILIGHT = 29
104
+ COLOR_MENUBAR = 30
105
+ COLOR_DESKTOP = COLOR_BACKGROUND
106
+ COLOR_3DFACE = COLOR_BTNFACE
107
+ COLOR_3DSHADOW = COLOR_BTNSHADOW
108
+ COLOR_3DHIGHLIGHT = COLOR_BTNHIGHLIGHT
109
+ COLOR_3DHILIGHT = COLOR_BTNHIGHLIGHT
110
+ COLOR_BTNHILIGHT = COLOR_BTNHIGHLIGHT
111
+ #}
112
+
113
+ #{ CS_xxx
114
+ CS_VREDRAW = 0x0001
115
+ CS_HREDRAW = 0x0002
116
+ CS_DBLCLKS = 0x0008
117
+ CS_OWNDC = 0x0020
118
+ CS_CLASSDC = 0x0040
119
+ CS_PARENTDC = 0x0080
120
+ CS_NOCLOSE = 0x0200
121
+ CS_SAVEBITS = 0x0800
122
+ CS_BYTEALIGNCLIENT = 0x1000
123
+ CS_BYTEALIGNWINDOW = 0x2000
124
+ CS_GLOBALCLASS = 0x4000
125
+ CS_IME = 0x00010000
126
+ CS_DROPSHADOW = 0x00020000
127
+ #}
128
+
129
+ #{ GCLP_xxx
130
+ GCLP_MENUNAME = -8
131
+ GCLP_HBRBACKGROUND = -10
132
+ GCLP_HCURSOR = -12
133
+ GCLP_HICON = -14
134
+ GCLP_HMODULE = -16
135
+ GCLP_WNDPROC = -24
136
+ GCLP_HICONSM = -34
137
+ #}
138
+
139
+ #{ WS_xxx
140
+ WS_OVERLAPPED = 0x00000000
141
+ WS_POPUP = 0x80000000
142
+ WS_CHILD = 0x40000000
143
+ WS_MINIMIZE = 0x20000000
144
+ WS_VISIBLE = 0x10000000
145
+ WS_DISABLED = 0x08000000
146
+ WS_CLIPSIBLINGS = 0x04000000
147
+ WS_CLIPCHILDREN = 0x02000000
148
+ WS_MAXIMIZE = 0x01000000
149
+ WS_CAPTION = 0x00C00000
150
+ WS_BORDER = 0x00800000
151
+ WS_DLGFRAME = 0x00400000
152
+ WS_VSCROLL = 0x00200000
153
+ WS_HSCROLL = 0x00100000
154
+ WS_SYSMENU = 0x00080000
155
+ WS_THICKFRAME = 0x00040000
156
+ WS_GROUP = 0x00020000
157
+ WS_TABSTOP = 0x00010000
158
+ WS_MINIMIZEBOX = 0x00020000
159
+ WS_MAXIMIZEBOX = 0x00010000
160
+ WS_TILED = WS_OVERLAPPED
161
+ WS_ICONIC = WS_MINIMIZE
162
+ WS_SIZEBOX = WS_THICKFRAME
163
+ WS_OVERLAPPEDWINDOW = WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX
164
+ WS_TILEDWINDOW = WS_OVERLAPPEDWINDOW
165
+ WS_POPUPWINDOW = WS_POPUP | WS_BORDER | WS_SYSMENU
166
+ WS_CHILDWINDOW = WS_CHILD
167
+ #}
168
+
169
+ #{ WS_EX_xxx
170
+ WS_EX_DLGMODALFRAME = 0x00000001
171
+ WS_EX_NOPARENTNOTIFY = 0x00000004
172
+ WS_EX_TOPMOST = 0x00000008
173
+ WS_EX_ACCEPTFILES = 0x00000010
174
+ WS_EX_TRANSPARENT = 0x00000020
175
+ WS_EX_MDICHILD = 0x00000040
176
+ WS_EX_TOOLWINDOW = 0x00000080
177
+ WS_EX_WINDOWEDGE = 0x00000100
178
+ WS_EX_CLIENTEDGE = 0x00000200
179
+ WS_EX_CONTEXTHELP = 0x00000400
180
+ WS_EX_RIGHT = 0x00001000
181
+ WS_EX_LEFT = 0x00000000
182
+ WS_EX_RTLREADING = 0x00002000
183
+ WS_EX_LTRREADING = 0x00000000
184
+ WS_EX_LEFTSCROLLBAR = 0x00004000
185
+ WS_EX_RIGHTSCROLLBAR = 0x00000000
186
+ WS_EX_CONTROLPARENT = 0x00010000
187
+ WS_EX_STATICEDGE = 0x00020000
188
+ WS_EX_APPWINDOW = 0x00040000
189
+ WS_EX_OVERLAPPEDWINDOW = WS_EX_WINDOWEDGE | WS_EX_CLIENTEDGE
190
+ WS_EX_PALETTEWINDOW = WS_EX_WINDOWEDGE | WS_EX_TOOLWINDOW | WS_EX_TOPMOST
191
+ WS_EX_LAYERED = 0x00080000
192
+ WS_EX_NOINHERITLAYOUT = 0x00100000
193
+ WS_EX_LAYOUTRTL = 0x00400000
194
+ WS_EX_COMPOSITED = 0x02000000
195
+ WS_EX_NOACTIVATE = 0x08000000
196
+ #}
197
+
198
+ #{ CW_xxx
199
+ CW_USEDEFAULT = -0x80000000
200
+ #}
201
+
202
+ #{ GWLP_xxx
203
+ GWLP_WNDPROC = -4
204
+ GWLP_HINSTANCE = -6
205
+ GWLP_HWNDPARENT = -8
206
+ GWLP_USERDATA = -21
207
+ GWLP_ID = -12
208
+ #}
209
+
210
+ #{ GW_xxx
211
+ GW_HWNDFIRST = 0
212
+ GW_HWNDLAST = 1
213
+ GW_HWNDNEXT = 2
214
+ GW_HWNDPREV = 3
215
+ GW_OWNER = 4
216
+ GW_CHILD = 5
217
+ GW_ENABLEDPOPUP = 6
218
+ GW_MAX = 6
219
+ #}
220
+
221
+ #{ SW_xxx
222
+ SW_HIDE = 0
223
+ SW_SHOWNORMAL = 1
224
+ SW_NORMAL = 1
225
+ SW_SHOWMINIMIZED = 2
226
+ SW_SHOWMAXIMIZED = 3
227
+ SW_MAXIMIZE = 3
228
+ SW_SHOWNOACTIVATE = 4
229
+ SW_SHOW = 5
230
+ SW_MINIMIZE = 6
231
+ SW_SHOWMINNOACTIVE = 7
232
+ SW_SHOWNA = 8
233
+ SW_RESTORE = 9
234
+ SW_SHOWDEFAULT = 10
235
+ SW_FORCEMINIMIZE = 11
236
+ SW_MAX = 11
237
+ SW_PARENTCLOSING = 1
238
+ SW_OTHERZOOM = 2
239
+ SW_PARENTOPENING = 3
240
+ SW_OTHERUNZOOM = 4
241
+ #}
242
+
243
+ #{ MB_xxx
244
+ MB_OK = 0x00000000
245
+ MB_OKCANCEL = 0x00000001
246
+ MB_ABORTRETRYIGNORE = 0x00000002
247
+ MB_YESNOCANCEL = 0x00000003
248
+ MB_YESNO = 0x00000004
249
+ MB_RETRYCANCEL = 0x00000005
250
+ MB_CANCELTRYCONTINUE = 0x00000006
251
+ MB_ICONHAND = 0x00000010
252
+ MB_ICONQUESTION = 0x00000020
253
+ MB_ICONEXCLAMATION = 0x00000030
254
+ MB_ICONASTERISK = 0x00000040
255
+ MB_USERICON = 0x00000080
256
+ MB_ICONWARNING = MB_ICONEXCLAMATION
257
+ MB_ICONERROR = MB_ICONHAND
258
+ MB_ICONINFORMATION = MB_ICONASTERISK
259
+ MB_ICONSTOP = MB_ICONHAND
260
+ MB_DEFBUTTON1 = 0x00000000
261
+ MB_DEFBUTTON2 = 0x00000100
262
+ MB_DEFBUTTON3 = 0x00000200
263
+ MB_DEFBUTTON4 = 0x00000300
264
+ MB_APPLMODAL = 0x00000000
265
+ MB_SYSTEMMODAL = 0x00001000
266
+ MB_TASKMODAL = 0x00002000
267
+ MB_HELP = 0x00004000
268
+ MB_NOFOCUS = 0x00008000
269
+ MB_SETFOREGROUND = 0x00010000
270
+ MB_DEFAULT_DESKTOP_ONLY = 0x00020000
271
+ MB_TOPMOST = 0x00040000
272
+ MB_RIGHT = 0x00080000
273
+ MB_RTLREADING = 0x00100000
274
+ MB_SERVICE_NOTIFICATION = 0x00200000
275
+ MB_TYPEMASK = 0x0000000F
276
+ MB_ICONMASK = 0x000000F0
277
+ MB_DEFMASK = 0x00000F00
278
+ MB_MODEMASK = 0x00003000
279
+ MB_MISCMASK = 0x0000C000
280
+ #}
281
+
282
+ #{ IDxxx
283
+ IDOK = 1
284
+ IDCANCEL = 2
285
+ IDABORT = 3
286
+ IDRETRY = 4
287
+ IDIGNORE = 5
288
+ IDYES = 6
289
+ IDNO = 7
290
+ IDCLOSE = 8
291
+ IDHELP = 9
292
+ IDTRYAGAIN = 10
293
+ IDCONTINUE = 11
294
+ IDTIMEOUT = 32000
295
+ #}
296
+
297
+ #{ DS_xxx
298
+ DS_ABSALIGN = 0x01
299
+ DS_SYSMODAL = 0x02
300
+ DS_LOCALEDIT = 0x20
301
+ DS_SETFONT = 0x40
302
+ DS_MODALFRAME = 0x80
303
+ DS_NOIDLEMSG = 0x100
304
+ DS_SETFOREGROUND = 0x200
305
+ DS_3DLOOK = 0x0004
306
+ DS_FIXEDSYS = 0x0008
307
+ DS_NOFAILCREATE = 0x0010
308
+ DS_CONTROL = 0x0400
309
+ DS_CENTER = 0x0800
310
+ DS_CENTERMOUSE = 0x1000
311
+ DS_CONTEXTHELP = 0x2000
312
+ DS_SHELLFONT = DS_SETFONT | DS_FIXEDSYS
313
+ DS_USEPIXELS = 0x8000
314
+ #}
315
+
316
+ #{ MF_xxx
317
+ MF_INSERT = 0x00000000
318
+ MF_CHANGE = 0x00000080
319
+ MF_APPEND = 0x00000100
320
+ MF_DELETE = 0x00000200
321
+ MF_REMOVE = 0x00001000
322
+ MF_BYCOMMAND = 0x00000000
323
+ MF_BYPOSITION = 0x00000400
324
+ MF_SEPARATOR = 0x00000800
325
+ MF_ENABLED = 0x00000000
326
+ MF_GRAYED = 0x00000001
327
+ MF_DISABLED = 0x00000002
328
+ MF_UNCHECKED = 0x00000000
329
+ MF_CHECKED = 0x00000008
330
+ MF_USECHECKBITMAPS = 0x00000200
331
+ MF_STRING = 0x00000000
332
+ MF_BITMAP = 0x00000004
333
+ MF_OWNERDRAW = 0x00000100
334
+ MF_POPUP = 0x00000010
335
+ MF_MENUBARBREAK = 0x00000020
336
+ MF_MENUBREAK = 0x00000040
337
+ MF_UNHILITE = 0x00000000
338
+ MF_HILITE = 0x00000080
339
+ MF_DEFAULT = 0x00001000
340
+ MF_SYSMENU = 0x00002000
341
+ MF_HELP = 0x00004000
342
+ MF_RIGHTJUSTIFY = 0x00004000
343
+ MF_MOUSESELECT = 0x00008000
344
+ #}
345
+
346
+ #{ Fxxx
347
+ FVIRTKEY = 1
348
+ FNOINVERT = 0x02
349
+ FSHIFT = 0x04
350
+ FCONTROL = 0x08
351
+ FALT = 0x10
352
+ #}
353
+
354
+ #{ VK_xxx
355
+ VK_LBUTTON = 0x01
356
+ VK_RBUTTON = 0x02
357
+ VK_CANCEL = 0x03
358
+ VK_MBUTTON = 0x04
359
+ VK_XBUTTON1 = 0x05
360
+ VK_XBUTTON2 = 0x06
361
+ VK_BACK = 0x08
362
+ VK_TAB = 0x09
363
+ VK_CLEAR = 0x0C
364
+ VK_RETURN = 0x0D
365
+ VK_SHIFT = 0x10
366
+ VK_CONTROL = 0x11
367
+ VK_MENU = 0x12
368
+ VK_PAUSE = 0x13
369
+ VK_CAPITAL = 0x14
370
+ VK_KANA = 0x15
371
+ VK_HANGEUL = 0x15
372
+ VK_HANGUL = 0x15
373
+ VK_JUNJA = 0x17
374
+ VK_FINAL = 0x18
375
+ VK_HANJA = 0x19
376
+ VK_KANJI = 0x19
377
+ VK_ESCAPE = 0x1B
378
+ VK_CONVERT = 0x1C
379
+ VK_NONCONVERT = 0x1D
380
+ VK_ACCEPT = 0x1E
381
+ VK_MODECHANGE = 0x1F
382
+ VK_SPACE = 0x20
383
+ VK_PRIOR = 0x21
384
+ VK_NEXT = 0x22
385
+ VK_END = 0x23
386
+ VK_HOME = 0x24
387
+ VK_LEFT = 0x25
388
+ VK_UP = 0x26
389
+ VK_RIGHT = 0x27
390
+ VK_DOWN = 0x28
391
+ VK_SELECT = 0x29
392
+ VK_PRINT = 0x2A
393
+ VK_EXECUTE = 0x2B
394
+ VK_SNAPSHOT = 0x2C
395
+ VK_INSERT = 0x2D
396
+ VK_DELETE = 0x2E
397
+ VK_HELP = 0x2F
398
+ VK_LWIN = 0x5B
399
+ VK_RWIN = 0x5C
400
+ VK_APPS = 0x5D
401
+ VK_SLEEP = 0x5F
402
+ VK_NUMPAD0 = 0x60
403
+ VK_NUMPAD1 = 0x61
404
+ VK_NUMPAD2 = 0x62
405
+ VK_NUMPAD3 = 0x63
406
+ VK_NUMPAD4 = 0x64
407
+ VK_NUMPAD5 = 0x65
408
+ VK_NUMPAD6 = 0x66
409
+ VK_NUMPAD7 = 0x67
410
+ VK_NUMPAD8 = 0x68
411
+ VK_NUMPAD9 = 0x69
412
+ VK_MULTIPLY = 0x6A
413
+ VK_ADD = 0x6B
414
+ VK_SEPARATOR = 0x6C
415
+ VK_SUBTRACT = 0x6D
416
+ VK_DECIMAL = 0x6E
417
+ VK_DIVIDE = 0x6F
418
+ VK_F1 = 0x70
419
+ VK_F2 = 0x71
420
+ VK_F3 = 0x72
421
+ VK_F4 = 0x73
422
+ VK_F5 = 0x74
423
+ VK_F6 = 0x75
424
+ VK_F7 = 0x76
425
+ VK_F8 = 0x77
426
+ VK_F9 = 0x78
427
+ VK_F10 = 0x79
428
+ VK_F11 = 0x7A
429
+ VK_F12 = 0x7B
430
+ VK_F13 = 0x7C
431
+ VK_F14 = 0x7D
432
+ VK_F15 = 0x7E
433
+ VK_F16 = 0x7F
434
+ VK_F17 = 0x80
435
+ VK_F18 = 0x81
436
+ VK_F19 = 0x82
437
+ VK_F20 = 0x83
438
+ VK_F21 = 0x84
439
+ VK_F22 = 0x85
440
+ VK_F23 = 0x86
441
+ VK_F24 = 0x87
442
+ VK_NUMLOCK = 0x90
443
+ VK_SCROLL = 0x91
444
+ VK_OEM_NEC_EQUAL = 0x92
445
+ VK_OEM_FJ_JISHO = 0x92
446
+ VK_OEM_FJ_MASSHOU = 0x93
447
+ VK_OEM_FJ_TOUROKU = 0x94
448
+ VK_OEM_FJ_LOYA = 0x95
449
+ VK_OEM_FJ_ROYA = 0x96
450
+ VK_LSHIFT = 0xA0
451
+ VK_RSHIFT = 0xA1
452
+ VK_LCONTROL = 0xA2
453
+ VK_RCONTROL = 0xA3
454
+ VK_LMENU = 0xA4
455
+ VK_RMENU = 0xA5
456
+ VK_BROWSER_BACK = 0xA6
457
+ VK_BROWSER_FORWARD = 0xA7
458
+ VK_BROWSER_REFRESH = 0xA8
459
+ VK_BROWSER_STOP = 0xA9
460
+ VK_BROWSER_SEARCH = 0xAA
461
+ VK_BROWSER_FAVORITES = 0xAB
462
+ VK_BROWSER_HOME = 0xAC
463
+ VK_VOLUME_MUTE = 0xAD
464
+ VK_VOLUME_DOWN = 0xAE
465
+ VK_VOLUME_UP = 0xAF
466
+ VK_MEDIA_NEXT_TRACK = 0xB0
467
+ VK_MEDIA_PREV_TRACK = 0xB1
468
+ VK_MEDIA_STOP = 0xB2
469
+ VK_MEDIA_PLAY_PAUSE = 0xB3
470
+ VK_LAUNCH_MAIL = 0xB4
471
+ VK_LAUNCH_MEDIA_SELECT = 0xB5
472
+ VK_LAUNCH_APP1 = 0xB6
473
+ VK_LAUNCH_APP2 = 0xB7
474
+ VK_OEM_1 = 0xBA
475
+ VK_OEM_PLUS = 0xBB
476
+ VK_OEM_COMMA = 0xBC
477
+ VK_OEM_MINUS = 0xBD
478
+ VK_OEM_PERIOD = 0xBE
479
+ VK_OEM_2 = 0xBF
480
+ VK_OEM_3 = 0xC0
481
+ VK_OEM_4 = 0xDB
482
+ VK_OEM_5 = 0xDC
483
+ VK_OEM_6 = 0xDD
484
+ VK_OEM_7 = 0xDE
485
+ VK_OEM_8 = 0xDF
486
+ VK_OEM_AX = 0xE1
487
+ VK_OEM_102 = 0xE2
488
+ VK_ICO_HELP = 0xE3
489
+ VK_ICO_00 = 0xE4
490
+ VK_PROCESSKEY = 0xE5
491
+ VK_ICO_CLEAR = 0xE6
492
+ VK_PACKET = 0xE7
493
+ VK_OEM_RESET = 0xE9
494
+ VK_OEM_JUMP = 0xEA
495
+ VK_OEM_PA1 = 0xEB
496
+ VK_OEM_PA2 = 0xEC
497
+ VK_OEM_PA3 = 0xED
498
+ VK_OEM_WSCTRL = 0xEE
499
+ VK_OEM_CUSEL = 0xEF
500
+ VK_OEM_ATTN = 0xF0
501
+ VK_OEM_FINISH = 0xF1
502
+ VK_OEM_COPY = 0xF2
503
+ VK_OEM_AUTO = 0xF3
504
+ VK_OEM_ENLW = 0xF4
505
+ VK_OEM_BACKTAB = 0xF5
506
+ VK_ATTN = 0xF6
507
+ VK_CRSEL = 0xF7
508
+ VK_EXSEL = 0xF8
509
+ VK_EREOF = 0xF9
510
+ VK_PLAY = 0xFA
511
+ VK_ZOOM = 0xFB
512
+ VK_NONAME = 0xFC
513
+ VK_PA1 = 0xFD
514
+ VK_OEM_CLEAR = 0xFE
515
+ #}
516
+
517
+ #{ WM_xxx
518
+ WM_NULL = 0x0000
519
+ WM_CREATE = 0x0001
520
+ WM_DESTROY = 0x0002
521
+ WM_MOVE = 0x0003
522
+ WM_SIZE = 0x0005
523
+ WM_ACTIVATE = 0x0006
524
+ WM_SETFOCUS = 0x0007
525
+ WM_KILLFOCUS = 0x0008
526
+ WM_ENABLE = 0x000A
527
+ WM_SETREDRAW = 0x000B
528
+ WM_SETTEXT = 0x000C
529
+ WM_GETTEXT = 0x000D
530
+ WM_GETTEXTLENGTH = 0x000E
531
+ WM_PAINT = 0x000F
532
+ WM_CLOSE = 0x0010
533
+ WM_QUERYENDSESSION = 0x0011
534
+ WM_QUERYOPEN = 0x0013
535
+ WM_ENDSESSION = 0x0016
536
+ WM_QUIT = 0x0012
537
+ WM_ERASEBKGND = 0x0014
538
+ WM_SYSCOLORCHANGE = 0x0015
539
+ WM_SHOWWINDOW = 0x0018
540
+ WM_WININICHANGE = 0x001A
541
+ WM_SETTINGCHANGE = WM_WININICHANGE
542
+ WM_DEVMODECHANGE = 0x001B
543
+ WM_ACTIVATEAPP = 0x001C
544
+ WM_FONTCHANGE = 0x001D
545
+ WM_TIMECHANGE = 0x001E
546
+ WM_CANCELMODE = 0x001F
547
+ WM_SETCURSOR = 0x0020
548
+ WM_MOUSEACTIVATE = 0x0021
549
+ WM_CHILDACTIVATE = 0x0022
550
+ WM_QUEUESYNC = 0x0023
551
+ WM_GETMINMAXINFO = 0x0024
552
+ WM_PAINTICON = 0x0026
553
+ WM_ICONERASEBKGND = 0x0027
554
+ WM_NEXTDLGCTL = 0x0028
555
+ WM_SPOOLERSTATUS = 0x002A
556
+ WM_DRAWITEM = 0x002B
557
+ WM_MEASUREITEM = 0x002C
558
+ WM_DELETEITEM = 0x002D
559
+ WM_VKEYTOITEM = 0x002E
560
+ WM_CHARTOITEM = 0x002F
561
+ WM_SETFONT = 0x0030
562
+ WM_GETFONT = 0x0031
563
+ WM_SETHOTKEY = 0x0032
564
+ WM_GETHOTKEY = 0x0033
565
+ WM_QUERYDRAGICON = 0x0037
566
+ WM_COMPAREITEM = 0x0039
567
+ WM_GETOBJECT = 0x003D
568
+ WM_COMPACTING = 0x0041
569
+ WM_WINDOWPOSCHANGING = 0x0046
570
+ WM_WINDOWPOSCHANGED = 0x0047
571
+ WM_POWER = 0x0048
572
+ WM_COPYDATA = 0x004A
573
+ WM_CANCELJOURNAL = 0x004B
574
+ WM_NOTIFY = 0x004E
575
+ WM_INPUTLANGCHANGEREQUEST = 0x0050
576
+ WM_INPUTLANGCHANGE = 0x0051
577
+ WM_TCARD = 0x0052
578
+ WM_HELP = 0x0053
579
+ WM_USERCHANGED = 0x0054
580
+ WM_NOTIFYFORMAT = 0x0055
581
+ WM_CONTEXTMENU = 0x007B
582
+ WM_STYLECHANGING = 0x007C
583
+ WM_STYLECHANGED = 0x007D
584
+ WM_DISPLAYCHANGE = 0x007E
585
+ WM_GETICON = 0x007F
586
+ WM_SETICON = 0x0080
587
+ WM_NCCREATE = 0x0081
588
+ WM_NCDESTROY = 0x0082
589
+ WM_NCCALCSIZE = 0x0083
590
+ WM_NCHITTEST = 0x0084
591
+ WM_NCPAINT = 0x0085
592
+ WM_NCACTIVATE = 0x0086
593
+ WM_GETDLGCODE = 0x0087
594
+ WM_SYNCPAINT = 0x0088
595
+ WM_NCMOUSEMOVE = 0x00A0
596
+ WM_NCLBUTTONDOWN = 0x00A1
597
+ WM_NCLBUTTONUP = 0x00A2
598
+ WM_NCLBUTTONDBLCLK = 0x00A3
599
+ WM_NCRBUTTONDOWN = 0x00A4
600
+ WM_NCRBUTTONUP = 0x00A5
601
+ WM_NCRBUTTONDBLCLK = 0x00A6
602
+ WM_NCMBUTTONDOWN = 0x00A7
603
+ WM_NCMBUTTONUP = 0x00A8
604
+ WM_NCMBUTTONDBLCLK = 0x00A9
605
+ WM_NCXBUTTONDOWN = 0x00AB
606
+ WM_NCXBUTTONUP = 0x00AC
607
+ WM_NCXBUTTONDBLCLK = 0x00AD
608
+ WM_INPUT_DEVICE_CHANGE = 0x00FE
609
+ WM_INPUT = 0x00FF
610
+ WM_KEYFIRST = 0x0100
611
+ WM_KEYDOWN = 0x0100
612
+ WM_KEYUP = 0x0101
613
+ WM_CHAR = 0x0102
614
+ WM_DEADCHAR = 0x0103
615
+ WM_SYSKEYDOWN = 0x0104
616
+ WM_SYSKEYUP = 0x0105
617
+ WM_SYSCHAR = 0x0106
618
+ WM_SYSDEADCHAR = 0x0107
619
+ WM_UNICHAR = 0x0109
620
+ WM_KEYLAST = 0x0109
621
+ WM_IME_STARTCOMPOSITION = 0x010D
622
+ WM_IME_ENDCOMPOSITION = 0x010E
623
+ WM_IME_COMPOSITION = 0x010F
624
+ WM_IME_KEYLAST = 0x010F
625
+ WM_INITDIALOG = 0x0110
626
+ WM_COMMAND = 0x0111
627
+ WM_SYSCOMMAND = 0x0112
628
+ WM_TIMER = 0x0113
629
+ WM_HSCROLL = 0x0114
630
+ WM_VSCROLL = 0x0115
631
+ WM_INITMENU = 0x0116
632
+ WM_INITMENUPOPUP = 0x0117
633
+ WM_GESTURE = 0x0119
634
+ WM_GESTURENOTIFY = 0x011A
635
+ WM_MENUSELECT = 0x011F
636
+ WM_MENUCHAR = 0x0120
637
+ WM_ENTERIDLE = 0x0121
638
+ WM_MENURBUTTONUP = 0x0122
639
+ WM_MENUDRAG = 0x0123
640
+ WM_MENUGETOBJECT = 0x0124
641
+ WM_UNINITMENUPOPUP = 0x0125
642
+ WM_MENUCOMMAND = 0x0126
643
+ WM_CHANGEUISTATE = 0x0127
644
+ WM_UPDATEUISTATE = 0x0128
645
+ WM_QUERYUISTATE = 0x0129
646
+ WM_CTLCOLORMSGBOX = 0x0132
647
+ WM_CTLCOLOREDIT = 0x0133
648
+ WM_CTLCOLORLISTBOX = 0x0134
649
+ WM_CTLCOLORBTN = 0x0135
650
+ WM_CTLCOLORDLG = 0x0136
651
+ WM_CTLCOLORSCROLLBAR = 0x0137
652
+ WM_CTLCOLORSTATIC = 0x0138
653
+ MN_GETHMENU = 0x01E1
654
+ WM_MOUSEFIRST = 0x0200
655
+ WM_MOUSEMOVE = 0x0200
656
+ WM_LBUTTONDOWN = 0x0201
657
+ WM_LBUTTONUP = 0x0202
658
+ WM_LBUTTONDBLCLK = 0x0203
659
+ WM_RBUTTONDOWN = 0x0204
660
+ WM_RBUTTONUP = 0x0205
661
+ WM_RBUTTONDBLCLK = 0x0206
662
+ WM_MBUTTONDOWN = 0x0207
663
+ WM_MBUTTONUP = 0x0208
664
+ WM_MBUTTONDBLCLK = 0x0209
665
+ WM_MOUSEWHEEL = 0x020A
666
+ WM_XBUTTONDOWN = 0x020B
667
+ WM_XBUTTONUP = 0x020C
668
+ WM_XBUTTONDBLCLK = 0x020D
669
+ WM_MOUSEHWHEEL = 0x020E
670
+ WM_MOUSELAST = 0x020E
671
+ WM_PARENTNOTIFY = 0x0210
672
+ WM_ENTERMENULOOP = 0x0211
673
+ WM_EXITMENULOOP = 0x0212
674
+ WM_NEXTMENU = 0x0213
675
+ WM_SIZING = 0x0214
676
+ WM_CAPTURECHANGED = 0x0215
677
+ WM_MOVING = 0x0216
678
+ WM_POWERBROADCAST = 0x0218
679
+ WM_DEVICECHANGE = 0x0219
680
+ WM_MDICREATE = 0x0220
681
+ WM_MDIDESTROY = 0x0221
682
+ WM_MDIACTIVATE = 0x0222
683
+ WM_MDIRESTORE = 0x0223
684
+ WM_MDINEXT = 0x0224
685
+ WM_MDIMAXIMIZE = 0x0225
686
+ WM_MDITILE = 0x0226
687
+ WM_MDICASCADE = 0x0227
688
+ WM_MDIICONARRANGE = 0x0228
689
+ WM_MDIGETACTIVE = 0x0229
690
+ WM_MDISETMENU = 0x0230
691
+ WM_ENTERSIZEMOVE = 0x0231
692
+ WM_EXITSIZEMOVE = 0x0232
693
+ WM_DROPFILES = 0x0233
694
+ WM_MDIREFRESHMENU = 0x0234
695
+ WM_TOUCH = 0x0240
696
+ WM_IME_SETCONTEXT = 0x0281
697
+ WM_IME_NOTIFY = 0x0282
698
+ WM_IME_CONTROL = 0x0283
699
+ WM_IME_COMPOSITIONFULL = 0x0284
700
+ WM_IME_SELECT = 0x0285
701
+ WM_IME_CHAR = 0x0286
702
+ WM_IME_REQUEST = 0x0288
703
+ WM_IME_KEYDOWN = 0x0290
704
+ WM_IME_KEYUP = 0x0291
705
+ WM_MOUSEHOVER = 0x02A1
706
+ WM_MOUSELEAVE = 0x02A3
707
+ WM_NCMOUSEHOVER = 0x02A0
708
+ WM_NCMOUSELEAVE = 0x02A2
709
+ WM_WTSSESSION_CHANGE = 0x02B1
710
+ WM_TABLET_FIRST = 0x02c0
711
+ WM_TABLET_LAST = 0x02df
712
+ WM_CUT = 0x0300
713
+ WM_COPY = 0x0301
714
+ WM_PASTE = 0x0302
715
+ WM_CLEAR = 0x0303
716
+ WM_UNDO = 0x0304
717
+ WM_RENDERFORMAT = 0x0305
718
+ WM_RENDERALLFORMATS = 0x0306
719
+ WM_DESTROYCLIPBOARD = 0x0307
720
+ WM_DRAWCLIPBOARD = 0x0308
721
+ WM_PAINTCLIPBOARD = 0x0309
722
+ WM_VSCROLLCLIPBOARD = 0x030A
723
+ WM_SIZECLIPBOARD = 0x030B
724
+ WM_ASKCBFORMATNAME = 0x030C
725
+ WM_CHANGECBCHAIN = 0x030D
726
+ WM_HSCROLLCLIPBOARD = 0x030E
727
+ WM_QUERYNEWPALETTE = 0x030F
728
+ WM_PALETTEISCHANGING = 0x0310
729
+ WM_PALETTECHANGED = 0x0311
730
+ WM_HOTKEY = 0x0312
731
+ WM_PRINT = 0x0317
732
+ WM_PRINTCLIENT = 0x0318
733
+ WM_APPCOMMAND = 0x0319
734
+ WM_THEMECHANGED = 0x031A
735
+ WM_CLIPBOARDUPDATE = 0x031D
736
+ WM_DWMCOMPOSITIONCHANGED = 0x031E
737
+ WM_DWMNCRENDERINGCHANGED = 0x031F
738
+ WM_DWMCOLORIZATIONCOLORCHANGED = 0x0320
739
+ WM_DWMWINDOWMAXIMIZEDCHANGE = 0x0321
740
+ WM_DWMSENDICONICTHUMBNAIL = 0x0323
741
+ WM_DWMSENDICONICLIVEPREVIEWBITMAP = 0x0326
742
+ WM_GETTITLEBARINFOEX = 0x033F
743
+ WM_HANDHELDFIRST = 0x0358
744
+ WM_HANDHELDLAST = 0x035F
745
+ WM_AFXFIRST = 0x0360
746
+ WM_AFXLAST = 0x037F
747
+ WM_PENWINFIRST = 0x0380
748
+ WM_PENWINLAST = 0x038F
749
+ WM_APP = 0x8000
750
+ WM_USER = 0x0400
751
+ #}
752
+
753
+ #{ ICC_xxx
754
+ ICC_LISTVIEW_CLASSES = 0x00000001
755
+ ICC_TREEVIEW_CLASSES = 0x00000002
756
+ ICC_BAR_CLASSES = 0x00000004
757
+ ICC_TAB_CLASSES = 0x00000008
758
+ ICC_UPDOWN_CLASS = 0x00000010
759
+ ICC_PROGRESS_CLASS = 0x00000020
760
+ ICC_HOTKEY_CLASS = 0x00000040
761
+ ICC_ANIMATE_CLASS = 0x00000080
762
+ ICC_WIN95_CLASSES = 0x000000FF
763
+ ICC_DATE_CLASSES = 0x00000100
764
+ ICC_USEREX_CLASSES = 0x00000200
765
+ ICC_COOL_CLASSES = 0x00000400
766
+ ICC_INTERNET_CLASSES = 0x00000800
767
+ ICC_PAGESCROLLER_CLASS = 0x00001000
768
+ ICC_NATIVEFNTCTL_CLASS = 0x00002000
769
+ ICC_STANDARD_CLASSES = 0x00004000
770
+ ICC_LINK_CLASS = 0x00008000
771
+ #}
772
+
773
+ #{ OFN_xxx
774
+ OFN_READONLY = 0x00000001
775
+ OFN_OVERWRITEPROMPT = 0x00000002
776
+ OFN_HIDEREADONLY = 0x00000004
777
+ OFN_NOCHANGEDIR = 0x00000008
778
+ OFN_SHOWHELP = 0x00000010
779
+ OFN_ENABLEHOOK = 0x00000020
780
+ OFN_ENABLETEMPLATE = 0x00000040
781
+ OFN_ENABLETEMPLATEHANDLE = 0x00000080
782
+ OFN_NOVALIDATE = 0x00000100
783
+ OFN_ALLOWMULTISELECT = 0x00000200
784
+ OFN_EXTENSIONDIFFERENT = 0x00000400
785
+ OFN_PATHMUSTEXIST = 0x00000800
786
+ OFN_FILEMUSTEXIST = 0x00001000
787
+ OFN_CREATEPROMPT = 0x00002000
788
+ OFN_SHAREAWARE = 0x00004000
789
+ OFN_NOREADONLYRETURN = 0x00008000
790
+ OFN_NOTESTFILECREATE = 0x00010000
791
+ OFN_NONETWORKBUTTON = 0x00020000
792
+ OFN_NOLONGNAMES = 0x00040000
793
+ OFN_EXPLORER = 0x00080000
794
+ OFN_NODEREFERENCELINKS = 0x00100000
795
+ OFN_LONGNAMES = 0x00200000
796
+ OFN_ENABLEINCLUDENOTIFY = 0x00400000
797
+ OFN_ENABLESIZING = 0x00800000
798
+ OFN_DONTADDTORECENT = 0x02000000
799
+ OFN_FORCESHOWHIDDEN = 0x10000000
800
+ OFN_SHAREFALLTHROUGH = 2
801
+ OFN_SHARENOWARN = 1
802
+ OFN_SHAREWARN = 0
803
+ #}
804
+
805
+ #{ OFN_EX_xxx
806
+ OFN_EX_NOPLACESBAR = 0x00000001
807
+ #}
808
+
809
+ #{ BIF_xxx
810
+ BIF_RETURNONLYFSDIRS = 0x00000001
811
+ BIF_DONTGOBELOWDOMAIN = 0x00000002
812
+ BIF_STATUSTEXT = 0x00000004
813
+ BIF_RETURNFSANCESTORS = 0x00000008
814
+ BIF_EDITBOX = 0x00000010
815
+ BIF_VALIDATE = 0x00000020
816
+ BIF_NEWDIALOGSTYLE = 0x00000040
817
+ BIF_USENEWUI = BIF_NEWDIALOGSTYLE | BIF_EDITBOX
818
+ BIF_BROWSEINCLUDEURLS = 0x00000080
819
+ BIF_UAHINT = 0x00000100
820
+ BIF_NONEWFOLDERBUTTON = 0x00000200
821
+ BIF_NOTRANSLATETARGETS = 0x00000400
822
+ BIF_BROWSEFORCOMPUTER = 0x00001000
823
+ BIF_BROWSEFORPRINTER = 0x00002000
824
+ BIF_BROWSEINCLUDEFILES = 0x00004000
825
+ BIF_SHAREABLE = 0x00008000
826
+ BIF_BROWSEFILEJUNCTIONS = 0x00010000
827
+ #}