fzeet 0.6.5 → 0.6.6
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/LICENSE_CEF +29 -0
- data/checks/Bstr.rb +14 -0
- data/checks/Decimal.rb +27 -0
- data/checks/OSVERSIONINFOEX.rb +14 -0
- data/checks/Point.rb +65 -0
- data/checks/Rect.rb +104 -0
- data/checks/RunAll.rb +2 -0
- data/checks/SafeArray.rb +27 -0
- data/checks/Size.rb +45 -0
- data/checks/SystemTime.rb +43 -0
- data/checks/Variant.rb +160 -0
- data/examples/Control/DateTimePicker.rbw +1 -1
- data/examples/Control/MonthCalendar.rbw +1 -1
- data/examples/Control/{WebBrowser.rbw → WebBrowser/WebBrowser.rbw} +2 -2
- data/examples/Control/{WebBrowser1.rbw → WebBrowser/WebBrowser1.rbw} +0 -0
- data/examples/Control/WebBrowser/WebBrowser2.rbw +24 -0
- data/examples/Control/{WebBrowser3.rbw → WebBrowser/WebBrowser3.rbw} +0 -0
- data/examples/Control/{WebBrowser4.rbw → WebBrowser/WebBrowser4.rbw} +8 -3
- data/examples/Control/{WebBrowser4Sinatra.rb → WebBrowser/WebBrowser4Sinatra.rb} +0 -0
- data/examples/Control/{WebBrowser5.rbw → WebBrowser/WebBrowser5.rbw} +4 -2
- data/examples/Control/WebBrowser/jQueryUI.html +53 -0
- data/examples/Control/WebBrowser/jQueryUI.rbw +26 -0
- data/examples/MDI.rbw +2 -2
- data/examples/Raw/UIRibbon/Command.rbw +3 -3
- data/examples/Raw/UIRibbon/Minimal.rbw +3 -3
- data/examples/Version.rbw +1 -1
- data/lib/fzeet.rb +22 -7
- data/lib/fzeet/windows.rb +82 -5
- data/lib/fzeet/windows/com.rb +1 -318
- data/lib/fzeet/windows/com/Common.rb +318 -0
- data/lib/fzeet/windows/comctl.rb +1 -1
- data/lib/fzeet/windows/comctl/ComboBoxEx.rb +32 -0
- data/lib/fzeet/windows/comctl/DateTimePicker.rb +35 -0
- data/lib/fzeet/windows/comctl/Header.rb +61 -1
- data/lib/fzeet/windows/comctl/ListView.rb +133 -3
- data/lib/fzeet/windows/comctl/MonthCalendar.rb +35 -0
- data/lib/fzeet/windows/comctl/ProgressBar.rb +37 -0
- data/lib/fzeet/windows/comctl/PropertySheet.rb +50 -2
- data/lib/fzeet/windows/comctl/SysLink.rb +37 -0
- data/lib/fzeet/windows/comctl/Tab.rb +56 -0
- data/lib/fzeet/windows/comctl/TreeView.rb +81 -2
- data/lib/fzeet/windows/comctl/UpDown.rb +33 -0
- data/lib/fzeet/windows/comdlg.rb +1 -0
- data/lib/fzeet/windows/comdlg/ColorDialog.rb +41 -0
- data/lib/fzeet/windows/comdlg/Common.rb +87 -0
- data/lib/fzeet/windows/comdlg/FileDialog.rb +133 -0
- data/lib/fzeet/windows/comdlg/FindReplaceDialog.rb +102 -0
- data/lib/fzeet/windows/comdlg/FontDialog.rb +36 -0
- data/lib/fzeet/windows/comdlg/PrintDialog.rb +72 -0
- data/lib/fzeet/{Dialog → windows/comdlg}/ShellFileDialog.rb +0 -0
- data/lib/fzeet/windows/core.rb +5 -0
- data/lib/fzeet/windows/core/Common.rb +324 -0
- data/lib/fzeet/windows/core/Point.rb +42 -0
- data/lib/fzeet/windows/core/Rect.rb +114 -0
- data/lib/fzeet/windows/core/Size.rb +34 -0
- data/lib/fzeet/windows/core/SystemTime.rb +46 -0
- data/lib/fzeet/windows/core/Version.rb +57 -0
- data/lib/fzeet/windows/gdi.rb +1 -62
- data/lib/fzeet/windows/gdi/Common.rb +40 -0
- data/lib/fzeet/windows/gdi/Font.rb +64 -0
- data/lib/fzeet/windows/kernel.rb +1 -92
- data/lib/fzeet/windows/kernel/Common.rb +92 -0
- data/lib/fzeet/windows/libc.rb +1 -1
- data/lib/fzeet/windows/libcef.rb +1 -0
- data/lib/fzeet/windows/mshtml.rb +1 -1135
- data/lib/fzeet/windows/mshtml/Common.rb +1135 -0
- data/lib/fzeet/windows/ole.rb +1 -561
- data/lib/fzeet/windows/ole/Common.rb +112 -0
- data/lib/fzeet/windows/ole/PropVariant.rb +141 -0
- data/lib/fzeet/windows/oleaut.rb +3 -0
- data/lib/fzeet/windows/oleaut/Bstr.rb +39 -0
- data/lib/fzeet/windows/oleaut/Common.rb +187 -0
- data/lib/fzeet/windows/oleaut/SafeArray.rb +104 -0
- data/lib/fzeet/windows/oleaut/Variant.rb +269 -0
- data/lib/fzeet/windows/scintilla.rb +115 -1
- data/lib/fzeet/windows/{SciLexer.dll → scintilla/SciLexer.dll} +0 -0
- data/lib/fzeet/windows/shdocvw.rb +150 -0
- data/lib/fzeet/windows/shell.rb +1 -1
- data/lib/fzeet/windows/shell/Common.rb +94 -2
- data/lib/fzeet/windows/shlwapi.rb +1 -1
- data/lib/fzeet/windows/uiribbon.rb +416 -0
- data/lib/fzeet/windows/urlmon.rb +2 -2
- data/lib/fzeet/windows/user.rb +20 -0
- data/lib/fzeet/windows/user/Accelerator.rb +45 -0
- data/lib/fzeet/windows/user/Common.rb +3 -2
- data/lib/fzeet/windows/user/Control/Button.rb +54 -0
- data/lib/fzeet/windows/user/Control/ComboBox.rb +44 -1
- data/lib/fzeet/windows/user/Control/Common.rb +88 -1
- data/lib/fzeet/windows/user/Control/Edit.rb +50 -0
- data/lib/fzeet/windows/user/Control/ListBox.rb +69 -0
- data/lib/fzeet/windows/user/Control/Static.rb +31 -0
- data/lib/fzeet/windows/user/Menu.rb +130 -0
- data/lib/fzeet/windows/user/Message.rb +9 -0
- data/lib/fzeet/windows/user/MessageBox.rb +47 -0
- data/lib/fzeet/windows/user/SystemParametersInfo.rb +1 -1
- data/lib/fzeet/windows/user/Window.rb +5 -463
- data/lib/fzeet/{Window → windows/user/Window}/Common.rb +460 -0
- data/lib/fzeet/{Window → windows/user/Window}/Container.rb +0 -0
- data/lib/fzeet/{Window → windows/user/Window}/Dialog.rb +0 -0
- data/lib/fzeet/{Window → windows/user/Window}/MDI.rb +0 -0
- data/lib/fzeet/{Window → windows/user/Window}/View.rb +0 -0
- data/lib/fzeet/{Window → windows/user/Window}/Window.rb +0 -0
- data/lib/fzeet/{Window → windows/user/Window}/WindowMethods.rb +1 -1
- metadata +55 -61
- data/examples/Control/WebBrowser2.rbw +0 -39
- data/lib/fzeet/Accelerator.rb +0 -48
- data/lib/fzeet/Application.rb +0 -71
- data/lib/fzeet/Common.rb +0 -350
- data/lib/fzeet/Control.rb +0 -19
- data/lib/fzeet/Control/Button.rb +0 -57
- data/lib/fzeet/Control/ComboBox.rb +0 -46
- data/lib/fzeet/Control/ComboBoxEx.rb +0 -35
- data/lib/fzeet/Control/Common.rb +0 -89
- data/lib/fzeet/Control/DateTimePicker.rb +0 -38
- data/lib/fzeet/Control/Edit.rb +0 -53
- data/lib/fzeet/Control/ExplorerBrowser.rb +0 -66
- data/lib/fzeet/Control/Header.rb +0 -63
- data/lib/fzeet/Control/ListBox.rb +0 -72
- data/lib/fzeet/Control/ListView.rb +0 -133
- data/lib/fzeet/Control/MonthCalendar.rb +0 -38
- data/lib/fzeet/Control/ProgressBar.rb +0 -40
- data/lib/fzeet/Control/PropertySheet.rb +0 -51
- data/lib/fzeet/Control/Scintilla.rb +0 -117
- data/lib/fzeet/Control/Static.rb +0 -34
- data/lib/fzeet/Control/SysLink.rb +0 -40
- data/lib/fzeet/Control/Tab.rb +0 -59
- data/lib/fzeet/Control/TreeView.rb +0 -82
- data/lib/fzeet/Control/UpDown.rb +0 -36
- data/lib/fzeet/Control/WebBrowser.rb +0 -153
- data/lib/fzeet/Dialog.rb +0 -6
- data/lib/fzeet/Dialog/ColorDialog.rb +0 -44
- data/lib/fzeet/Dialog/Common.rb +0 -89
- data/lib/fzeet/Dialog/FileDialog.rb +0 -136
- data/lib/fzeet/Dialog/FindReplaceDialog.rb +0 -105
- data/lib/fzeet/Dialog/FontDialog.rb +0 -39
- data/lib/fzeet/Dialog/PrintDialog.rb +0 -75
- data/lib/fzeet/Menu.rb +0 -133
- data/lib/fzeet/UIRibbon.rb +0 -417
- data/lib/fzeet/Window.rb +0 -5
- data/lib/fzeet/windows/common.rb +0 -244
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
require_relative '../com'
|
|
2
|
+
|
|
3
|
+
module Fzeet
|
|
4
|
+
module Windows
|
|
5
|
+
ffi_lib 'ole32'
|
|
6
|
+
ffi_convention :stdcall
|
|
7
|
+
|
|
8
|
+
attach_function :OleInitialize, [:pointer], :long
|
|
9
|
+
attach_function :OleUninitialize, [], :void
|
|
10
|
+
|
|
11
|
+
def InitializeOle
|
|
12
|
+
DetonateHresult(:OleInitialize, nil)
|
|
13
|
+
|
|
14
|
+
at_exit { OleUninitialize() }
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
module_function :InitializeOle
|
|
18
|
+
|
|
19
|
+
attach_function :CoTaskMemAlloc, [:ulong], :pointer
|
|
20
|
+
attach_function :CoTaskMemFree, [:pointer], :void
|
|
21
|
+
|
|
22
|
+
class LARGE_INTEGER < FFI::Union
|
|
23
|
+
include AnonymousSupport
|
|
24
|
+
|
|
25
|
+
layout \
|
|
26
|
+
:_, Class.new(FFI::Struct) {
|
|
27
|
+
layout \
|
|
28
|
+
:LowPart, :ulong,
|
|
29
|
+
:HighPart, :long
|
|
30
|
+
},
|
|
31
|
+
|
|
32
|
+
:QuadPart, :long_long
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
class ULARGE_INTEGER < FFI::Union
|
|
36
|
+
include AnonymousSupport
|
|
37
|
+
|
|
38
|
+
layout \
|
|
39
|
+
:_, Class.new(FFI::Struct) {
|
|
40
|
+
layout \
|
|
41
|
+
:LowPart, :ulong,
|
|
42
|
+
:HighPart, :ulong
|
|
43
|
+
},
|
|
44
|
+
|
|
45
|
+
:QuadPart, :ulong_long
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
class FILETIME < FFI::Struct
|
|
49
|
+
layout \
|
|
50
|
+
:dwLowDateTime, :ulong,
|
|
51
|
+
:dwHighDateTime, :ulong
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
class BSTRBLOB < FFI::Struct
|
|
55
|
+
layout \
|
|
56
|
+
:cbSize, :ulong,
|
|
57
|
+
:pData, :pointer
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
class BLOB < FFI::Struct
|
|
61
|
+
layout \
|
|
62
|
+
:cbSize, :ulong,
|
|
63
|
+
:pBlobData, :pointer
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
class CA < FFI::Struct
|
|
67
|
+
layout \
|
|
68
|
+
:cElems, :ulong,
|
|
69
|
+
:pElems, :pointer
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
class DECIMAL < FFI::Struct
|
|
73
|
+
layout \
|
|
74
|
+
:wReserved, :ushort,
|
|
75
|
+
:scale, :uchar,
|
|
76
|
+
:sign, :uchar,
|
|
77
|
+
:Hi32, :ulong,
|
|
78
|
+
:Lo64, :ulong_long
|
|
79
|
+
|
|
80
|
+
def self.[](value)
|
|
81
|
+
new.tap { |decimal|
|
|
82
|
+
case value
|
|
83
|
+
when Integer; Windows.DetonateHresult(:VarDecFromI8, value, decimal)
|
|
84
|
+
when Float; Windows.DetonateHresult(:VarDecFromR8, value, decimal)
|
|
85
|
+
else raise ArgumentError
|
|
86
|
+
end
|
|
87
|
+
}
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
def i8
|
|
91
|
+
FFI::MemoryPointer.new(:long_long) { |pi8|
|
|
92
|
+
Windows.DetonateHresult(:VarI8FromDec, self, pi8)
|
|
93
|
+
|
|
94
|
+
return pi8.get_long_long(0)
|
|
95
|
+
}
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
def r8
|
|
99
|
+
FFI::MemoryPointer.new(:double) { |pr8|
|
|
100
|
+
Windows.DetonateHresult(:VarR8FromDec, self, pr8)
|
|
101
|
+
|
|
102
|
+
return pr8.get_double(0)
|
|
103
|
+
}
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
alias longlong i8; alias int longlong
|
|
107
|
+
alias double r8; alias float double
|
|
108
|
+
end
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
Decimal = Windows::DECIMAL
|
|
112
|
+
end
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
require_relative 'Common'
|
|
2
|
+
|
|
3
|
+
module Fzeet
|
|
4
|
+
module Windows
|
|
5
|
+
class PROPVARIANT < FFI::Union
|
|
6
|
+
include AnonymousSupport
|
|
7
|
+
|
|
8
|
+
layout \
|
|
9
|
+
:_, Class.new(FFI::Struct) {
|
|
10
|
+
layout \
|
|
11
|
+
:vt, :ushort,
|
|
12
|
+
:wReserved1, :ushort,
|
|
13
|
+
:wReserved2, :ushort,
|
|
14
|
+
:wReserved3, :ushort,
|
|
15
|
+
:_, Class.new(FFI::Union) {
|
|
16
|
+
layout \
|
|
17
|
+
:cVal, :char,
|
|
18
|
+
:bVal, :uchar,
|
|
19
|
+
:iVal, :short,
|
|
20
|
+
:uiVal, :ushort,
|
|
21
|
+
:lVal, :long,
|
|
22
|
+
:ulVal, :ulong,
|
|
23
|
+
:intVal, :int,
|
|
24
|
+
:uintVal, :uint,
|
|
25
|
+
:hVal, LARGE_INTEGER,
|
|
26
|
+
:uhVal, ULARGE_INTEGER,
|
|
27
|
+
:fltVal, :float,
|
|
28
|
+
:dblVal, :double,
|
|
29
|
+
:boolVal, :short,
|
|
30
|
+
:bool, :short,
|
|
31
|
+
:scode, :long,
|
|
32
|
+
:cyVal, :long_long,
|
|
33
|
+
:date, :double,
|
|
34
|
+
:filetime, FILETIME,
|
|
35
|
+
:puuid, :pointer,
|
|
36
|
+
:pclipdata, :pointer,
|
|
37
|
+
:bstrVal, :pointer,
|
|
38
|
+
:bstrblobVal, BSTRBLOB,
|
|
39
|
+
:blob, BLOB,
|
|
40
|
+
:pszVal, :pointer,
|
|
41
|
+
:pwszVal, :pointer,
|
|
42
|
+
:punkVal, :pointer,
|
|
43
|
+
:pdispVal, :pointer,
|
|
44
|
+
:pStream, :pointer,
|
|
45
|
+
:pStorage, :pointer,
|
|
46
|
+
:pVersionedStream, :pointer,
|
|
47
|
+
:parray, :pointer,
|
|
48
|
+
:cac, CA,
|
|
49
|
+
:caub, CA,
|
|
50
|
+
:cai, CA,
|
|
51
|
+
:caui, CA,
|
|
52
|
+
:cal, CA,
|
|
53
|
+
:caul, CA,
|
|
54
|
+
:cah, CA,
|
|
55
|
+
:cauh, CA,
|
|
56
|
+
:caflt, CA,
|
|
57
|
+
:cadbl, CA,
|
|
58
|
+
:cabool, CA,
|
|
59
|
+
:cascode, CA,
|
|
60
|
+
:cacy, CA,
|
|
61
|
+
:cadate, CA,
|
|
62
|
+
:cafiletime, CA,
|
|
63
|
+
:cauuid, CA,
|
|
64
|
+
:caclipdata, CA,
|
|
65
|
+
:cabstr, CA,
|
|
66
|
+
:cabstrblob, CA,
|
|
67
|
+
:calpstr, CA,
|
|
68
|
+
:calpwstr, CA,
|
|
69
|
+
:capropvar, CA,
|
|
70
|
+
:pcVal, :pointer,
|
|
71
|
+
:pbVal, :pointer,
|
|
72
|
+
:piVal, :pointer,
|
|
73
|
+
:puiVal, :pointer,
|
|
74
|
+
:plVal, :pointer,
|
|
75
|
+
:pulVal, :pointer,
|
|
76
|
+
:pintVal, :pointer,
|
|
77
|
+
:puintVal, :pointer,
|
|
78
|
+
:pfltVal, :pointer,
|
|
79
|
+
:pdblVal, :pointer,
|
|
80
|
+
:pboolVal, :pointer,
|
|
81
|
+
:pdecVal, :pointer,
|
|
82
|
+
:pscode, :pointer,
|
|
83
|
+
:pcyVal, :pointer,
|
|
84
|
+
:pdate, :pointer,
|
|
85
|
+
:pbstrVal, :pointer,
|
|
86
|
+
:ppunkVal, :pointer,
|
|
87
|
+
:ppdispVal, :pointer,
|
|
88
|
+
:pparray, :pointer,
|
|
89
|
+
:pvarVal, :pointer
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
|
|
93
|
+
:decVal, DECIMAL
|
|
94
|
+
|
|
95
|
+
def self.[](t, *v) new.tap { |var| var.send("#{t}=", *v) } end
|
|
96
|
+
|
|
97
|
+
def bool; raise 'Wrong type tag.' unless self[:vt] == VT_BOOL; self[:boolVal] != 0 end
|
|
98
|
+
def bool=(bool) self[:vt] = VT_BOOL; self[:boolVal] = (bool) ? -1 : 0 end
|
|
99
|
+
|
|
100
|
+
def int; raise 'Wrong type tag.' unless self[:vt] == VT_I4; self[:intVal] end
|
|
101
|
+
def int=(int) self[:vt] = VT_I4; self[:intVal] = int end
|
|
102
|
+
|
|
103
|
+
def uint; raise 'Wrong type tag.' unless self[:vt] == VT_UI4; self[:uintVal] end
|
|
104
|
+
def uint=(uint) self[:vt] = VT_UI4; self[:uintVal] = uint end
|
|
105
|
+
|
|
106
|
+
def unknown
|
|
107
|
+
raise 'Wrong type tag.' unless self[:vt] == VT_UNKNOWN
|
|
108
|
+
|
|
109
|
+
yield Unknown.new(self[:punkVal])
|
|
110
|
+
ensure
|
|
111
|
+
Windows.PropVariantClear(self)
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
def unknown=(unknown) self[:vt] = VT_UNKNOWN; self[:punkVal] = unknown.pointer; unknown.AddRef end
|
|
115
|
+
|
|
116
|
+
def wstring; raise 'Wrong type tag.' unless self[:vt] == VT_LPWSTR; Windows.WCSTOMBS(self[:pwszVal]) end
|
|
117
|
+
|
|
118
|
+
def wstring=(string)
|
|
119
|
+
self[:vt] = VT_LPWSTR
|
|
120
|
+
|
|
121
|
+
FFI::MemoryPointer.new(:pointer) { |p|
|
|
122
|
+
Windows.DetonateHresult(:SHStrDup, string, p)
|
|
123
|
+
|
|
124
|
+
self[:pwszVal] = p.read_pointer
|
|
125
|
+
}
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
def decimal
|
|
129
|
+
raise 'Wrong type tag.' unless self[:vt] == VT_DECIMAL
|
|
130
|
+
|
|
131
|
+
Rational(self[:decVal][:Lo64], 10 ** self[:decVal][:scale]) + self[:decVal][:Hi32]
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
def decimal=(decimal) self[:vt] = VT_DECIMAL; self[:decVal][:Lo64] = decimal end
|
|
135
|
+
end
|
|
136
|
+
|
|
137
|
+
attach_function :PropVariantClear, [:pointer], :long
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
PropVariant = Windows::PROPVARIANT
|
|
141
|
+
end
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
require_relative 'Common'
|
|
2
|
+
|
|
3
|
+
module Fzeet
|
|
4
|
+
module Windows
|
|
5
|
+
class BSTR
|
|
6
|
+
def self.[](s)
|
|
7
|
+
bstr = new(Windows.SysAllocString("#{s}\0".encode('utf-16le')))
|
|
8
|
+
|
|
9
|
+
if block_given?
|
|
10
|
+
yield bstr; bstr.dispose; return nil
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
bstr
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
class << self
|
|
17
|
+
alias from []
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def initialize(pointer) @pointer = pointer end
|
|
21
|
+
|
|
22
|
+
attr_reader :pointer
|
|
23
|
+
|
|
24
|
+
def free; Windows.SysFreeString(@pointer) end
|
|
25
|
+
alias dispose free
|
|
26
|
+
|
|
27
|
+
def length; Windows.SysStringLen(@pointer) end
|
|
28
|
+
alias size length
|
|
29
|
+
|
|
30
|
+
def multibyte; Windows.WCSTOMBS(@pointer) end
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
attach_function :SysAllocString, [:buffer_in], :pointer
|
|
34
|
+
attach_function :SysFreeString, [:pointer], :void
|
|
35
|
+
attach_function :SysStringLen, [:pointer], :uint
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
Bstr = Windows::BSTR
|
|
39
|
+
end
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
require_relative '../ole'
|
|
2
|
+
|
|
3
|
+
module Fzeet
|
|
4
|
+
module Windows
|
|
5
|
+
ffi_lib 'oleaut32'
|
|
6
|
+
ffi_convention :stdcall
|
|
7
|
+
|
|
8
|
+
OLEIVERB_PRIMARY = 0
|
|
9
|
+
OLEIVERB_SHOW = -1
|
|
10
|
+
OLEIVERB_OPEN = -2
|
|
11
|
+
OLEIVERB_HIDE = -3
|
|
12
|
+
OLEIVERB_UIACTIVATE = -4
|
|
13
|
+
OLEIVERB_INPLACEACTIVATE = -5
|
|
14
|
+
OLEIVERB_DISCARDUNDOSTATE = -6
|
|
15
|
+
|
|
16
|
+
IOleWindow = COM::Interface[IUnknown,
|
|
17
|
+
GUID['00000114-0000-0000-C000-000000000046'],
|
|
18
|
+
|
|
19
|
+
GetWindow: [[:pointer], :long],
|
|
20
|
+
ContextSensitiveHelp: [[:int], :long]
|
|
21
|
+
]
|
|
22
|
+
|
|
23
|
+
OleWindow = COM::Instance[IOleWindow]
|
|
24
|
+
|
|
25
|
+
IOleInPlaceObject = COM::Interface[IOleWindow,
|
|
26
|
+
GUID['00000113-0000-0000-C000-000000000046'],
|
|
27
|
+
|
|
28
|
+
InPlaceDeactivate: [[], :long],
|
|
29
|
+
UIDeactivate: [[], :long],
|
|
30
|
+
SetObjectRects: [[:pointer, :pointer], :long],
|
|
31
|
+
ReactivateAndUndo: [[], :long]
|
|
32
|
+
]
|
|
33
|
+
|
|
34
|
+
OleInPlaceObject = COM::Instance[IOleInPlaceObject]
|
|
35
|
+
|
|
36
|
+
IOleInPlaceSite = COM::Interface[IOleWindow,
|
|
37
|
+
GUID['00000119-0000-0000-C000-000000000046'],
|
|
38
|
+
|
|
39
|
+
CanInPlaceActivate: [[], :long],
|
|
40
|
+
OnInPlaceActivate: [[], :long],
|
|
41
|
+
OnUIActivate: [[], :long],
|
|
42
|
+
GetWindowContext: [[:pointer, :pointer, :pointer, :pointer, :pointer], :long],
|
|
43
|
+
Scroll: [[:long_long], :long],
|
|
44
|
+
OnUIDeactivate: [[:int], :long],
|
|
45
|
+
OnInPlaceDeactivate: [[], :long],
|
|
46
|
+
DiscardUndoState: [[], :long],
|
|
47
|
+
DeactivateAndUndo: [[], :long],
|
|
48
|
+
OnPosRectChange: [[:pointer], :long]
|
|
49
|
+
]
|
|
50
|
+
|
|
51
|
+
OleInPlaceSite = COM::Callback[IOleInPlaceSite]
|
|
52
|
+
|
|
53
|
+
IOleClientSite = COM::Interface[IUnknown,
|
|
54
|
+
GUID['00000118-0000-0000-C000-000000000046'],
|
|
55
|
+
|
|
56
|
+
SaveObject: [[], :long],
|
|
57
|
+
GetMoniker: [[:ulong, :ulong, :pointer], :long],
|
|
58
|
+
GetContainer: [[:pointer], :long],
|
|
59
|
+
ShowObject: [[], :long],
|
|
60
|
+
OnShowWindow: [[:int], :long],
|
|
61
|
+
RequestNewObjectLayout: [[], :long]
|
|
62
|
+
]
|
|
63
|
+
|
|
64
|
+
OleClientSite = COM::Callback[IOleClientSite]
|
|
65
|
+
|
|
66
|
+
OLEGETMONIKER_ONLYIFTHERE = 1
|
|
67
|
+
OLEGETMONIKER_FORCEASSIGN = 2
|
|
68
|
+
OLEGETMONIKER_UNASSIGN = 3
|
|
69
|
+
OLEGETMONIKER_TEMPFORUSER = 4
|
|
70
|
+
|
|
71
|
+
OLEWHICHMK_CONTAINER = 1
|
|
72
|
+
OLEWHICHMK_OBJREL = 2
|
|
73
|
+
OLEWHICHMK_OBJFULL = 3
|
|
74
|
+
|
|
75
|
+
USERCLASSTYPE_FULL = 1
|
|
76
|
+
USERCLASSTYPE_SHORT = 2
|
|
77
|
+
USERCLASSTYPE_APPNAME = 3
|
|
78
|
+
|
|
79
|
+
OLEMISC_RECOMPOSEONRESIZE = 0x00000001
|
|
80
|
+
OLEMISC_ONLYICONIC = 0x00000002
|
|
81
|
+
OLEMISC_INSERTNOTREPLACE = 0x00000004
|
|
82
|
+
OLEMISC_STATIC = 0x00000008
|
|
83
|
+
OLEMISC_CANTLINKINSIDE = 0x00000010
|
|
84
|
+
OLEMISC_CANLINKBYOLE1 = 0x00000020
|
|
85
|
+
OLEMISC_ISLINKOBJECT = 0x00000040
|
|
86
|
+
OLEMISC_INSIDEOUT = 0x00000080
|
|
87
|
+
OLEMISC_ACTIVATEWHENVISIBLE = 0x00000100
|
|
88
|
+
OLEMISC_RENDERINGISDEVICEINDEPENDENT = 0x00000200
|
|
89
|
+
OLEMISC_INVISIBLEATRUNTIME = 0x00000400
|
|
90
|
+
OLEMISC_ALWAYSRUN = 0x00000800
|
|
91
|
+
OLEMISC_ACTSLIKEBUTTON = 0x00001000
|
|
92
|
+
OLEMISC_ACTSLIKELABEL = 0x00002000
|
|
93
|
+
OLEMISC_NOUIACTIVATE = 0x00004000
|
|
94
|
+
OLEMISC_ALIGNABLE = 0x00008000
|
|
95
|
+
OLEMISC_SIMPLEFRAME = 0x00010000
|
|
96
|
+
OLEMISC_SETCLIENTSITEFIRST = 0x00020000
|
|
97
|
+
OLEMISC_IMEMODE = 0x00040000
|
|
98
|
+
OLEMISC_IGNOREACTIVATEWHENVISIBLE = 0x00080000
|
|
99
|
+
OLEMISC_WANTSTOMENUMERGE = 0x00100000
|
|
100
|
+
OLEMISC_SUPPORTSMULTILEVELUNDO = 0x00200000
|
|
101
|
+
|
|
102
|
+
OLECLOSE_SAVEIFDIRTY = 0
|
|
103
|
+
OLECLOSE_NOSAVE = 1
|
|
104
|
+
OLECLOSE_PROMPTSAVE = 2
|
|
105
|
+
|
|
106
|
+
IOleObject = COM::Interface[IUnknown,
|
|
107
|
+
GUID['00000112-0000-0000-C000-000000000046'],
|
|
108
|
+
|
|
109
|
+
SetClientSite: [[:pointer], :long],
|
|
110
|
+
GetClientSite: [[:pointer], :long],
|
|
111
|
+
SetHostNames: [[:pointer, :pointer], :long],
|
|
112
|
+
Close: [[:ulong], :long],
|
|
113
|
+
SetMoniker: [[:ulong, :pointer], :long],
|
|
114
|
+
GetMoniker: [[:ulong, :ulong, :pointer], :long],
|
|
115
|
+
InitFromData: [[:pointer, :int, :ulong], :long],
|
|
116
|
+
GetClipboardData: [[:ulong, :pointer], :long],
|
|
117
|
+
DoVerb: [[:long, :pointer, :pointer, :long, :pointer, :pointer], :long],
|
|
118
|
+
EnumVerbs: [[:pointer], :long],
|
|
119
|
+
Update: [[], :long],
|
|
120
|
+
IsUpToDate: [[], :long],
|
|
121
|
+
GetUserClassID: [[:pointer], :long],
|
|
122
|
+
GetUserType: [[:ulong, :pointer], :long],
|
|
123
|
+
SetExtent: [[:ulong, :pointer], :long],
|
|
124
|
+
GetExtent: [[:ulong, :pointer], :long],
|
|
125
|
+
Advise: [[:pointer, :pointer], :long],
|
|
126
|
+
Unadvise: [[:ulong], :long],
|
|
127
|
+
EnumAdvise: [[:pointer], :long],
|
|
128
|
+
GetMiscStatus: [[:ulong, :pointer], :long],
|
|
129
|
+
SetColorScheme: [[:pointer], :long]
|
|
130
|
+
]
|
|
131
|
+
|
|
132
|
+
OleObject = COM::Instance[IOleObject]
|
|
133
|
+
|
|
134
|
+
class PARAMDATA < FFI::Struct
|
|
135
|
+
layout \
|
|
136
|
+
:szName, :pointer,
|
|
137
|
+
:vt, :ushort
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
CC_FASTCALL = 0
|
|
141
|
+
CC_CDECL = 1
|
|
142
|
+
CC_MSCPASCAL = CC_CDECL + 1
|
|
143
|
+
CC_PASCAL = CC_MSCPASCAL
|
|
144
|
+
CC_MACPASCAL = CC_PASCAL + 1
|
|
145
|
+
CC_STDCALL = CC_MACPASCAL + 1
|
|
146
|
+
CC_FPFASTCALL = CC_STDCALL + 1
|
|
147
|
+
CC_SYSCALL = CC_FPFASTCALL + 1
|
|
148
|
+
CC_MPWCDECL = CC_SYSCALL + 1
|
|
149
|
+
CC_MPWPASCAL = CC_MPWCDECL + 1
|
|
150
|
+
CC_MAX = CC_MPWPASCAL + 1
|
|
151
|
+
|
|
152
|
+
DISPATCH_METHOD = 0x1
|
|
153
|
+
DISPATCH_PROPERTYGET = 0x2
|
|
154
|
+
DISPATCH_PROPERTYPUT = 0x4
|
|
155
|
+
DISPATCH_PROPERTYPUTREF = 0x8
|
|
156
|
+
|
|
157
|
+
class METHODDATA < FFI::Struct
|
|
158
|
+
layout \
|
|
159
|
+
:szName, :pointer,
|
|
160
|
+
:ppdata, :pointer,
|
|
161
|
+
:dispid, :long,
|
|
162
|
+
:iMeth, :uint,
|
|
163
|
+
:cc, :uint,
|
|
164
|
+
:cArgs, :uint,
|
|
165
|
+
:wFlags, :ushort,
|
|
166
|
+
:vtReturn, :ushort
|
|
167
|
+
end
|
|
168
|
+
|
|
169
|
+
class INTERFACEDATA < FFI::Struct
|
|
170
|
+
layout \
|
|
171
|
+
:pmethdata, :pointer,
|
|
172
|
+
:cMembers, :uint
|
|
173
|
+
end
|
|
174
|
+
|
|
175
|
+
attach_function :CreateDispTypeInfo, [:pointer, :ulong, :pointer], :long
|
|
176
|
+
|
|
177
|
+
class DISPPARAMS < FFI::Struct
|
|
178
|
+
layout \
|
|
179
|
+
:rgvarg, :pointer,
|
|
180
|
+
:rgdispidNamedArgs, :pointer,
|
|
181
|
+
:cArgs, :uint,
|
|
182
|
+
:cNamedArgs, :uint
|
|
183
|
+
end
|
|
184
|
+
|
|
185
|
+
attach_function :DispInvoke, [:pointer, :pointer, :long, :ushort, :pointer, :pointer, :pointer, :pointer], :long
|
|
186
|
+
end
|
|
187
|
+
end
|