Ruby 1.8.7 リファレンスマニュアル > ライブラリ一覧 > win32oleライブラリ > WIN32OLE_METHODクラス
クラスの継承リスト: WIN32OLE_METHOD < Object < Kernel
OLEオートメーションサーバが持つメソッドの情報を提供します。
WIN32OLE_METHODは、WIN32OLE#ole_methodsなどの呼び出しによって返さ れるオブジェクトで、OLEオートメーションサーバのメソッドの情報(メタデー タ)を保持します。
excel = WIN32OLE.new('Excel.Application') excel.ole_methods.each do |method| if method.visible? puts <<SIGNATURE #{method.return_type} #{method.name}(#{ method.params.map {|p| "#{p.ole_type} #{p.name}"}.join(', ') }) : #{method.helpstring} SIGNATURE end end
@see WIN32OLE#ole_methods, WIN32OLE#ole_func_methods, WIN32OLE#ole_get_methods, WIN32OLE#ole_put_methods, WIN32OLE#ole_method, WIN32OLE#ole_method_help, WIN32OLE_PARAM
new(ole_type, method) -> WIN32OLE_METHOD
[permalink][rdoc]WIN32OLE_TYPEとメソッド名を指定してWIN32OLE_METHODのインスタンス を生成します。
OLEオートメーションサーバの型情報とメソッド名からWIN32OLE_METHODのイン スタンスを生成します。
アプリケーションプログラムでは、WIN32OLE_METHODオブジェクトをnewメソッ ドで生成するよりも、WIN32OLE#ole_methodなどのメソッドを参照するほ うが簡単です。
tobj = WIN32OLE_TYPE.new('Microsoft Excel 14.0 Object Library', 'Workbook') method = WIN32OLE_METHOD.new(tobj, 'SaveAs')
dispid -> Integer
[permalink][rdoc]メソッドのディスパッチID(DISPID)を取得します。
ディスパッチIDはメソッドの一意識別子です。WIN32OLEでは、 WIN32OLE#_invokeなどのメソッドで、呼び出すサーバのメソッドを指定 するのに利用します。
tobj = WIN32OLE_TYPE.new('Microsoft Excel 14.0 Object Library', 'Workbooks') method = WIN32OLE_METHOD.new(tobj, 'Add') puts method.dispid # => 181
[SEE_ALSO] WIN32OLE#_invoke, WIN32OLE#_getproperty, WIN32OLE#_setproperty
event? -> bool
[permalink][rdoc]メソッドがイベントかどうかを取得します。
イベントとはこのサーバが実装しているメソッドではなく、クライアント側が サーバ側の通知を受けるために実装するメソッドです。
tobj = WIN32OLE_TYPE.new('Microsoft Excel 14.0 Object Library', 'Workbook') method = WIN32OLE_METHOD.new(tobj, 'SheetActivate') puts method.event? # => true
[SEE_ALSO] WIN32OLE_EVENT
event_interface -> String | nil
[permalink][rdoc]メソッドがイベントの場合、イベントのインターフェイス名を取得します。
tobj = WIN32OLE_TYPE.new('Microsoft Excel 14.0 Object Library', 'Workbook') method = WIN32OLE_METHOD.new(tobj, 'SheetActivate') puts method.event_interface # => WorkbookEvents
helpcontext -> Integer | nil
[permalink][rdoc]メソッドのヘルプコンテキストを取得します。
ヘルプコンテキストは、関連するヘルプファイル上のトピック位置を示す整数 値です。
tobj = WIN32OLE_TYPE.new('Microsoft Excel 14.0 Object Library', 'Workbooks') method = WIN32OLE_METHOD.new(tobj, 'Add') puts method.helpcontext # => 65717
WIN32OLE_METHODオブジェクトを引数として、WIN32OLE.ole_show_helpで ヘルプファイルを表示する場合には、WIN32OLEが内部で当メソッドを呼び出し ます。
[SEE_ALSO] WIN32OLE.ole_show_help
helpfile -> String | nil
[permalink][rdoc]ヘルプファイルのパス名を取得します。
メソッドにヘルプファイルが関連付けられている場合、該当ヘルプファイルの パス名を返します。
tobj = WIN32OLE_TYPE.new('Microsoft Excel 14.0 Object Library', 'Workbooks') method = WIN32OLE_METHOD.new(tobj, 'Add') puts method.helpfile # => C:\...\VBAXL9.CHM
メソッドにヘルプファイルが関連付けられている場合、WIN32OLE.ole_show_helpにWIN32OLE_METHODオブジェクトを与えてヘルプファイルを表示できます。
[SEE_ALSO] WIN32OLE.ole_show_help
helpstring -> String | nil
[permalink][rdoc]メソッドのヘルプ文字列を取得します。
helpstringは、IDEがメソッドのバルーンヘルプを表示するような場合に利用可 能な、1行程度でメソッドを説明する文字列です。
tobj = WIN32OLE_TYPE.new('Microsoft Internet Controls', 'IWebBrowser') method = WIN32OLE_METHOD.new(tobj, 'Navigate') puts method.helpstring # => Navigates to a URL or file.
invkind -> Integer
[permalink][rdoc]メソッドの種類を示すINVOKEKIND列挙値を取得します。
ここで言うメソッドの種類というのは、OLEオートメーションクライアントの記 述言語がどのような形式でサーバ呼び出しを記述すべきかを指定した属性値で す。
tobj = WIN32OLE_TYPE.new('Microsoft Excel 14.0 Object Library', 'Workbooks') method = WIN32OLE_METHOD.new(tobj, 'Add') puts method.invkind # => 1
INVOKEKIND列挙値は以下の通りです。メソッドの種類は以下の値の論理和で示 されます。
関数呼び出し形式で記述するメソッドです。
プロパティ参照形式で記述するメソッドです。
プロパティに値を設定する形式で記述するメソッドです。
プロパティに参照を設定する形式で記述するメソッドです。
なおINVOKE_PROPERTYPUTREFとINVOKE_PROPERTYPUTは、プロパティ設定形式が2 種類ある言語用の区分です。Rubyでの記述時はどちらも「prop=(arg)」の形式 で記述します。
invoke_kind -> String
[permalink][rdoc]メソッドの種類を文字列で取得します。
ここで言うメソッドの種類というのは、OLEオートメーションクライアントの記 述言語がどのような形式でサーバ呼び出しを記述すべきかを指定した属性値で す。
tobj = WIN32OLE_TYPE.new('Microsoft Excel 14.0 Object Library', 'Workbooks') method = WIN32OLE_METHOD.new(tobj, 'Add') puts method.invoke_kind # => "FUNC"
返送値は以下のいずれかとなります。値の意味は WIN32OLE_METHOD#invkindの説明を参照してください。
INVOKE_PROPETYGETとINVOKE_PROPETYPUTの両方が設定されています。
INVOKE_PROPETYGETが設定されています。
INVOKE_PROPERTYPUTが設定されています。
INVOKE_PROPERTYPUTREFが設定されています。
INVOKE_FUNCが設定されています。
上記のいずれにも当てはまりません。
[SEE_ALSO] WIN32OLE_METHOD#invkind
name -> String
[permalink][rdoc]to_s -> String
メソッド名を取得します。
tobj = WIN32OLE_TYPE.new('Microsoft Excel 14.0 Object Library', 'Workbook') method = WIN32OLE_METHOD.new(tobj, 'SaveAs') puts method.name # => SaveAs
offset_vtbl -> Integer
[permalink][rdoc]このメソッドのVTBLのオフセットを取得します。
VTBLはC++やCでメソッドを呼び出すために利用する関数ポインタのテーブルです。
tobj = WIN32OLE_TYPE.new('Microsoft Excel 14.0 Object Library', 'Workbooks') method = WIN32OLE_METHOD.new(tobj, 'Add') puts method.offset_vtbl # => 40
params -> [WIN32OLE_PARAM]
[permalink][rdoc]メソッドのパラメータ情報を取得します。
このメソッドのパラメータをWIN32OLE_PARAMの配列として返します。配 列の最初の要素が最左端のパラメータに対応します。
tobj = WIN32OLE_TYPE.new('Microsoft Excel 14.0 Object Library', 'Workbook') method = WIN32OLE_METHOD.new(tobj, 'SaveAs') p method.params # => [Filename, FileFormat, Password, WriteResPassword, ReadOnlyRecommended, CreateBackup, AccessMode, ConflictResolution, AddToMru, TextCodepage, TextVisualLayout]
return_type -> String
[permalink][rdoc]メソッドの返り値の型名を取得します。
tobj = WIN32OLE_TYPE.new('Microsoft Excel 14.0 Object Library', 'Application') method = WIN32OLE_METHOD.new(tobj, 'Visible') puts method.return_type # => BOOL
OLEオートメーションの型名は、対応するWIN32OLE::VARIANTの定数の先 頭の「VT_」を削除した名称を持ちます。
たとえば、32ビット符号付き整数であれば「I4」となります。
[SEE_ALSO] WIN32OLE::VARIANT
return_type_detail -> [String]
[permalink][rdoc]返り値の型と属性を取得します。
tobj = WIN32OLE_TYPE.new('Microsoft Excel 14.0 Object Library', 'Application') method = WIN32OLE_METHOD.new(tobj, 'Workbooks') p method.return_type_detail # => ["PTR", "USERDEFINED", "Workbooks"]
属性が付加されていない場合は、WIN32OLE_METHOD#return_typeを要素と した配列が返ります。
返り値の取り得る属性値はCOMのIDL(インターフェイス定義言語)によって規 定されています。
[SEE_ALSO] http://msdn.microsoft.com/en-us/library/aa367042(VS.85).aspx
return_vtype -> Integer
[permalink][rdoc]メソッドの返り値の型を示す数値を取得します。
tobj = WIN32OLE_TYPE.new('Microsoft Excel 14.0 Object Library', 'Application') method = WIN32OLE_METHOD.new(tobj, 'Visible') puts method.return_vtype # => 11
VARENUMの定義は、Platform SDKのwtypes.hにあります。
size_opt_params -> Integer | nil
[permalink][rdoc]オプションパラメータ数を取得します。
tobj = WIN32OLE_TYPE.new('Microsoft Excel 14.0 Object Library', 'Workbook') method = WIN32OLE_METHOD.new(tobj, 'SaveAs') puts method.size_opt_params # => 5
size_params -> Integer | nil
[permalink][rdoc]パラメータ数を取得します。
tobj = WIN32OLE_TYPE.new('Microsoft Excel 14.0 Object Library', 'Workbook') method = WIN32OLE_METHOD.new(tobj, 'SaveAs') puts method.size_params # => 12
visible? -> bool
[permalink][rdoc]このメソッドがクライアントに対して公開されているか(可視性を持つか)ど うかを返します。
tobj = WIN32OLE_TYPE.new('Microsoft Excel 14.0 Object Library', 'Workbooks') method = WIN32OLE_METHOD.new(tobj, 'Add') puts method.visible? # => true