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.
- data/Examples/Events.rbw +19 -0
- data/Examples/Events1.rbw +19 -0
- data/Examples/FileOpen.rbw +11 -0
- data/Examples/FileSave.rbw +11 -0
- data/Examples/Folder.rbw +11 -0
- data/Examples/Hello.rbw +3 -0
- data/Lib/Application.rb +128 -0
- data/Lib/Common-Controls.manifest +8 -0
- data/Lib/CommonControls.rb +13 -0
- data/Lib/CommonDialogs.rb +106 -0
- data/Lib/WinAPI/Constants.rb +827 -0
- data/Lib/WinAPI/Functions.rb +145 -0
- data/Lib/WinAPI/Types.rb +223 -0
- data/Lib/Window.rb +75 -0
- data/Splice.rb +10 -0
- metadata +77 -0
data/Examples/Events.rbw
ADDED
@@ -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
|
data/Examples/Folder.rbw
ADDED
data/Examples/Hello.rbw
ADDED
data/Lib/Application.rb
ADDED
@@ -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,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
|
+
#}
|