IUIImageFromBitmap
COM公式ドキュメント
IUIImageFromBitmap は、Windows リボン フレームワークが実装するファクトリ インターフェイスであり、IUIImage オブジェクトを作成するためのメソッドを定義します。
メソッド 1
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
ビットマップ イメージから IUIImage オブジェクトを作成します。
| bitmap | HBITMAP | in | イメージを含むビットマップへのハンドル。 | ||||||
| options | UI_OWNERSHIP | in | イメージを作成する際の所有権の条件。
| ||||||
| image | IUIImage** | out | このメソッドが返るとき、IUIImage オブジェクトを受け取るポインター変数のアドレスが格納されます。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。
解説(Remarks)
このファクトリ メソッドは、アプリケーションがイメージ リソースを動的に生成し、新しい HBITMAP をリボンに渡したい場合に有用です。 たとえば、Windows Imaging Component (WIC) を使用して Portable Network Graphics (PNG) を読み込む場合や、 CreateDIBSection を使用してスタイル ギャラリーの新しいスタイル用のイメージを作成する場合などです。
また、リボンによって不要とはならない既存のビットマップ イメージ (レガシー ツール バーのイメージ ストリップなど) を必要とするアプリケーションにも有用です。
リボンを既存のアプリケーションに実装しており、コード変更を最小限に抑えたい場合は、options の値として UI_OWNERSHIP_COPY を指定してください。この方法では、追加のイメージのために余分なメモリを使用します。
メモリ使用量を最小限に抑えるには、options の値として UI_OWNERSHIP_TRANSFER を指定してください。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IUIImageFromBitmap "{18ABA7F3-4C1C-4BA2-BF6C-F5C3326FA816}"
#usecom global IUIImageFromBitmap IID_IUIImageFromBitmap "{}"
#comfunc global IUIImageFromBitmap_CreateImage 3 sptr,int,sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。