ここはSusie Plug-in関連のプログラム作成に関する話題を取り扱うページです。
リニューアルの最中でしたが、どうやら年内完成が危ぶまれてきたのと、 Susie Plug-inのSpecのhtml化の公開許可を無事 たけちん さんからいただいたので とりあえずお披露目です。今後は「Plug-in作成メモ」は破棄される予定です。
結局Cut&Pasteしてお茶を濁してしまったような・・・。
Susie Plug-inのソースが公開されているものには以下のものがあります。
- たけちん さん
- nifty:FGALAV/lib/03/23にPi Plug-in
- むつきはじめ さん
- Photoshop 2.5互換データ入力プラグイン(VC++5.0用)
- 井口浩和 さん
- PBM/PPM/PGM 対応 Susieプラグイン(VC++4.0用)
- 計 さん
- CAM用 Susie プラグイン(Delphi3用)
- kana
- Mint Plug-in(00IN)のソース(VC++4.0用)
- 永遠の都 Plug-in(00AM)のソース(VC++4.0用)
GetFileInfoの適切な処理が思いつかなかったためかなり重いです。
現時点でのPlug-in作成時における注意事項をいくつか。
typedef int (PASCAL *susie_callback_t)(int, int, long); susie_callback_t func= (susie_callback_t *)lpPrgressCallback; ............. (*func)(nNum, nDenom, lData); .............
Plug-inを使うサンプルコードを公開します。 詳しい使い方をここに書いた方が良いのですが、 取り合えず同梱のドキュメントを参考にしてください。 メールを出すまでもないような質問であれば 掲示板 の方にでも書いてもらってもよいです。
サンプルプログラムとして3つ同梱してあります。 どれも小物ですが個人的にはそれなりに使っています。 今のSusieは書庫内ファイルのD&Dでファイルの内容をDropしてくるので、書庫内ファイルの取り扱いのサンプルのつもりで作りはじめたToBitmapは実はその目的には使えません。 そのかわりSendToに入れて使うcnvbmpってのを付属させています。
ToBitmapは基本的にD&Dで変換したいファイルと出力先のディレクトリを指定してBitmapファイルを出力するサンプルです。
Spi2BmpやA to B Converterみたいなものだと思っていただければわかりやすいかと(こっちはいろいろ手抜きですけど)。
Spi2BmpもA to B Converterも変換したいファイルをDropして指定できないので作ってみただけです。
もうちょいまともなやつ(JPEG出力とか書庫ファイル自体の指定とか)は別に作ろうかと思ってます。
A to B Converterはver1.3.0からD&Dでファイルが指定できるようになったようです。
またexport plug-inの仕様が公開されています。
個人的には嬉しい限りです。
補足:
Susie0.45cからのPlug-inの優先度、ロード方法の指定などが追加されましたが、
現在のところこれには対応していません。
wrapper Libraryがバグっているようです。
利用する際にはToBitmapに同梱のspiif.cppと差し替えた後に、SpiDllFile::GetPictureInfo関数の、
memset(&lpInfo, 0, sizeof(SpiPictureInfo)); /* for some plug-in's bug */
を
if (lpInfo) memset(lpInfo, 0, sizeof(SpiPictureInfo)); /* for some plug-in's bug */
と、してください。