IImageRecompress
COM公式ドキュメント
画像を再圧縮するメソッドを公開します。
解説(Remarks)
再圧縮が必要になる可能性のある画像オブジェクトを実装する場合は、IImageRecompress を実装してください。IImageRecompress インターフェイスは ImageRecompress オブジェクトに実装されています。
メソッド 1
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 3 HRESULT RecompressImage(IShellItem* psi, INT cx, INT cy, INT iQuality, IStorage* pstg, IStream** ppstrmOut)
画像を再圧縮します。ImageRecompress オブジェクトに実装されるこのメソッドは、品質の指定とともに x および y の寸法を受け取ります。このメソッドは、指定されたサイズに再圧縮された新しい画像を含むストリームを作成します。
| psi | IShellItem* | in | 読み取る画像のストリームを含むオブジェクトへのポインター。 |
| cx | INT | in | 返す画像の x 方向の寸法。 |
| cy | INT | in | 返す画像の y 方向の寸法。 |
| iQuality | INT | in | 再圧縮の品質を示す値で、0 から 100 までの範囲で指定できます。 |
| pstg | IStorage* | in | 書き込み先のストリームを含むオブジェクト上の IStorage インターフェイスへのポインター。 |
| ppstrmOut | IStream** | out | 書き込まれた出力ストリームを受け取る IStream インターフェイスポインター変数のアドレス。 |
戻り値
型: HRESULT
成功した場合は S_OK を返し、そうでない場合は COM で定義されたエラーコードを返します。入力ストリーム内の画像が cx および cy で指定されたサイズより小さい場合は、S_FALSE が返されます。
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IImageRecompress "{505F1513-6B3E-4892-A272-59F8889A4D3E}"
#usecom global IImageRecompress IID_IImageRecompress "{6E33091C-D2F8-4740-B55E-2E11D1477A2C}"
#comfunc global IImageRecompress_RecompressImage 3 sptr,int,int,int,sptr,sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。