ole_instance_variable_get(name) -> objectRuby 3.0 から[permalink][rdoc][edit]-
VT_RECORD OLE変数のメンバ名に対応する値を取得します。メンバ名が正しくない場合はKeyErrorが発生します。
RubyのObjectが持つメソッドと同名のメンバを持つなど、メンバに WIN32OLE_RECORD#method_missing経由で直接アクセスできない場合に利用します。
- [PARAM]
name: - 取得するメンバ名を文字列またはシンボルで指定します。
- [RETURN]
- 指定したメンバの値を返します。
- [EXCEPTION]
TypeError: - nameがStringまたはSymbolではありません。
- [EXCEPTION]
KeyError: - 指定したメンバ名がselfに存在しません。
VB.NETのComServerプロジェクトで作成したCOMサーバの以下のComObject構造体(Object#object_idと同名のメンバを持つ)に対して、
Imports System.Runtime.InteropServices Public Class ComClass Public Structure ComObject Public object_id As Integer End Structure End Class以下のようにすると、
例obj.object_idはRubyのObject#object_idを返してしまうため、代わりにole_instance_variable_getを利用します。server = WIN32OLE.new('ComServer.ComClass') obj = WIN32OLE_RECORD.new('ComObject', server) # obj.object_id はRubyのObject#object_idを返してしまう obj.ole_instance_variable_get(:object_id) # => nil[SEE_ALSO] WIN32OLE_RECORD#method_missing, WIN32OLE_RECORD#ole_instance_variable_set
- [PARAM]