| 引数 | 説明 | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| infono | 取得する情報番号
| ||||||||||
| buf | 情報を納めるバッファ | ||||||||||
| buflen | バッファ長(byte) |
バッファに書き込んだ文字数を返します。情報番号が無効の場合0を返します。
情報番号0と1はすべてのバージョンで共通とします。 2以降は二つづつ組みでSusieのOPENダイアログで用いる情報です。 一つのplug-inで複数の画像フォーマットに対応している場合はその数だけ拡張子とファイル形式名を用意します。
今後の拡張性を持たせるため、Plug-inにAPIのバージョン番号がつきます。 このバージョン番号はすべてのバージョンに共通である関数'GETPLUGININFO'によって取得出来ます。 バージョン番号は基本的に4byteのコードで以下の意味を持ちます。
00 I N
| | +-- N : Normal, M : Multi-picture
| +---- I : Import filter, X : Export filter, A : Archive extractor
+------ Version No.
SusieはGetPluginInfoでサポートされているファイル形式名の情報を取得しますが、 その名前についてはOpenダイアログでのみ使用します。 つまり実際にファイルが指定された場合にそのファイルをサポートするPlug-inを認識するためには使用されません。 どのPlug-inがサポートしているかは実際にIsSupported関数を呼び出しその戻り値で決まります。
Susieは情報取得番号(infono)を順次大きくして、関数の戻り値が0(無効)になるまで呼び出します。
例えばGetPluginInfo関数は以下のようになります。
int _export PASCAL
GetPluginInfo(int infono, LPSTR buf, int buflen)
{
char *infomation[]= {
/* 0 */ "00IN", /* 00IN関数の場合 */
/* 1 */ "Sample Code Plug-in Ver x.xx",
/* 2n+1 */ "*.SMP",
/* 2n+2 */ "Sample Plug-in"
};
int size;
if (infono < (sizeof(infomation) / sizeof(char *))) {
char *s= infomation[infono];
size= strlen(s) + 1;
size= (size < buflen) ? size : buflen;
memcpy(buf, infomation[infono], size);
} else {
size= 0;
}
return size;
}
| 00IN | GetPluginInfo | IsSupported | GetPictureInfo | GetPicture | GetPreview | ConfigurationDlg |
|---|---|---|---|---|---|---|
| 00AM | GetPluginInfo | IsSupported | GetArchiveInfo | GetFileInfo | GetFile | ConfigurationDlg |
| この文書の無断転載を禁じます |
| Copyright 竹村嘉人 |
| Copyright kana |