仕事でパワーポイントのファイルを画像にするDLLを作りました。
この機能自体はPowerPointコンポーネントがOLEサーバーとして公開しているので、
馴れないVC++との格闘という作業はあったにせよ、大した作業ではありませんでした。
が、直ぐに問題発覚。
PowerPoint2000では動かない。


・原因は予想通りインターフェイスが変わっている
・ディスパッチIDをスタティックに解決している


でした。
ディスパッチIDをダイナミックに解決するようにして問題解決。
したはず。


で、今回はそうして作ったDLLなりEXEなりをSqueakから使うという
面倒な方法を採っているわけですが、本当はOLEを直接扱いたいわけです。


OLEを扱うなんていうのは何年も前に誰かが絶対にやっているはずなのですが、
1月くらい前に自分でやってみたりしたわけです。

どこまで出来ているのかというと、IDispatch>>Invokeするところまでです。
で、次はVARINAT構造体(基本的には共用体)を透過的に読み書きするところを作って、
次にタイプインフォを読んで自動的にあんなことやこんなこをやるようにするという感じだと思うのですが、
作ってから既にあるよと言われると嫌だし、どうしようかなぁというところ。


某ボスから他のSmallTalkではインポートライブラリとかから
自動的にラッパーを作ってくれたりするような機能があると教えてもらった。
OLEはやめちゃってそれをやるのもいいかもしれない。


或いは本当にSqueakをやめるのがいいのかも。