引数 | 入出力 | 説明 | ||||
---|---|---|---|---|---|---|
buf | IN |
| ||||
len | IN |
| ||||
flag | IN | 追加情報 「xxxx xxxx xxxx xSSS」(ビットフラグとして見る)
| ||||
pHBInfo | OUT | BITMAPINFO構造体が納められたメモリハンドルが返される | ||||
pHBm | OUT | ビットマップデータ本体のメモリハンドルが返される | ||||
lpPrgressCallback | IN | 途中経過を表示するコールバック関数へのポインタ。 NULLの場合、Plug-inは処理が終了するまでプロセスを占有し、中断も出来ません。 | ||||
lData | IN | コールバック関数に渡すlongデータ。 ポインタなどを必要に応じて受け渡せる。 |
0なら正常終了、それ以外はエラーコードを返す。 この関数はオプションであり、未対応の場合には-1を返す。
プレビュー等で用いる縮小された画像をファイルから作成する。 JPEGの様に、アルゴリズムの関係で縮小されたサイズでは高速に展開出来るときにこの関数をインプリメントする。
今回配布のPlug-in(*1)では IFJPEG.SPI のみ対応(1/4サイズで展開)している。 未対応の場合、Susieは通常の展開ルーティンを用いて展開した後縮小処理を行う。 (対応していても縮小ロードされた画像を更にサイズ調整している) プラグインはLocalAllocによって必要なメモリーを確保し、そのハンドルを返す。 アプリケーションはLocalFreeによってメモリーを開放する必要がある。
関数が成功した場合にpHBInfoとpHBmのメモリハンドルで確保されている領域を解放するのは呼び出し側の責任である。 またpHBInfo、pHBmで返されるメモリハンドルで確保される領域はアンロックされている。 つまりPlug-in内でメモり領域に対して書き込みをしたあとはLocalUnlockした後に呼び出し側へ戻る。
基本的に縮小して展開する以外はGetPictureと同じである。
lpPrgressCallbackで渡されるコールバック関数のプロトタイプは次のとおり(C言語の場合)。
int PASCAL ProgressCallback(int nNum, int nDenom, long lData);
まず nNum==0 でコールされ、nNum==nDenom になるまで定期的に呼ばれる。 戻り値が 非0 の時、Plug-inは処理を中断する。 ProgressCallbackに渡されるlDataはGetPreviewに渡されたlDataである。
例えばコールバック関数内ではユーザからの中断指示をチェックし、 コールバックの戻り値として非0を返却すればPlug-inは途中で展開を中断する。 中断した場合にはGetPreviewは戻り値としてエラーコード(1)を返却する。
00IN | GetPluginInfo | IsSupported | GetPictureInfo | GetPicture | GetPreview | ConfigurationDlg |
---|---|---|---|---|---|---|
00AM | GetPluginInfo | IsSupported | GetArchiveInfo | GetFileInfo | GetFile | ConfigurationDlg |
この文書の無断転載を禁じます |
Copyright 竹村嘉人 |
Copyright kana |