win32ole 1.8.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +8 -0
- data/.travis.yml +6 -0
- data/Gemfile +7 -0
- data/LICENSE.txt +22 -0
- data/README.md +56 -0
- data/Rakefile +10 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/ext/win32ole/depend +12 -0
- data/ext/win32ole/extconf.rb +45 -0
- data/ext/win32ole/sample/excel1.rb +37 -0
- data/ext/win32ole/sample/excel2.rb +31 -0
- data/ext/win32ole/sample/excel3.rb +21 -0
- data/ext/win32ole/sample/ie.rb +12 -0
- data/ext/win32ole/sample/ieconst.rb +33 -0
- data/ext/win32ole/sample/ienavi.rb +41 -0
- data/ext/win32ole/sample/ienavi2.rb +41 -0
- data/ext/win32ole/sample/oledirs.rb +24 -0
- data/ext/win32ole/sample/olegen.rb +348 -0
- data/ext/win32ole/sample/xml.rb +7307 -0
- data/ext/win32ole/win32ole.c +4140 -0
- data/ext/win32ole/win32ole.h +155 -0
- data/ext/win32ole/win32ole_error.c +84 -0
- data/ext/win32ole/win32ole_error.h +9 -0
- data/ext/win32ole/win32ole_event.c +1277 -0
- data/ext/win32ole/win32ole_event.h +6 -0
- data/ext/win32ole/win32ole_method.c +950 -0
- data/ext/win32ole/win32ole_method.h +16 -0
- data/ext/win32ole/win32ole_param.c +438 -0
- data/ext/win32ole/win32ole_param.h +8 -0
- data/ext/win32ole/win32ole_record.c +604 -0
- data/ext/win32ole/win32ole_record.h +10 -0
- data/ext/win32ole/win32ole_type.c +915 -0
- data/ext/win32ole/win32ole_type.h +8 -0
- data/ext/win32ole/win32ole_typelib.c +844 -0
- data/ext/win32ole/win32ole_typelib.h +11 -0
- data/ext/win32ole/win32ole_variable.c +380 -0
- data/ext/win32ole/win32ole_variable.h +8 -0
- data/ext/win32ole/win32ole_variant.c +733 -0
- data/ext/win32ole/win32ole_variant.h +9 -0
- data/ext/win32ole/win32ole_variant_m.c +149 -0
- data/ext/win32ole/win32ole_variant_m.h +7 -0
- data/lib/win32ole.rb +33 -0
- data/lib/win32ole/property.rb +17 -0
- data/win32ole.gemspec +22 -0
- metadata +91 -0
@@ -0,0 +1,149 @@
|
|
1
|
+
#include "win32ole.h"
|
2
|
+
|
3
|
+
void Init_win32ole_variant_m(void)
|
4
|
+
{
|
5
|
+
/*
|
6
|
+
* Document-module: WIN32OLE::VARIANT
|
7
|
+
*
|
8
|
+
* The WIN32OLE::VARIANT module includes constants of VARIANT type constants.
|
9
|
+
* The constants is used when creating WIN32OLE_VARIANT object.
|
10
|
+
*
|
11
|
+
* obj = WIN32OLE_VARIANT.new("2e3", WIN32OLE::VARIANT::VT_R4)
|
12
|
+
* obj.value # => 2000.0
|
13
|
+
*
|
14
|
+
*/
|
15
|
+
mWIN32OLE_VARIANT = rb_define_module_under(cWIN32OLE, "VARIANT");
|
16
|
+
|
17
|
+
/*
|
18
|
+
* represents VT_EMPTY type constant.
|
19
|
+
*/
|
20
|
+
rb_define_const(mWIN32OLE_VARIANT, "VT_EMPTY", RB_INT2FIX(VT_EMPTY));
|
21
|
+
|
22
|
+
/*
|
23
|
+
* represents VT_NULL type constant.
|
24
|
+
*/
|
25
|
+
rb_define_const(mWIN32OLE_VARIANT, "VT_NULL", RB_INT2FIX(VT_NULL));
|
26
|
+
|
27
|
+
/*
|
28
|
+
* represents VT_I2 type constant.
|
29
|
+
*/
|
30
|
+
rb_define_const(mWIN32OLE_VARIANT, "VT_I2", RB_INT2FIX(VT_I2));
|
31
|
+
|
32
|
+
/*
|
33
|
+
* represents VT_I4 type constant.
|
34
|
+
*/
|
35
|
+
rb_define_const(mWIN32OLE_VARIANT, "VT_I4", RB_INT2FIX(VT_I4));
|
36
|
+
|
37
|
+
/*
|
38
|
+
* represents VT_R4 type constant.
|
39
|
+
*/
|
40
|
+
rb_define_const(mWIN32OLE_VARIANT, "VT_R4", RB_INT2FIX(VT_R4));
|
41
|
+
|
42
|
+
/*
|
43
|
+
* represents VT_R8 type constant.
|
44
|
+
*/
|
45
|
+
rb_define_const(mWIN32OLE_VARIANT, "VT_R8", RB_INT2FIX(VT_R8));
|
46
|
+
|
47
|
+
/*
|
48
|
+
* represents VT_CY type constant.
|
49
|
+
*/
|
50
|
+
rb_define_const(mWIN32OLE_VARIANT, "VT_CY", RB_INT2FIX(VT_CY));
|
51
|
+
|
52
|
+
/*
|
53
|
+
* represents VT_DATE type constant.
|
54
|
+
*/
|
55
|
+
rb_define_const(mWIN32OLE_VARIANT, "VT_DATE", RB_INT2FIX(VT_DATE));
|
56
|
+
|
57
|
+
/*
|
58
|
+
* represents VT_BSTR type constant.
|
59
|
+
*/
|
60
|
+
rb_define_const(mWIN32OLE_VARIANT, "VT_BSTR", RB_INT2FIX(VT_BSTR));
|
61
|
+
|
62
|
+
/*
|
63
|
+
* represents VT_USERDEFINED type constant.
|
64
|
+
*/
|
65
|
+
rb_define_const(mWIN32OLE_VARIANT, "VT_USERDEFINED", RB_INT2FIX(VT_USERDEFINED));
|
66
|
+
|
67
|
+
/*
|
68
|
+
* represents VT_PTR type constant.
|
69
|
+
*/
|
70
|
+
rb_define_const(mWIN32OLE_VARIANT, "VT_PTR", RB_INT2FIX(VT_PTR));
|
71
|
+
|
72
|
+
/*
|
73
|
+
* represents VT_DISPATCH type constant.
|
74
|
+
*/
|
75
|
+
rb_define_const(mWIN32OLE_VARIANT, "VT_DISPATCH", RB_INT2FIX(VT_DISPATCH));
|
76
|
+
|
77
|
+
/*
|
78
|
+
* represents VT_ERROR type constant.
|
79
|
+
*/
|
80
|
+
rb_define_const(mWIN32OLE_VARIANT, "VT_ERROR", RB_INT2FIX(VT_ERROR));
|
81
|
+
|
82
|
+
/*
|
83
|
+
* represents VT_BOOL type constant.
|
84
|
+
*/
|
85
|
+
rb_define_const(mWIN32OLE_VARIANT, "VT_BOOL", RB_INT2FIX(VT_BOOL));
|
86
|
+
|
87
|
+
/*
|
88
|
+
* represents VT_VARIANT type constant.
|
89
|
+
*/
|
90
|
+
rb_define_const(mWIN32OLE_VARIANT, "VT_VARIANT", RB_INT2FIX(VT_VARIANT));
|
91
|
+
|
92
|
+
/*
|
93
|
+
* represents VT_UNKNOWN type constant.
|
94
|
+
*/
|
95
|
+
rb_define_const(mWIN32OLE_VARIANT, "VT_UNKNOWN", RB_INT2FIX(VT_UNKNOWN));
|
96
|
+
|
97
|
+
/*
|
98
|
+
* represents VT_I1 type constant.
|
99
|
+
*/
|
100
|
+
rb_define_const(mWIN32OLE_VARIANT, "VT_I1", RB_INT2FIX(VT_I1));
|
101
|
+
|
102
|
+
/*
|
103
|
+
* represents VT_UI1 type constant.
|
104
|
+
*/
|
105
|
+
rb_define_const(mWIN32OLE_VARIANT, "VT_UI1", RB_INT2FIX(VT_UI1));
|
106
|
+
|
107
|
+
/*
|
108
|
+
* represents VT_UI2 type constant.
|
109
|
+
*/
|
110
|
+
rb_define_const(mWIN32OLE_VARIANT, "VT_UI2", RB_INT2FIX(VT_UI2));
|
111
|
+
|
112
|
+
/*
|
113
|
+
* represents VT_UI4 type constant.
|
114
|
+
*/
|
115
|
+
rb_define_const(mWIN32OLE_VARIANT, "VT_UI4", RB_INT2FIX(VT_UI4));
|
116
|
+
|
117
|
+
#if (_MSC_VER >= 1300) || defined(__CYGWIN__) || defined(__MINGW32__)
|
118
|
+
/*
|
119
|
+
* represents VT_I8 type constant.
|
120
|
+
*/
|
121
|
+
rb_define_const(mWIN32OLE_VARIANT, "VT_I8", RB_INT2FIX(VT_I8));
|
122
|
+
|
123
|
+
/*
|
124
|
+
* represents VT_UI8 type constant.
|
125
|
+
*/
|
126
|
+
rb_define_const(mWIN32OLE_VARIANT, "VT_UI8", RB_INT2FIX(VT_UI8));
|
127
|
+
#endif
|
128
|
+
|
129
|
+
/*
|
130
|
+
* represents VT_INT type constant.
|
131
|
+
*/
|
132
|
+
rb_define_const(mWIN32OLE_VARIANT, "VT_INT", RB_INT2FIX(VT_INT));
|
133
|
+
|
134
|
+
/*
|
135
|
+
* represents VT_UINT type constant.
|
136
|
+
*/
|
137
|
+
rb_define_const(mWIN32OLE_VARIANT, "VT_UINT", RB_INT2FIX(VT_UINT));
|
138
|
+
|
139
|
+
/*
|
140
|
+
* represents VT_ARRAY type constant.
|
141
|
+
*/
|
142
|
+
rb_define_const(mWIN32OLE_VARIANT, "VT_ARRAY", RB_INT2FIX(VT_ARRAY));
|
143
|
+
|
144
|
+
/*
|
145
|
+
* represents VT_BYREF type constant.
|
146
|
+
*/
|
147
|
+
rb_define_const(mWIN32OLE_VARIANT, "VT_BYREF", RB_INT2FIX(VT_BYREF));
|
148
|
+
|
149
|
+
}
|
data/lib/win32ole.rb
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
begin
|
2
|
+
require 'win32ole.so'
|
3
|
+
rescue LoadError
|
4
|
+
# do nothing
|
5
|
+
end
|
6
|
+
|
7
|
+
if defined?(WIN32OLE)
|
8
|
+
# WIN32OLE
|
9
|
+
class WIN32OLE
|
10
|
+
|
11
|
+
#
|
12
|
+
# By overriding Object#methods, WIN32OLE might
|
13
|
+
# work well with did_you_mean gem.
|
14
|
+
# This is experimental.
|
15
|
+
#
|
16
|
+
# require 'win32ole'
|
17
|
+
# dict = WIN32OLE.new('Scripting.Dictionary')
|
18
|
+
# dict.Ade('a', 1)
|
19
|
+
# #=> Did you mean? Add
|
20
|
+
#
|
21
|
+
def methods(*args)
|
22
|
+
super + ole_methods_safely.map(&:name).map(&:to_sym)
|
23
|
+
end
|
24
|
+
|
25
|
+
private
|
26
|
+
|
27
|
+
def ole_methods_safely
|
28
|
+
ole_methods
|
29
|
+
rescue WIN32OLEQueryInterfaceError
|
30
|
+
[]
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: false
|
2
|
+
# OLEProperty
|
3
|
+
# helper class of Property with arguments.
|
4
|
+
class OLEProperty
|
5
|
+
def initialize(obj, dispid, gettypes, settypes)
|
6
|
+
@obj = obj
|
7
|
+
@dispid = dispid
|
8
|
+
@gettypes = gettypes
|
9
|
+
@settypes = settypes
|
10
|
+
end
|
11
|
+
def [](*args)
|
12
|
+
@obj._getproperty(@dispid, args, @gettypes)
|
13
|
+
end
|
14
|
+
def []=(*args)
|
15
|
+
@obj._setproperty(@dispid, args, @settypes)
|
16
|
+
end
|
17
|
+
end
|
data/win32ole.gemspec
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Gem::Specification.new do |spec|
|
2
|
+
spec.name = "win32ole"
|
3
|
+
spec.version = "1.8.8"
|
4
|
+
spec.authors = ["Masaki Suketa"]
|
5
|
+
spec.email = ["suke@ruby-lang.org"]
|
6
|
+
|
7
|
+
spec.summary = %q{Provides an interface for OLE Automation in Ruby}
|
8
|
+
spec.description = spec.summary
|
9
|
+
spec.homepage = "https://github.com/ruby/win32ole"
|
10
|
+
spec.required_ruby_version = Gem::Requirement.new(">= 2.3.0")
|
11
|
+
spec.licenses = ["Ruby", "BSD-2-Clause"]
|
12
|
+
|
13
|
+
spec.metadata["homepage_uri"] = spec.homepage
|
14
|
+
spec.metadata["source_code_uri"] = spec.homepage
|
15
|
+
|
16
|
+
spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
|
17
|
+
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
18
|
+
end
|
19
|
+
spec.bindir = "exe"
|
20
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
21
|
+
spec.require_paths = ["lib"]
|
22
|
+
end
|
metadata
ADDED
@@ -0,0 +1,91 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: win32ole
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.8.8
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Masaki Suketa
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2020-12-03 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: Provides an interface for OLE Automation in Ruby
|
14
|
+
email:
|
15
|
+
- suke@ruby-lang.org
|
16
|
+
executables: []
|
17
|
+
extensions: []
|
18
|
+
extra_rdoc_files: []
|
19
|
+
files:
|
20
|
+
- ".gitignore"
|
21
|
+
- ".travis.yml"
|
22
|
+
- Gemfile
|
23
|
+
- LICENSE.txt
|
24
|
+
- README.md
|
25
|
+
- Rakefile
|
26
|
+
- bin/console
|
27
|
+
- bin/setup
|
28
|
+
- ext/win32ole/depend
|
29
|
+
- ext/win32ole/extconf.rb
|
30
|
+
- ext/win32ole/sample/excel1.rb
|
31
|
+
- ext/win32ole/sample/excel2.rb
|
32
|
+
- ext/win32ole/sample/excel3.rb
|
33
|
+
- ext/win32ole/sample/ie.rb
|
34
|
+
- ext/win32ole/sample/ieconst.rb
|
35
|
+
- ext/win32ole/sample/ienavi.rb
|
36
|
+
- ext/win32ole/sample/ienavi2.rb
|
37
|
+
- ext/win32ole/sample/oledirs.rb
|
38
|
+
- ext/win32ole/sample/olegen.rb
|
39
|
+
- ext/win32ole/sample/xml.rb
|
40
|
+
- ext/win32ole/win32ole.c
|
41
|
+
- ext/win32ole/win32ole.h
|
42
|
+
- ext/win32ole/win32ole_error.c
|
43
|
+
- ext/win32ole/win32ole_error.h
|
44
|
+
- ext/win32ole/win32ole_event.c
|
45
|
+
- ext/win32ole/win32ole_event.h
|
46
|
+
- ext/win32ole/win32ole_method.c
|
47
|
+
- ext/win32ole/win32ole_method.h
|
48
|
+
- ext/win32ole/win32ole_param.c
|
49
|
+
- ext/win32ole/win32ole_param.h
|
50
|
+
- ext/win32ole/win32ole_record.c
|
51
|
+
- ext/win32ole/win32ole_record.h
|
52
|
+
- ext/win32ole/win32ole_type.c
|
53
|
+
- ext/win32ole/win32ole_type.h
|
54
|
+
- ext/win32ole/win32ole_typelib.c
|
55
|
+
- ext/win32ole/win32ole_typelib.h
|
56
|
+
- ext/win32ole/win32ole_variable.c
|
57
|
+
- ext/win32ole/win32ole_variable.h
|
58
|
+
- ext/win32ole/win32ole_variant.c
|
59
|
+
- ext/win32ole/win32ole_variant.h
|
60
|
+
- ext/win32ole/win32ole_variant_m.c
|
61
|
+
- ext/win32ole/win32ole_variant_m.h
|
62
|
+
- lib/win32ole.rb
|
63
|
+
- lib/win32ole/property.rb
|
64
|
+
- win32ole.gemspec
|
65
|
+
homepage: https://github.com/ruby/win32ole
|
66
|
+
licenses:
|
67
|
+
- Ruby
|
68
|
+
- BSD-2-Clause
|
69
|
+
metadata:
|
70
|
+
homepage_uri: https://github.com/ruby/win32ole
|
71
|
+
source_code_uri: https://github.com/ruby/win32ole
|
72
|
+
post_install_message:
|
73
|
+
rdoc_options: []
|
74
|
+
require_paths:
|
75
|
+
- lib
|
76
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
77
|
+
requirements:
|
78
|
+
- - ">="
|
79
|
+
- !ruby/object:Gem::Version
|
80
|
+
version: 2.3.0
|
81
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
82
|
+
requirements:
|
83
|
+
- - ">="
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: '0'
|
86
|
+
requirements: []
|
87
|
+
rubygems_version: 3.2.0.rc.2
|
88
|
+
signing_key:
|
89
|
+
specification_version: 4
|
90
|
+
summary: Provides an interface for OLE Automation in Ruby
|
91
|
+
test_files: []
|