Ruby 4.0 リファレンスマニュアル

instance method WIN32OLE_RECORD#ole_instance_variable_set

ole_instance_variable_set(name, val) -> objectRuby 3.0 から[permalink][rdoc][edit]

VT_RECORD OLE変数のメンバ名に対応する値を設定します。メンバ名が正しくない場合はKeyErrorが発生します。

WIN32OLE_RECORD#method_missing経由でメンバの値を直接設定できない場合に利用します。

[PARAM] name:
設定するメンバ名を文字列またはシンボルで指定します。
[PARAM] val:
設定する値を指定します。
[RETURN]
設定した値を返します。
[EXCEPTION] TypeError:
nameがStringまたはSymbolではありません。
[EXCEPTION] KeyError:
指定したメンバ名がselfに存在しません。

VB.NETのComServerプロジェクトで作成したCOMサーバの以下のBook構造体の titleメンバに値を設定するには、次のようにします。

Imports System.Runtime.InteropServices
Public Class ComClass
    <MarshalAs(UnmanagedType.BStr)> _
    Public title As String
    Public cost As Integer
End Class
server = WIN32OLE.new('ComServer.ComClass')
obj = WIN32OLE_RECORD.new('Book', server)
obj.ole_instance_variable_set(:title, "The Ruby Book")

[SEE_ALSO] WIN32OLE_RECORD#method_missing, WIN32OLE_RECORD#ole_instance_variable_get