Ruby 1.9.3 リファレンスマニュアル > ライブラリ一覧 > win32oleライブラリ > WIN32OLE_TYPELIBクラス
クラスの継承リスト: WIN32OLE_TYPELIB < Object < Kernel < BasicObject
OLEオートメーションサーバの型情報ライブラリ(TypeLib)を操作するための クラスです。
OLEオートメーションサーバはクライアントに、クラス、インターフェイス、メ ソッドなどのメタデータを提供するための機構を持ちます。この情報は拡張子 からTLBと呼ばれるライブラリまたはオートメーションサーバのプログラム内の リソースとして保持され、クライアントからの要求によって参照可能となりま す。
WIN32OLE_TYPELIBクラスは、TypeLibを操作して各種情報を参照するためのオブ ジェクトを生成します。
require 'win32ole' tlib = WIN32OLE_TYPELIB.new('Microsoft Excel 14.0 Object Library') puts "Guid of Excel typelib = #{tlib.guid}" puts "version = #{tlib.major_version}.#{tlib.minor_version}" puts "creatable classes:" tlib.ole_types.select{|cls| cls.progid }.each do |cls| puts " #{cls.name}: PROGID=#{cls.progid}" end
上記を実行すると以下の出力を得ます。
Guid of Excel typelib = {00020813-0000-0000-C000-000000000046} version = 1.7 creatable classes: Application: PROGID=Excel.Application.14 Chart: PROGID=Excel.Chart.8 Worksheet: PROGID=Excel.Sheet.8
ここでは、Excelのクラスのうち、WIN32OLE.newで作成可能なクラスを引 数で指定する名前(PROGID)と共に示しています。
new(libname, mjv = nil, miv = nil) -> WIN32OLE_TYPELIB
[permalink][rdoc]WIN32OLE_TYPELIBオブジェクトを生成します。
tlib1 = WIN32OLE_TYPELIB.new('Microsoft Excel 14.0 Object Library') tlib2 = WIN32OLE_TYPELIB.new('{00020813-0000-0000-C000-000000000046}') tlib3 = WIN32OLE_TYPELIB.new('{00020813-0000-0000-C000-000000000046}', 1.7) tlib4 = WIN32OLE_TYPELIB.new('{00020813-0000-0000-C000-000000000046}', 1, 7) tlib5 = WIN32OLE_TYPELIB.new("C:\\WINDOWS\\SYSTEM32\\SHELL32.DLL") puts tlib1.name # => 'Microsoft Excel 14.0 Object Library' puts tlib2.name # => 'Microsoft Excel 14.0 Object Library' puts tlib3.name # => 'Microsoft Excel 14.0 Object Library' puts tlib4.name # => 'Microsoft Excel 14.0 Object Library' puts tlib5.name # => 'Microsoft Shell Controls And Automation'
TypeLibは、レジストリのHKEY_CLASS_ROOT\TypeLibキーの下にGUIDをキーとし て格納されています。GUIDキーの下にバージョン番号キーが並び、ドキュメン ト文字列はバージョン番号キーの既定値に設定されています。
ドキュメント文字列は、コンテキストヘルプなどに利用可能なTypeLibの簡単な 説明文で、通常バージョン番号を含みます。
typelibs -> [WIN32OLE_TYPELIB]
[permalink][rdoc]システムに登録されているすべてのTypeLibを取得します。
tlibs = WIN32OLE_TYPELIB.typelibs
guid -> String
[permalink][rdoc]TypeLibのGUIDを取得します。
tlib = WIN32OLE_TYPELIB.new('Microsoft Excel 14.0 Object Library') puts tlib.guid # => '{00020813-0000-0000-C000-000000000046}'
library_name -> String
[permalink][rdoc]TypeLibのヘルプファイル用ドキュメント文字列からTypeLibの名前を取得します。
tlib = WIN32OLE_TYPELIB.new('Microsoft Excel 14.0 Object Library') tlib.library_name # => Excel
major_version -> Integer
[permalink][rdoc]TypeLibのメジャーバージョン番号を取得します。
tlib = WIN32OLE_TYPELIB.new('Microsoft Excel 14.0 Object Library') puts tlib.major_version # => 1
minor_version -> Integer
[permalink][rdoc]TypeLibのマイナーバージョン番号を取得します。
tlib = WIN32OLE_TYPELIB.new('Microsoft Excel 14.0 Object Library') puts tlib.minor_version # => 7
name -> String
[permalink][rdoc]to_s -> String
TypeLibのドキュメント文字列を取得します。
ドキュメント文字列は、コンテキストヘルプなどに利用可能なTypeLibの簡単な 説明文で、通常バージョン番号を含みます。
tlib = WIN32OLE_TYPELIB.new('Microsoft Excel 14.0 Object Library') puts tlib.name # => 'Microsoft Excel 14.0 Object Library'
ole_types -> [WIN32OLE_TYPE]
[permalink][rdoc]ole_classes -> [WIN32OLE_TYPE]
TypeLibに格納されているすべての型を取得します。
TypeLibに格納されている型には、クラス(CoClass——コンポーネントクラス) やEnum(列挙子)、構造体などがあります。
tlib = WIN32OLE_TYPELIB.new('Microsoft Excel 14.0 Object Library') classes = tlib.ole_types.map{|k| k.name} # => ["Adjustments", "CalloutFormat", ...]
path -> String
[permalink][rdoc]TypeLibのパス名を取得します。
tlib = WIN32OLE_TYPELIB.new('Microsoft Excel 14.0 Object Library') puts tlib.path # => 'C:\...\EXCEL.EXE'
TypeLibは拡張子TLB(まれにOLB)という独立したファイルの場合と、サーバの DLLやEXE内にリソースとして組み込まれている場合とがあります。
version -> Float
[permalink][rdoc]TypeLibのバージョン番号を取得します。
tlib = WIN32OLE_TYPELIB.new('Microsoft Excel 14.0 Object Library') puts tlib.version # => 1.7
visible? -> bool
[permalink][rdoc]TypeLibの情報が公開情報かどうかを照会します。
このメソッドは、TypeLibの属性(TLIBATTR)のフラグ値が0、制限 (LIBFLAG_FRESTRICTED)、コントロール内部使用(LIBFLAG_FHIDDEN)のいずれか であれば非公開TypeLibとみなして偽を返します。
tlib = WIN32OLE_TYPELIB.new('Microsoft Excel 14.0 Object Library') puts tlib.visible? # => true