Ruby 2.3.0 リファレンスマニュアル > ライブラリ一覧 > win32oleライブラリ > WIN32OLE_PARAMクラス
クラスの継承リスト: WIN32OLE_PARAM < Object < Kernel < BasicObject
OLEオートメーションサーバが持つメソッドのパラメータ情報を提供します。
WIN32OLE_PARAMは、WIN32OLE_METHODのパラメータのメタデータを保持し ます。
tobj = WIN32OLE_TYPE.new('Microsoft Excel 9.0 Object Library', 'Workbook') method = WIN32OLE_METHOD.new(tobj, 'SaveAs') param1 = method.params[0] puts param1.name # => Filename
@see WIN32OLE_METHOD
new(ole_method, index) -> WIN32OLE_PARAM
[permalink][rdoc]メソッドとパラメータ位置を指定してWIN32OLE_PARAMのインスタンスを作成します。
アプリケーションプログラムでは、WIN32OLE_PARAMオブジェクトをnewメソッド で生成するよりも、WIN32OLE_METHOD#paramsを参照するほうが簡単です。
excel = WIN32OLE.new('Excel.Application') method = excel.ole_method('Run') param1 = WIN32OLE_PARAM.new(method, 1) puts "#{param1.ole_type} #{param1.name}"
default -> object | nil
[permalink][rdoc]パラメータを指定しなかった場合の既定値を取得します。
当パラメータが必須パラメータの場合はnilを返します。
tobj = WIN32OLE_TYPE.new('Microsoft Excel 9.0 Object Library', 'Workbook') method = WIN32OLE_METHOD.new(tobj, 'SaveAs') method.params.each do |param| if param.default puts "#{param.name} (= #{param.default})" else puts "#{param}" end end
input? -> bool
[permalink][rdoc]パラメータがクライアントからサーバへ与えるものかを判定します。
OLEオートメーションのパラメータは、in(クライアントからサーバへ与える。 WIN32OLE_PARAM#input?が真)、out(サーバがクライアントへ与える。 WIN32OLE_PARAM#output?が真)および、inout(クライアントからサーバ へ与え、サーバがクライアントへ与える)の3種類の方向属性のいずれかを持ち ます。
input?メソッドはin属性またはinout属性なら真を返します。
tobj = WIN32OLE_TYPE.new('Microsoft Excel 9.0 Object Library', 'Workbook') method = WIN32OLE_METHOD.new(tobj, 'SaveAs') param1 = method.params[0] puts param1.input? # => true
[SEE_ALSO] http://msdn.microsoft.com/en-us/library/aa367051(v=VS.85).aspx
name -> String
[permalink][rdoc]to_s -> String
パラメータ名を取得します。
tobj = WIN32OLE_TYPE.new('Microsoft Excel 9.0 Object Library', 'Workbook') method = WIN32OLE_METHOD.new(tobj, 'SaveAs') param1 = method.params[0] puts param1.name # => Filename
ole_type -> String
[permalink][rdoc]パラメータの型名を取得します。
tobj = WIN32OLE_TYPE.new('Microsoft Excel 9.0 Object Library', 'Workbook') method = WIN32OLE_METHOD.new(tobj, 'SaveAs') param1 = method.params[0] puts param1.ole_type # => VARIANT
OLEオートメーションの型名は、対応するWIN32OLE::VARIANTの定数の先 頭の「VT_」を削除した名称を持ちます。
たとえば、32ビット符号付き整数であれば「I4」となります。
[SEE_ALSO] WIN32OLE::VARIANT
ole_type_detail -> [String]
[permalink][rdoc]パラメータの属性を取得します。
tobj = WIN32OLE_TYPE.new('Microsoft Excel 9.0 Object Library', 'IWorksheetFunction') method = WIN32OLE_METHOD.new(tobj, 'SumIf') param1 = method.params[0] p param1.ole_type_detail # => ["PTR", "USERDEFINED", "Range"]
パラメータの取り得る属性値はCOMのIDL(インターフェイス定義言語)によって規定されています。
[SEE_ALSO] http://msdn.microsoft.com/en-us/library/aa367042(VS.85).aspx
optional? -> bool
[permalink][rdoc]パラメータがオプションかどうかを取得します。
tobj = WIN32OLE_TYPE.new('Microsoft Excel 9.0 Object Library', 'Workbook') method = WIN32OLE_METHOD.new(tobj, 'SaveAs') param1 = method.params[0] puts "#{param1.name} #{param1.optional?}" # => Filename true
output? -> bool
[permalink][rdoc]パラメータがクライアントからの結果を受け取るためのものかを判定します。
OLEオートメーションのパラメータは、in(クライアントからサーバへ与える。 WIN32OLE_PARAM#input?が真)、out(サーバがクライアントへ与える。 WIN32OLE_PARAM#output?が真)および、inout(クライアントからサーバ へ与え、サーバがクライアントへ与える)の3種類の方向属性のいずれかを持ち ます。
output?メソッドはout属性またはinout属性なら真を返します。
tobj = WIN32OLE_TYPE.new('Microsoft Internet Controls', 'DWebBrowserEvents') method = WIN32OLE_METHOD.new(tobj, 'NewWindow') method.params.each do |param| puts "#{param.name} #{param.output?}" end The result of above script is following: URL false Flags false TargetFrameName false PostData false Headers false Processed true
[SEE_ALSO] http://msdn.microsoft.com/en-us/library/aa367136(v=VS.85).aspx
retval? -> bool
[permalink][rdoc]パラメータが戻り値かどうかを判定します。
OLEオートメーションの規定では、メソッドの戻り値は引数リストの最右端のパ ラメータをout属性(WIN32OLE_PARAM#output?が真)とすることで実現し ます。ただし、そのパラメータをOLEオートメーション呼び出しを記述する言語 が戻り値のように扱うか、それとも引数リストに並べるかはretval属性によっ て決定されます。
retval?メソッドは、戻り値として記述する場合に真となります。
tobj = WIN32OLE_TYPE.new('DirectX 7 for Visual Basic Type Library', 'DirectPlayLobbyConnection') method = WIN32OLE_METHOD.new(tobj, 'GetPlayerShortName') param = method.params[0] puts "#{param.name} #{param.retval?}" # => name true
[SEE_ALSO] http://msdn.microsoft.com/en-us/library/aa367158(v=VS.85).aspx