new(typename, obj) -> WIN32OLE_RECORDRuby 3.0 から[permalink][rdoc][edit]-
WIN32OLE_RECORDオブジェクトを生成します。
- [PARAM]
typename: - 構造体名を文字列またはシンボルで指定します。
- [PARAM]
obj: - WIN32OLEオブジェクトまたはWIN32OLE_TYPELIBオブジェクトを指定します。typenameで指定した構造体の型情報を取得するために利用します。
- [RETURN]
- 生成したWIN32OLE_RECORDオブジェクトを返します。
- [EXCEPTION]
ArgumentError: - typenameがStringまたはSymbolではありません。あるいは obj がWIN32OLEオブジェクトまたはWIN32OLE_TYPELIBオブジェクトのいずれでもありません。
- [EXCEPTION]
WIN32OLERuntimeError: - objからITypeLibインタフェースの取得に失敗しました。あるいはtypenameに対応する IRecordInfoインタフェースの取得に失敗しました。
VB.NETのComServerプロジェクトで、以下のBook構造体を持つCOMサーバがあるとします。
Imports System.Runtime.InteropServices Public Class ComClass Public Structure Book <MarshalAs(UnmanagedType.BStr)> _ Public title As String Public cost As Integer End Structure End Classこのとき、次のようにしてWIN32OLE_RECORDオブジェクトを生成できます。
例require 'win32ole' obj = WIN32OLE.new('ComServer.ComClass') book1 = WIN32OLE_RECORD.new('Book', obj) # => WIN32OLE_RECORDオブジェクト tlib = obj.ole_typelib book2 = WIN32OLE_RECORD.new('Book', tlib) # => WIN32OLE_RECORDオブジェクト - [PARAM]