Ruby 2.3.0 リファレンスマニュアル > ライブラリ一覧 > win32oleライブラリ > WIN32OLE_VARIANTクラス
クラス・モジュールの継承リスト: WIN32OLE_VARIANT < Object < Kernel < BasicObject
OLEオートメーションの標準型のVARIANTオブジェクトをRubyで利用するためのクラスです。
VARIANT型とは、型情報と値のペアから構成されるデータ型で、元はVBの型無し変数のための構造体です。OLEオートメーションのメソッド呼び出しには汎用型として引数にはVARIANT型を利用します。
OLEオートメーションのメソッド呼び出し規約では、引数はVARIANT型の配列として定義されています。
この規約に対して、WIN32OLEでは、VARIANT型の値に対する参照を引数配列の各要素に設定します。この実装は、ほとんどのOLEオートメーションサーバで正しく処理されます。
しかし、一部のOLEオートメーションサーバは、引数配列の要素にVARIANT型の値そのものを要求します。この場合、WIN32OLEの実装は正しく処理されません。
WIN32OLE_VARIANTオブジェクトを利用すると、このようなOLEオートメーションサーバのメソッド呼び出しに対して、VARIANT型の値を引数配列に設定することをWIN32OLEへ指示できます。
なお、WIN32OLE_VARIANTを利用する必要の有無は、呼び出し対象のOLEオートメーションサーバの仕様または実装に依存します。
shell = WIN32OLE.new('Shell.Application') folder = shell.NameSpace('C:\\Users\\Public\\Documents') item = folder.ParseName('test.txt') v = WIN32OLE_VARIANT.new('Delete') item.invokeVerb(v) # => ゴミ箱への移動ダイアログを表示
上記サンプルの最後の行を
item.invokeVerb('Delete')
とすると、FolderItemオブジェクトは引数を認識できず、既定の動作として Openを実行します。
プログラムの見た目と異なり、後者のコードに対してWIN32OLEは、'Delete'という文字列を格納したVARIANT型への参照を引数として与えるためです。それに対して前者では、'Delete'という文字列を格納したVARIANT型を引数として与えます。
定義 | 説明 | |
---|---|---|
array(dims, vt) -> WIN32OLE_VARIANT
|
配列用のVARIANTオブジェクトを生成します。 |
|
new(val, vartype = nil) -> WIN32OLE_VARIANT
|
指定したオブジェクトを値とするWIN32OLE_VARIANTオブジェクトを生成します。 |
定義 | 説明 | |
---|---|---|
self[i...] -> object
|
配列型のWIN32OLE_VARIANTの要素を取得します。 |
|
self[i...] = val
|
配列型のWIN32OLE_VARIANTの要素を設定します。 |
|
value -> object
|
値に対応するRubyオブジェクトを取得します。 |
|
value=(val) -> ()
|
WIN32OLE_VARIANTの値を再設定します。 |
|
vartype -> Integer
|
selfの型情報を取得します。 |
定義 | 説明 | |
---|---|---|
Empty -> WIN32OLE_VARIANT
|
EMPTY型のWIN32OLE_VARIANTオブジェクトです。 |
|
Nothing -> WIN32OLE_VARIANT
|
DISPATCH型の空のオブジェクトです。 |
|
Null -> WIN32OLE_VARIANT
|
NULL型のWIN32OLE_VARIANTオブジェクトです。 |
!
!=
__id__
__send__
instance_eval
instance_exec
method_missing
singleton_method_added
singleton_method_removed
singleton_method_undefined
!~
<=>
==
===
=~
_dump
class
clone
define_singleton_method
display
enum_for
eql?
equal?
extend
freeze
frozen?
hash
initialize
initialize_copy
inspect
instance_of?
instance_variable_defined?
instance_variable_get
instance_variable_set
instance_variables
is_a?
itself
marshal_dump
marshal_load
method
methods
nil?
object_id
pretty_inspect
pretty_print
pretty_print_cycle
pretty_print_inspect
pretty_print_instance_variables
private_methods
protected_methods
psych_to_yaml
public_method
public_methods
public_send
remove_instance_variable
respond_to?
respond_to_missing?
send
singleton_class
singleton_method
singleton_methods
taint
tainted?
tap
to_a
to_ary
to_hash
to_int
to_io
to_proc
to_regexp
to_s
to_str
trust
untaint
untrust
untrusted?
.yaml_tag
::ARGF
::ARGV
::DATA
::ENV
::FALSE
::NIL
::RUBY_COPYRIGHT
::RUBY_DESCRIPTION
::RUBY_ENGINE
::RUBY_ENGINE_VERSION
::RUBY_PATCHLEVEL
::RUBY_PLATFORM
::RUBY_RELEASE_DATE
::RUBY_REVISION
::RUBY_VERSION
::SCRIPT_LINES__
::STDERR
::STDIN
::STDOUT
::TOPLEVEL_BINDING
::TRUE