引数 | 入出力 | 説明 | ||||
---|---|---|---|---|---|---|
buf | IN |
| ||||
len | IN |
| ||||
flag | IN | 追加情報 「xxxx xxxx xxxx xSSS」(ビットフラグとして見る)
| ||||
lpInfo | OUT | 画像情報 |
0なら正常終了、それ以外はエラーコードを返す
指定された画像データに対する、画像情報を返却する。
bufで指定された画像にドキュメントが存在しない時にはlpInfo->hInfoをNULLにします。 またlpInfo->hInfoが非NULLである場合にこの領域を解放するのは呼び出し側の責任です。
PictureInfotypedef struct PictureInfo { long left,top; /* 画像を展開する位置 */ long width; /* 画像の幅(pixel) */ long height; /* 画像の高さ(pixel) */ WORD x_density; /* 画素の水平方向密度 */ WORD y_density; /* 画素の垂直方向密度 */ short colorDepth; /* 画素当たりのbit数 */ HLOCAL hInfo; /* 画像内のテキスト情報 */ } PictureInfo;
Susieではこの構造体のアライメント(バイト境界)を1byteと仮定している(他の構造体についても同様の事が言えるかどうかは未確認)。 Visual C++では構造体のデフォルトのアライメントは8byteであるため、このままコンパイルしたのではhInfoにアクセスした際に意図しない値になる。 このためPlug-inが返却するコメントが正しく処理されない現象が起こりえる。 このためVisual C++においてはコンパイルオプションを調整するか、関数を
#include <pshpack1.h> typedef struct PictureInfo { ........ } PictureInfo; #include <poppack.h>
としなければいけない。Borland C++においては以下のようにする(注:テストしていません)。
#pragma option -a- typedef struct PictureInfo { ........ } PictureInfo; #pragma option -a.
SusieにおいてはIsSupportedが成功するとその直後に呼び出されるが、 その他のアプリケーションにおいてIsSupportedを呼び出さないで直接 GetPictureInfoを呼び出すものがある。 このため必ずしもサポートしている画像形式がbufに指定されると考えてはいけない。
00IN | GetPluginInfo | IsSupported | GetPictureInfo | GetPicture | GetPreview | ConfigurationDlg |
---|---|---|---|---|---|---|
00AM | GetPluginInfo | IsSupported | GetArchiveInfo | GetFileInfo | GetFile | ConfigurationDlg |
この文書の無断転載を禁じます |
Copyright 竹村嘉人 |
Copyright kana |