IsSupported

展開可能な(対応している)ファイル形式か調べる


int _export PASCAL IsSupported (LPSTR filename, DWORD dw);

引数 説明
filename ファイル名
dw
上位ワードが0 ファイルハンドル
上位ワードが非0 ファイル先頭部(2Kbyte以上)を読み込んだバッファへのポインタ。 ファイルサイズが2Kbyte以下の場合もバッファは2Kbyte確保し、余分は0で埋めること。

戻り値

対応している画像フォーマットであれば非0を返す。 そうでない場合は0を返す。

解説

各Plug-inは基本的に渡されたファイルのヘッダを調べ、 自分の対応したファイルフォーマットであるかどうかを調べる。 まれにファイル名(拡張子)を判断材料として必要としたり、 複数のファイルで構成されている場合があるので、ファイル名(フルパス)も引数に加えた。 今回配布のPlug-in(*1)ではfilenameは使われていない。

dwで渡されるファイルハンドルとは、Win32 APIの_lopenやCreateFileが返す値の事です。 またメモリの場合は渡される領域の大きさは2Kbyteと仮定するのが妥当です。

いわゆるMac Binaryに対する処理は呼び出し側が行ないますので、 この関数で考慮する必要はありません。

追記

Susieは指定されたファイルに対してGetPluginInfoが返却する「代表的な拡張子」とは関係無くIsSupportedを呼び出します。 つまりJPEG Plug-inに対して"Sample.pic"というファイルが渡される事もあり得ます。

複数あるPlug-inのうちどれか一つのPlug-inが成功(非0)を返却すると他のPlug-inは呼び出されません。 またその後GetPictureInfoやGetPictureが失敗しても再度他のPlug-inに対してIsSupportedを呼び出すことはありません。 ですからIsSupportedの返す値は重要です。
ただし成功を返却した場合に複数回呼び出される事があります(そんな気がします)。

Susieではこの関数にはほぼ100%メモリが渡されます。 ファイルハンドルが渡される事があるかどうかはわかりません。 ただし他のSusie Plug-in対応アプリケーションがどう利用しているか分からないのできちんと実装しておく必要があります。

注釈

(*1)今回配布のPlug-in
このドキュメントの原文はSPI32005.LZHに含まれるSPI_API.TXTである。 このファイルにはJPEG/GIF/PI/PIC/PIC2などのPlug-inが含まれていた。

00IN GetPluginInfo IsSupported GetPictureInfo GetPicture GetPreview ConfigurationDlg
00AM GetPluginInfo IsSupported GetArchiveInfo GetFileInfo GetFile ConfigurationDlg



目次へ戻る / トップページへ戻る
この文書の無断転載を禁じます
Copyright 竹村嘉人
Copyright kana