GetPluginInfo

Plug-inに関する情報を得る


int _export PASCAL GetPluginInfo (int infono, LPSTR buf, int buflen);

引数 説明
infono 取得する情報番号
情報番号 意味
0 Plug-in APIバージョン
1 Plug-in名、バージョン及びcopyright
SusieのAbout..に表示されます
2n+2 代表的な拡張子("*.JPG" "*.RGB;*.Q0"など)
2n+3 ファイル形式名
SusieのOpenダイアログに表示されます
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