[#36686] 1.1 < 61.1 - 60.0 — Shin-ichiro HARA <sinara@...>

原です。

19 messages 2002/12/06

[#36770] www.ruby-lang.orgリニューアル準備のお知らせ — TADA Tadashi <sho@...>

ruby-lang.orgのwebmasterチームでは、タイムリーな情報提供と使いやすい

11 messages 2002/12/16

[ruby-list:36765] Re: WIN32OLEでの定数読み込み

From: arton <artonx@...>
Date: 2002-12-14 09:52:00 UTC
List: ruby-list #36765
artonです。

On Sat, 14 Dec 2002 14:20:00 +0900
Kazuhiro NISHIYAMA <zn@mbf.nifty.com>さん wrote:
> includeしておけばMSXML::NODE_ELEMENTでいいと思うのですが、
> そうでもないのでしょうか?
そうでもないです。
1.(better)としては、WIN32OLEが自動的にincludeまで行うことですが、この場
合、現在、定義されているCONSTANTSというハッシュに重複が生じるため(WORDの
場合は重複しても構わないと言えなくもないですが、意味的には異なるモジュー
ルの定数が同一になるのは、同一のモジュール内の重複定義という現在の状況よ
り悪いと思います=というのは、警告が出なくなるため(Win32OLEで警告を出す
という方法が無いわけではないかも知れませんが、そもそもが警告が出力される
ことを問題としているわけなので、解決になりません)。
2.スクリプト側で
module MSXML
end
dom = WIN32OLE.new("MSXML.DOMDocument")
WIN32OLE.const_load(dom, MSXML)
module MSXML
 include TagDOMNodeType
end
とするのであれば、Enum名が可視であることが前提となると思います(互換性に
問題が生じるため、これは有り得ないと思いますが)。WordについてはOffice
DeveloperのリファレンスにEnum名が「WdOriginalFormat クラスの 
wdOriginalDocumentFormat」というように、「クラス名」として明記されていま
すが、ほとんどのコンポーネント(たとえば例にしたMSXML)にはEnum名に関す
るドキュメントは存在しません(したがって、ヘッダファイルかIDLを参照する
しかない)。これは、単にVBAユーザーがRubyへ移行する場合の障壁となると思い
ます。

結局、ベストな解は、警告を出させること=すなわち現行の実装だと思います。

-- 
arton <artonx@yahoo.co.jp>

__________________________________________________
Do You Yahoo!?
Yahoo! BB is Broadband by Yahoo!  http://bb.yahoo.co.jp/


In This Thread

Prev Next