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によってメモリーを開放する必要がある。
関数が成功した場合にpHBInfoとpHBmのメモリハンドルで確保されている領域を解放するのは呼び出し側の責任である。
また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
目次へ戻る / 
トップページへ戻る
| この文書の無断転載を禁じます | 
| Copyright 竹村嘉人 | 
| Copyright kana |