singleton method WIN32OLE.const_load

const_load(ole, mod = WIN32OLE) -> ()[permalink][rdoc][edit]

OLEオートメーションサーバが保持する定数を読み込み、指定されたモジュールに組み込みます。

OLEオートメーションサーバは、定数をクライアントへ提供できます。

const_loadメソッドはこれらの定数を読み込み、指定したモジュールに組み込むことで参照可能とします。

[PARAM] ole:
定数を読み込む対象のWIN32OLEオブジェクトまたはタイプライブラリ名(文字列)を指定します。
[PARAM] mod:
定数を定義する対象のモジュールを指定します。省略時は WIN32OLEに組み込まれます。
[EXCEPTION] WIN32OLERuntimeError:
オートメーションサーバの呼び出しに失敗しました。理由はメッセージのHRESULTを調べてください。

OLEオートメーションの定数は通常、VBのコード規約に準じて、vbConstantsのように小文字で始まります。しかし、Rubyの定数は大文字で開始する規則のため、WIN32OLEによってVbConstantsのように自動的に先頭が大文字化されます。

また、先頭が英字で始まらない定数については、CONSTANTSハッシュに登録されます。この場合、元の定数名がキーとなります。

module EXCEL_CONST
end

excel = WIN32OLE.new('Excel.Application')
WIN32OLE.const_load(excel, EXCEL_CONST)
puts EXCEL_CONST::XlTop # => -4160
puts EXCEL_CONST::CONSTANTS['_xlDialogChartSourceData'] # => 541

モジュール名を省略した例

WIN32OLE.const_load(excel)
puts WIN32OLE::XlTop # => -4160

タイプライブラリ名を指定した例

module MSO
end

WIN32OLE.const_load('Microsoft Office 9.0 Object Library', MSO)
puts MSO::MsoLineSingle # => 1