Radoslav-Splice 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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
+ #}