GetPicture

画像を展開する


int _export PASCAL GetPicture (LPSTR buf, long len, unsigned int flag, HANDLE *pHBInfo, HANDLE *pHBm, FARPROC lpPrgressCallback, long lData);

引数 入出力 説明
buf IN
入力がファイルの場合 ファイル名
入力がメモリーの場合 ファイルイメージへのポインタ
len IN
入力がファイルの場合 読み込み開始オフセット(MacBin対応のため)
入力がメモリーの場合 データサイズ
flag IN 追加情報 「xxxx xxxx xxxx xSSS」(ビットフラグとして見る)
SSSは入力の種類を意味する
0 ディスクファイル
1 メモリ上のイメージ
pHBInfo OUT BITMAPINFO構造体が納められたメモリハンドルが返される
pHBm OUT ビットマップデータ本体のメモリハンドルが返される
lpPrgressCallback IN 途中経過を表示するコールバック関数へのポインタ。 NULLの場合、Plug-inは処理が終了するまでプロセスを占有し、中断も出来ません。
lData IN コールバック関数に渡すlongデータ。 ポインタなどを必要に応じて受け渡せる。

戻り値

0なら正常終了、それ以外はエラーコードを返す

解説

bufで指定された画像を展開する。 プラグインはLocalAllocによって必要なメモリーを確保し、そのハンドルを返す。 アプリケーションはLocalFreeによってメモリーを開放する必要がある。 関数が成功した場合にpHBInfopHBmのメモリハンドルで確保されている領域を解放するのは呼び出し側の責任である。 またpHBInfo、pHBmで返されるメモリハンドルで確保される領域はアンロックされている。 つまりPlug-in内でメモり領域に対して書き込みをしたあとはLocalUnlockした後に呼び出し側へ戻る。

コールバック関数

lpPrgressCallbackで渡されるコールバック関数のプロトタイプは次のとおり(C言語の場合)。

    int PASCAL ProgressCallback(int nNum, int nDenom, long lData);

まず nNum==0 でコールされ、nNum==nDenom になるまで定期的に呼ばれる。 戻り値が 非0 の時、Plug-inは処理を中断する。 ProgressCallbackに渡されるlDataはGetPictureに渡されるlDataである。

例えばコールバック関数内ではユーザからの中断指示をチェックし、 コールバックの戻り値として非0を返却すればPlug-inは途中で展開を中断する。 中断した場合にはGetPictureは戻り値としてエラーコード(1)を返却する。

参照

GetPreview


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



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