Win32 API 日本語リファレンス
ホームSystem.Ole › IPicture2

IPicture2

COM
IIDf5185dd8-2012-4b0b-aad9-f052c6bd482b継承元IUnknown自前メソッド開始 vtbl3

メソッド 14

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT get_Handle(UINT_PTR* pHandle)
pHandleUINT_PTR*out[out] 画像の GDI ハンドルを UINT_PTR 値で受け取る (64 ビット対応版)。
vtbl 4 HRESULT get_hPal(UINT_PTR* phPal)
phPalUINT_PTR*out[out] 画像に関連付けられたパレットのハンドルを UINT_PTR 値で受け取る。
vtbl 5 HRESULT get_Type(SHORT* pType)
pTypeSHORT*out[out] 画像の種類 (ビットマップ、メタファイル、アイコン等) を示す SHORT 値を受け取る。
vtbl 6 HRESULT get_Width(INT* pWidth)
pWidthINT*out[out] 画像の幅を HIMETRIC 単位で受け取る。
vtbl 7 HRESULT get_Height(INT* pHeight)
pHeightINT*out[out] 画像の高さを HIMETRIC 単位で受け取る。
vtbl 8 HRESULT Render(HDC hDC, INT x, INT y, INT cx, INT cy, INT xSrc, INT ySrc, INT cxSrc, INT cySrc, RECT* pRcWBounds)
hDCHDCin描画先のデバイスコンテキスト (HDC) のハンドルである。
xINTin描画先の左上 x 座標である。
yINTin描画先の左上 y 座標である。
cxINTin描画先での幅である。
cyINTin描画先での高さである。
xSrcINTinソース画像内のコピー開始 x 座標 (HIMETRIC) である。
ySrcINTinソース画像内のコピー開始 y 座標 (HIMETRIC) である。
cxSrcINTinソース画像からコピーする幅 (HIMETRIC) である。
cySrcINTinソース画像からコピーする高さ (HIMETRIC) である。
pRcWBoundsRECT*inメタファイル描画時のウィンドウ範囲を示す RECT 構造体へのポインタである。メタファイル以外では NULL を指定できる。
vtbl 9 HRESULT set_hPal(UINT_PTR hPal)
hPalUINT_PTRin画像に設定するパレットのハンドルを UINT_PTR 値で指定する。
vtbl 10 HRESULT get_CurDC(HDC* phDC)
phDCHDC*out[out] 画像が現在選択されているデバイスコンテキスト (HDC) のハンドルを受け取る。
vtbl 11 HRESULT SelectPicture(HDC hDCIn, HDC* phDCOut, UINT_PTR* phBmpOut)
hDCInHDCin画像のビットマップを選択する対象のデバイスコンテキスト (HDC) のハンドルである。
phDCOutHDC*out[out] 画像が選択された内部メモリデバイスコンテキスト (HDC) のハンドルを受け取る。NULL を指定できる。
phBmpOutUINT_PTR*out[out] 選択されたビットマップのハンドルを UINT_PTR 値で受け取る。NULL を指定できる。
vtbl 12 HRESULT get_KeepOriginalFormat(BOOL* pKeep)
pKeepBOOL*out[out] 保存時に元の形式を保持する設定かどうかを示す BOOL を受け取る。
vtbl 13 HRESULT put_KeepOriginalFormat(BOOL keep)
keepBOOLin保存時に元の形式を保持するかどうかを指定する。
vtbl 14 HRESULT PictureChanged()
vtbl 15 HRESULT SaveAsFile(IStream* pStream, BOOL fSaveMemCopy, INT* pCbSize)
pStreamIStream*in画像データを書き込む先のストリーム (IStream) へのポインタである。
fSaveMemCopyBOOLinTRUE の場合、ファイルから読み込んだ画像のメモリ内コピーを保存することを指定する。
pCbSizeINT*out[out] 書き込まれたバイト数を受け取る。NULL を指定できる。
vtbl 16 HRESULT get_Attributes(DWORD* pDwAttr)
pDwAttrDWORD*out[out] 画像の属性 (透過、実行時変更可能等) を示す PICTUREATTRIBUTES フラグを受け取る。

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IPicture2 "{F5185DD8-2012-4B0B-AAD9-F052C6BD482B}"
#usecom global IPicture2 IID_IPicture2 "{}"
#comfunc global IPicture2_get_Handle              3 var
#comfunc global IPicture2_get_hPal                4 var
#comfunc global IPicture2_get_Type                5 var
#comfunc global IPicture2_get_Width               6 var
#comfunc global IPicture2_get_Height              7 var
#comfunc global IPicture2_Render                  8 sptr,int,int,int,int,int,int,int,int,var
#comfunc global IPicture2_set_hPal                9 sptr
#comfunc global IPicture2_get_CurDC               10 sptr
#comfunc global IPicture2_SelectPicture           11 sptr,sptr,var
#comfunc global IPicture2_get_KeepOriginalFormat  12 var
#comfunc global IPicture2_put_KeepOriginalFormat  13 int
#comfunc global IPicture2_PictureChanged          14
#comfunc global IPicture2_SaveAsFile              15 sptr,int,var
#comfunc global IPicture2_get_Attributes          16 var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。