[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]
[MD:4307] COM support plan
- X-ml-count: 4307
- Subject: [MD:4307] COM support plan
- From: Koichiro Ohba <koichiro@xxxxxxxxxxx>
- Date: Mon, 31 Mar 2003 13:54:53 +0900
- User-agent: Wanderlust/2.11.1 (Wonderwall) SEMI/1.14.5 (Awara-Onsen) FLIM/1.14.5 (Demachiyanagi) APEL/10.4 Emacs/21.1 (i386-msvc-nt5.0.2195) MULE/5.0 (SAKAKI) Meadow/1.99 Alpha6-dev (IKADUCHI)
大場です。
40度の泡盛が脳味噌を蝕んでいく中、何度も何度も脱線してついに最後まで聞
くことができなかったり、神懸かりトランス状態になった himi さんが突然粘
土板に古代バビロニア文字で仕様を書きはじめたり、その碑文を発掘した三好
さんといっしょに困惑してますます泡盛あおってみたり、林主席研究員に解読
を要請するもサジを投げられたりと、はなはだ不完全ですがせっかく面白い話
が聞けたのでまとめてみます。補完よろしくお願いします。
1.Meadow Win32 COM support
Meadow における COM support とは、elisp から COM Object を操作可能にする
ことである。
Ruby の Win32OLE 拡張ライブリ、Perl の OLE 拡張モジュール、Python の COM
拡張モジュール、そして VBScript などで実現されていることとほぼ同じ事を
Meadow 上で可能にする試みである。
2.Architecture
C level で COM Object は Lisp Object と等価になるよう実装することが求め
られる。elisp から COM Object を見ると Lisp Object とまったく同じように
扱えるようにする必要がある。それには以下をサポートしなくてはならない。
(1) ライフサイクル管理 (もちろん GC とかも)
(2) COM の型と Lisp の型の完全な相互変換
(3) ...
# ここ同期とか排他とか 3 つ以上ポイントがあったと思うのだけど、酩酊し
# てダメ...
elisp level では COM Object の property や method をいわゆる Object と
して簡易に扱えるように luna の wrapper を用意してもよい。wrapper によっ
てユーザーは、COM Object を luna object であるかのように利用することが
可能になる。
# 阿部さんから eieio の wrapper も用意してはどうかという提案アリ。
Meadow ではリリースパッケージに COM wrapper を追加した luna を含めて
luna enabled として配布することも考えられる。
3.参考
Ruby Win32OLE source code
<http://homepage1.nifty.com/markey/ruby/win32ole/win32ole-0.5.2.zip>
Ruby Win32OLE 製作過程の雑記
<http://homepage1.nifty.com/markey/ruby/win32ole/>
Perl libwin32 source code
<http://mirrors.midco.net/pub/CPAN/ports/win32/Standard/x86/libwin32-0.191.tar.gz>
Perl libwin32 documentation
<http://search.cpan.org/author/GSAR/libwin32-0.191/>
<http://theoryx5.uwinnipeg.ca/CPAN/data/libwin32/index.html>
<http://theoryx5.uwinnipeg.ca/CPAN/data/libwin32/OLE/Win32/OLE.html>
Python and COM
<http://www.python.org/windows/win32com/>
Python win32com source code
<http://www.python.org/windows/win32com/win32com_src.zip>
洗練されたPerl: PerlによるExcelファイルの読み取り/書き込み (dW)
<http://www-6.ibm.com/jp/developerworks/linux/011130/j_l-pexcel.html>
FLIM - luna
<http://www.kanji.zinbun.kyoto-u.ac.jp/~tomo/elisp/FLIM/>
emacs-w3m shimbun ライブラリについて
<http://www.nijino.com/ari/emacs/shimbun.html>
eieio
<http://cedet.sourceforge.net/eieio.shtml>
--
koichiro <koichiro@xxxxxxxxxxx>