Method: WIN32OLE::Record#ole_instance_variable_set
- Defined in:
- win32ole_record.c
#ole_instance_variable_set(name, val) ⇒ Object
Sets value specified by the member name of VT_RECORD OLE object. If the member name is not correct, KeyError exception is raised. If you can’t set value of member of VT_RECORD OLE object directly, use this method.
If COM server in VB.NET ComServer project is the following:
Imports System.Runtime.InteropServices
Public Class ComClass
<MarshalAs(UnmanagedType.BStr)> _
Public title As String
Public cost As Integer
End Class
then setting value of the ‘title’ member is as following:
srver = WIN32OLE.new('ComServer.ComClass')
obj = WIN32OLE::Record.new('Book', server)
obj.ole_instance_variable_set(:title, "The Ruby Book")
541 542 543 544 545 546 547 548 549 550 551 552 553 |
# File 'win32ole_record.c', line 541 static VALUE folerecord_ole_instance_variable_set(VALUE self, VALUE name, VALUE val) { VALUE sname; if(!RB_TYPE_P(name, T_STRING) && !RB_TYPE_P(name, T_SYMBOL)) { rb_raise(rb_eTypeError, "wrong argument type (expected String or Symbol)"); } sname = name; if (RB_TYPE_P(name, T_SYMBOL)) { sname = rb_sym2str(name); } return olerecord_ivar_set(self, sname, val); } |