[Ruby] Win32OLE マルチプラットフォーム対応版 0.00001(2007-04-01)
[ruby-list:43329]に急遽対応すべく、
マルチプラットフォーム対応版を作成しました。
まだ初期バージョンなのでやっと動くという程度です。
1.0がリリースできる頃には、まともに動作するものができるだろうという
期待を込めて、0.00001からスタートします。
一応 Ruby 1.8 の Win32OLE Version 0.6.9 互換にしています。以下のスクリプトをwin32ole.rbという名前で保存してお使いください。簡単な動作確認は、Vine Linux 4.1 の Rubyで実施しています。
注意:ちゃんと内部の動きもふくめ、意味の理解できる人だけ使うようにしてください。
#
# win32ole.rb
# for multi-platform version of Win32OLE
# VERSION 0.00001(2007-04-01)
#
begin
require 'win32ole.so'
rescue LoadError
class WIN32OLERuntimeError < RuntimeError
end
def unsupported
raise(WIN32OLERuntimeError, "sorry, not supported in this environment.")
end
module UNSUPPORTED
def initialize(*argv)
unsupported
end
def method_missing
unsupported
end
end
class WIN32OLE
include UNSUPPORTED
VERSION="0.00001(2007-04-01)"
CP_ACP = 0
CP_OEMCP = 1
CP_MACCP = 2
CP_THREAD_ACP = 3
CP_SYMBOL = 42
CP_UTF7 = 65000
CP_UTF8 = 65001
ARGV = []
module VARIANT
VT_ARRAY = 8192
VT_BOOL = 11
VT_BSTR = 8
VT_BYREF = 16384
VT_CY = 6
VT_DATE = 7
VT_DISPATCH = 9
VT_ERROR = 10
VT_I1 = 16
VT_I2 = 2
VT_I4 = 3
VT_INT = 22
VT_PTR = 26
VT_R4 = 4
VT_R8 = 5
VT_UI1 = 17
VT_UI2 = 18
VT_UI4 = 19
VT_UINT = 23
VT_UNKNOWN = 13
VT_USERDEFINED = 29
VT_VARIANT = 12
end
end
class WIN32OLE_VARIABLE
include UNSUPPORTED
end
class WIN32OLE_METHOD
include UNSUPPORTED
end
class WIN32OLE_TYPE
include UNSUPPORTED
end
class WIN32OLE_EVENT
include UNSUPPORTED
end
class WIN32OLE_VARIABLE
include UNSUPPORTED
end
end
ToDo
インストーラをつける。
Ruby 1.9 相当のWin32OLEに対応する。
ドキュメントを書く。
WIN32OLE_TYPE.ole_classesなどのクラスメソッドもちゃんと対応する。
せめて、各メソッドの引数のチェックぐらいは、WindowsのWin32OLEと同じにする。
| 固定リンク
« [本] 物しか書けなかった物書き (ロバート・トゥーイ) | トップページ | [Ruby] Win32OLE »
この記事へのコメントは終了しました。
コメント