win32ole-ffi 0.1.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,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'win32ole/ffi/win32ole'
4
+ require 'win32ole/ffi/type'
5
+ require 'win32ole/ffi/typelib'
6
+ require 'win32ole/ffi/event'
7
+
8
+ # ext/win32ole keeps the old toplevel class names as deprecated aliases, so
9
+ # existing scripts that use them still run here but get a warning to move to
10
+ # the WIN32OLE:: names.
11
+ {
12
+ WIN32OLE_TYPE: WIN32OLE::Type,
13
+ WIN32OLE_TYPELIB: WIN32OLE::TypeLib,
14
+ WIN32OLE_METHOD: WIN32OLE::Method,
15
+ WIN32OLE_PARAM: WIN32OLE::Param,
16
+ WIN32OLE_VARIABLE: WIN32OLE::Variable,
17
+ WIN32OLE_VARIANT: WIN32OLE::Variant,
18
+ WIN32OLE_EVENT: WIN32OLE::Event,
19
+ WIN32OLE_RECORD: WIN32OLE::Record
20
+ }.each do |name, klass|
21
+ Object.const_set(name, klass)
22
+ Object.deprecate_constant(name)
23
+ end
24
+
25
+ class WIN32OLE
26
+
27
+ #
28
+ # By overriding Object#methods, WIN32OLE might
29
+ # work well with did_you_mean gem.
30
+ # This is experimental.
31
+ #
32
+ # require 'win32ole/ffi'
33
+ # dict = WIN32OLE.new('Scripting.Dictionary')
34
+ # dict.Ade('a', 1)
35
+ # #=> Did you mean? Add
36
+ #
37
+ def methods(*args)
38
+ super + ole_methods_safely.map(&:name).map(&:to_sym)
39
+ end
40
+
41
+ private
42
+
43
+ def ole_methods_safely
44
+ ole_methods
45
+ rescue WIN32OLE::QueryInterfaceError, NameError
46
+ []
47
+ end
48
+ end
@@ -0,0 +1,308 @@
1
+ module Win32OLEFFI
2
+ VERSION: String
3
+ end
4
+
5
+ %a{deprecated: Use WIN32OLE::RuntimeError instead}
6
+ WIN32OLERuntimeError: singleton(WIN32OLE::RuntimeError)
7
+
8
+ %a{deprecated: Use WIN32OLE::QueryInterfaceError instead}
9
+ WIN32OLEQueryInterfaceError: singleton(WIN32OLE::QueryInterfaceError)
10
+
11
+ %a{deprecated: Use WIN32OLE::Type instead}
12
+ WIN32OLE_TYPE: singleton(WIN32OLE::Type)
13
+
14
+ %a{deprecated: Use WIN32OLE::TypeLib instead}
15
+ WIN32OLE_TYPELIB: singleton(WIN32OLE::TypeLib)
16
+
17
+ %a{deprecated: Use WIN32OLE::Method instead}
18
+ WIN32OLE_METHOD: singleton(WIN32OLE::Method)
19
+
20
+ %a{deprecated: Use WIN32OLE::Param instead}
21
+ WIN32OLE_PARAM: singleton(WIN32OLE::Param)
22
+
23
+ %a{deprecated: Use WIN32OLE::Variable instead}
24
+ WIN32OLE_VARIABLE: singleton(WIN32OLE::Variable)
25
+
26
+ %a{deprecated: Use WIN32OLE::Variant instead}
27
+ WIN32OLE_VARIANT: singleton(WIN32OLE::Variant)
28
+
29
+ %a{deprecated: Use WIN32OLE::Event instead}
30
+ WIN32OLE_EVENT: singleton(WIN32OLE::Event)
31
+
32
+ %a{deprecated: Use WIN32OLE::Record instead}
33
+ WIN32OLE_RECORD: singleton(WIN32OLE::Record)
34
+
35
+ class WIN32OLE
36
+ class RuntimeError < ::RuntimeError
37
+ end
38
+
39
+ class QueryInterfaceError < RuntimeError
40
+ end
41
+
42
+ LOCALE_SYSTEM_DEFAULT: Integer
43
+ LOCALE_USER_DEFAULT: Integer
44
+
45
+ CP_ACP: Integer
46
+ CP_OEMCP: Integer
47
+ CP_MACCP: Integer
48
+ CP_THREAD_ACP: Integer
49
+ CP_SYMBOL: Integer
50
+ CP_UTF7: Integer
51
+ CP_UTF8: Integer
52
+
53
+ def self.codepage: () -> Integer
54
+ def self.codepage=: (Integer cp) -> Integer
55
+ def self.locale: () -> Integer
56
+ def self.locale=: (Integer lcid) -> Integer
57
+ def self.ole_initialize: () -> nil
58
+ def self.ole_uninitialize: () -> nil
59
+ def self.ole_show_help: (String | Type | Method target, ?Integer? helpcontext) -> nil
60
+ def self.ole_reference_count: (WIN32OLE obj) -> Integer
61
+ def self.ole_free: (WIN32OLE obj) -> Integer
62
+ def self.connect: (string server, ?nil host) -> WIN32OLE
63
+ def self.create_guid: () -> String
64
+ def self.const_load: (WIN32OLE | String ole, ?Module? mod) -> nil
65
+
66
+ def initialize: (string server, ?string? host) -> void
67
+
68
+ def method_missing: (Symbol | string name, *untyped args) -> untyped
69
+ def invoke: (Symbol | string name, *untyped args) -> untyped
70
+ def _invoke: (Integer dispid, Array[untyped] args, Array[Integer] types) -> untyped
71
+ def _getproperty: (Integer dispid, Array[untyped] args, Array[Integer] types) -> untyped
72
+ def _setproperty: (Integer dispid, Array[untyped] args, Array[Integer] types) -> untyped
73
+ def setproperty: (Symbol | string name, *untyped args) -> nil
74
+ def each: () { (untyped) -> void } -> nil
75
+ | () -> Enumerator[untyped, nil]
76
+ def []: (*untyped args) -> untyped
77
+ def []=: (*untyped args) -> untyped
78
+ def ole_activex_initialize: () -> nil
79
+ def ole_free: () -> nil
80
+ def ole_type: () -> Type
81
+ alias ole_obj_help ole_type
82
+ def ole_typelib: () -> TypeLib
83
+ def ole_methods: () -> Array[Method]
84
+ def ole_get_methods: () -> Array[Method]
85
+ def ole_put_methods: () -> Array[Method]
86
+ def ole_func_methods: () -> Array[Method]
87
+ def ole_respond_to?: (Symbol | String name) -> bool
88
+ def ole_method: (string name) -> Method
89
+ alias ole_method_help ole_method
90
+ def ole_query_interface: (string iid) -> WIN32OLE
91
+ def methods: (*untyped args) -> Array[Symbol]
92
+
93
+ module VariantType
94
+ VT_EMPTY: Integer
95
+ VT_NULL: Integer
96
+ VT_I2: Integer
97
+ VT_I4: Integer
98
+ VT_R4: Integer
99
+ VT_R8: Integer
100
+ VT_CY: Integer
101
+ VT_DATE: Integer
102
+ VT_BSTR: Integer
103
+ VT_DISPATCH: Integer
104
+ VT_ERROR: Integer
105
+ VT_BOOL: Integer
106
+ VT_VARIANT: Integer
107
+ VT_UNKNOWN: Integer
108
+ VT_DECIMAL: Integer
109
+ VT_I1: Integer
110
+ VT_UI1: Integer
111
+ VT_UI2: Integer
112
+ VT_UI4: Integer
113
+ VT_I8: Integer
114
+ VT_UI8: Integer
115
+ VT_INT: Integer
116
+ VT_UINT: Integer
117
+ VT_VOID: Integer
118
+ VT_HRESULT: Integer
119
+ VT_PTR: Integer
120
+ VT_SAFEARRAY: Integer
121
+ VT_CARRAY: Integer
122
+ VT_USERDEFINED: Integer
123
+ VT_LPSTR: Integer
124
+ VT_LPWSTR: Integer
125
+ VT_RECORD: Integer
126
+ VT_INT_PTR: Integer
127
+ VT_UINT_PTR: Integer
128
+ VT_FILETIME: Integer
129
+ VT_BLOB: Integer
130
+ VT_STREAM: Integer
131
+ VT_STORAGE: Integer
132
+ VT_STREAMED_OBJECT: Integer
133
+ VT_STORED_OBJECT: Integer
134
+ VT_BLOB_OBJECT: Integer
135
+ VT_CF: Integer
136
+ VT_CLSID: Integer
137
+ VT_VERSIONED_STREAM: Integer
138
+ VT_BSTR_BLOB: Integer
139
+ VT_VECTOR: Integer
140
+ VT_ARRAY: Integer
141
+ VT_BYREF: Integer
142
+ VT_RESERVED: Integer
143
+ VT_ILLEGAL: Integer
144
+ VT_ILLEGALMASKED: Integer
145
+ VT_TYPEMASK: Integer
146
+ end
147
+
148
+ VARIANT: singleton(VariantType)
149
+
150
+ class Variant
151
+ Empty: Variant
152
+ Null: Variant
153
+ Nothing: Variant
154
+ NoParam: Variant
155
+
156
+ def self.array: (Array[Integer] dims, Integer vt) -> Variant
157
+
158
+ def initialize: (untyped val, ?Integer? vartype, ?untyped reserved) -> void
159
+ def value: () -> untyped
160
+ def value=: (untyped val) -> untyped
161
+ def vartype: () -> Integer
162
+ def []: (*Integer indices) -> untyped
163
+ def []=: (*untyped args) -> untyped
164
+ end
165
+
166
+ class Record
167
+ def initialize: (_ToS typename, WIN32OLE oleobj) -> void
168
+ def to_h: () -> Hash[String, untyped]
169
+ def typename: () -> String
170
+ def inspect: () -> String
171
+ def method_missing: (Symbol name, *untyped args) -> untyped
172
+ def ole_instance_variable_get: (String | Symbol name) -> untyped
173
+ def ole_instance_variable_set: (String | Symbol name, untyped val) -> untyped
174
+ end
175
+
176
+ class TypeLib
177
+ LIBFLAG_FRESTRICTED: Integer
178
+ LIBFLAG_FHIDDEN: Integer
179
+
180
+ def self.new: (string typelib, ?Integer? major, ?Integer? minor) -> TypeLib
181
+ def self.typelibs: () -> Array[TypeLib]
182
+
183
+ def guid: () -> String
184
+ def name: () -> String
185
+ alias to_s name
186
+ def version: () -> String
187
+ def major_version: () -> Integer
188
+ def minor_version: () -> Integer
189
+ def visible?: () -> bool
190
+ def library_name: () -> String
191
+ def path: () -> String?
192
+ def ole_types: () -> Array[Type]
193
+ alias ole_classes ole_types
194
+ def inspect: () -> String
195
+ end
196
+
197
+ class Type
198
+ TYPEFLAG_FHIDDEN: Integer
199
+ TYPEFLAG_FRESTRICTED: Integer
200
+ TKIND_ALIAS: Integer
201
+
202
+ def self.new: (string typelib, string ole_class) -> Type
203
+ def self.ole_classes: (string typelib) -> Array[Type]
204
+ def self.typelibs: () -> Array[String]
205
+ def self.progids: () -> Array[String]
206
+
207
+ def name: () -> String
208
+ alias to_s name
209
+ def ole_type: () -> String?
210
+ def guid: () -> String
211
+ def progid: () -> String?
212
+ def visible?: () -> bool
213
+ def major_version: () -> Integer
214
+ def minor_version: () -> Integer
215
+ def typekind: () -> Integer
216
+ def helpstring: () -> String?
217
+ def helpfile: () -> String?
218
+ def helpcontext: () -> Integer
219
+ def src_type: () -> String?
220
+ def variables: () -> Array[Variable]
221
+ def ole_methods: () -> Array[Method]
222
+ def ole_typelib: () -> TypeLib
223
+ def inspect: () -> String
224
+ def implemented_ole_types: () -> Array[Type]
225
+ def source_ole_types: () -> Array[Type]
226
+ def default_event_sources: () -> Array[Type]
227
+ def default_ole_types: () -> Array[Type]
228
+ end
229
+
230
+ class Method
231
+ FUNCFLAG_FRESTRICTED: Integer
232
+ FUNCFLAG_FHIDDEN: Integer
233
+ FUNCFLAG_FNONBROWSABLE: Integer
234
+
235
+ def self.new: (Type oletype, string method) -> Method
236
+
237
+ def name: () -> String
238
+ alias to_s name
239
+ def return_type: () -> String
240
+ def return_vtype: () -> Integer
241
+ def return_type_detail: () -> Array[String]
242
+ def invoke_kind: () -> String
243
+ def invkind: () -> Integer
244
+ def visible?: () -> bool
245
+ def dispid: () -> Integer
246
+ def helpstring: () -> String?
247
+ def helpfile: () -> String?
248
+ def helpcontext: () -> Integer
249
+ def offset_vtbl: () -> Integer
250
+ def size_params: () -> Integer
251
+ def size_opt_params: () -> Integer
252
+ def params: () -> Array[Param]
253
+ def inspect: () -> String
254
+ def event?: () -> bool
255
+ def event_interface: () -> String?
256
+ end
257
+
258
+ class Param
259
+ PARAMFLAG_FIN: Integer
260
+ PARAMFLAG_FOUT: Integer
261
+ PARAMFLAG_FRETVAL: Integer
262
+ PARAMFLAG_FOPT: Integer
263
+ PARAMFLAG_FHASDEFAULT: Integer
264
+ PARAMDESCEX_DEFAULT_VALUE_OFFSET: Integer
265
+
266
+ def self.new: (Method olemethod, Integer n) -> Param
267
+
268
+ def name: () -> String
269
+ alias to_s name
270
+ def ole_type: () -> String
271
+ def ole_type_detail: () -> Array[String]
272
+ def input?: () -> bool
273
+ def output?: () -> bool
274
+ def optional?: () -> bool
275
+ def retval?: () -> bool
276
+ def default: () -> untyped
277
+ def inspect: () -> String
278
+ end
279
+
280
+ class Variable
281
+ VARFLAG_FRESTRICTED: Integer
282
+ VARFLAG_FHIDDEN: Integer
283
+ VARFLAG_FNONBROWSABLE: Integer
284
+ VAR_CONST: Integer
285
+
286
+ def name: () -> String
287
+ alias to_s name
288
+ def ole_type: () -> String
289
+ def ole_type_detail: () -> Array[String]
290
+ def value: () -> untyped
291
+ def visible?: () -> bool
292
+ def variable_kind: () -> String
293
+ def varkind: () -> Integer
294
+ def inspect: () -> String
295
+ end
296
+
297
+ class Event
298
+ def self.message_loop: () -> nil
299
+
300
+ def initialize: (WIN32OLE ole, ?String? itf) -> void
301
+ def on_event: (?(String | Symbol)? event) { (*untyped) -> untyped } -> nil
302
+ def on_event_with_outargs: (?(String | Symbol)? event) { (*untyped) -> untyped } -> nil
303
+ def off_event: (?(String | Symbol)? event) -> nil
304
+ def handler=: (untyped obj) -> untyped
305
+ def handler: () -> untyped
306
+ def unadvise: () -> nil
307
+ end
308
+ end
metadata ADDED
@@ -0,0 +1,84 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: win32ole-ffi
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Eito Katagiri
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2026-10-31 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: fiddle
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.0'
27
+ description: A WIN32OLE for Windows written in pure Ruby on top of Fiddle instead
28
+ of a C extension, so that it also runs on JRuby.
29
+ email:
30
+ - eitoball@gmail.com
31
+ executables: []
32
+ extensions: []
33
+ extra_rdoc_files: []
34
+ files:
35
+ - BSDL
36
+ - CHANGELOG.md
37
+ - COPYING
38
+ - README.md
39
+ - lib/win32ole/ffi.rb
40
+ - lib/win32ole/ffi/array.rb
41
+ - lib/win32ole/ffi/dispatch.rb
42
+ - lib/win32ole/ffi/event.rb
43
+ - lib/win32ole/ffi/fiddle_compat.rb
44
+ - lib/win32ole/ffi/method.rb
45
+ - lib/win32ole/ffi/param.rb
46
+ - lib/win32ole/ffi/record.rb
47
+ - lib/win32ole/ffi/type.rb
48
+ - lib/win32ole/ffi/typeinfo.rb
49
+ - lib/win32ole/ffi/typelib.rb
50
+ - lib/win32ole/ffi/variable.rb
51
+ - lib/win32ole/ffi/variant.rb
52
+ - lib/win32ole/ffi/version.rb
53
+ - lib/win32ole/ffi/win32.rb
54
+ - lib/win32ole/ffi/win32ole.rb
55
+ - sig/win32ole/ffi.rbs
56
+ homepage: https://github.com/eitoball/win32ole-ffi
57
+ licenses:
58
+ - Ruby
59
+ - BSD-2-Clause
60
+ metadata:
61
+ source_code_uri: https://github.com/eitoball/win32ole-ffi
62
+ changelog_uri: https://github.com/eitoball/win32ole-ffi/blob/main/CHANGELOG.md
63
+ bug_tracker_uri: https://github.com/eitoball/win32ole-ffi/issues
64
+ rubygems_mfa_required: 'true'
65
+ post_install_message:
66
+ rdoc_options: []
67
+ require_paths:
68
+ - lib
69
+ required_ruby_version: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ version: 2.6.0
74
+ required_rubygems_version: !ruby/object:Gem::Requirement
75
+ requirements:
76
+ - - ">="
77
+ - !ruby/object:Gem::Version
78
+ version: '0'
79
+ requirements: []
80
+ rubygems_version: 3.5.22
81
+ signing_key:
82
+ specification_version: 4
83
+ summary: WIN32OLE implemented in pure Ruby with Fiddle
84
+ test_files: []