IToolbar
COM公式ドキュメント
IToolbar インターフェイスは、新しいツールバーの作成、ツールバーへの項目の追加、ツールバーの拡張、および作成された新しいツールバーの表示に使用します。各ツールバーは、コントロールバー内の独自のバンド上に作成されます。
メソッド 6
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
スナップインがツールバーに画像を追加できるようにします。
| nImages | INT | in | 利用可能な画像のインデックス。hbmp で渡されるビットマップに含まれる画像の数を指定する値です。 |
| hbmp | HBITMAP | in | ツールバーに追加するビットマップへのハンドル。 Note このリソースはスナップインが所有しており、スナップインが解放する必要があります。スナップインが hbmp を解放しないとメモリリークが発生します。
|
| cxSize | INT | in | 追加するビットマップの高さ(ピクセル単位)。(バージョン 1.0 では、MMC は cxSize として 16 のみをサポートしていました。) |
| cySize | INT | in | 追加するビットマップの幅(ピクセル単位)。(バージョン 1.0 では、MMC は cySize として 16 のみをサポートしていました。) |
| crMask | COLORREF | in | ツールバーボタン上に画像を重ねるためのマスクを生成するために使用する色。 |
戻り値
このメソッドは、これらの値のいずれかを返すことがあります。
スナップインがツールバーにボタンの配列を追加できるようにします。
| nButtons | INT | in | 配列内のボタンの数。 |
| lpButtons | MMCBUTTON* | in | ツールバー上にボタンを作成するために必要な情報を含む MMCBUTTON 構造体へのポインター。 |
戻り値
このメソッドは、これらの値のいずれかを返すことがあります。
スナップインがツールバーに単一のボタンを追加できるようにします。
| nIndex | INT | in | ボタンが挿入される内部インデックス。ボタンは常にツールバーの末尾に配置されます。ボタンを( IToolbar::DeleteButton によって)削除する場合には、この内部インデックスが必要です。 |
| lpButton | MMCBUTTON* | in | 挿入するボタンを定義する MMCBUTTON 構造体へのポインター。 |
戻り値
このメソッドは、これらの値のいずれかを返すことがあります。
スナップインが指定したツールバーボタンを削除できるようにします。
| nIndex | INT | in | ツールバーから削除するボタンのインデックス。 |
戻り値
このメソッドは、これらの値のいずれかを返すことがあります。
スナップインがボタンの属性を取得できるようにします。
| idCommand | INT | in | ツールバーボタンのコマンド識別子。 |
| nState | MMC_BUTTON_STATE | in | ボタンが取り得る状態を識別する値。次のいずれかを指定できます。 ENABLEDボタンがユーザー入力を受け付けます。この状態を持たないボタンはユーザー入力を受け付けず、淡色表示になります。 CHECKEDボタンが CHECKED スタイルを持ち、押された状態になっています。 HIDDENボタンが表示されず、ユーザー入力を受け取ることができません。 INDETERMINATEボタンが淡色表示になります。 BUTTONPRESSEDボタンが押された状態になっています。 |
| pState | BOOL* | out | 返される状態情報へのポインター。 |
戻り値
このメソッドは、これらの値のいずれかを返すことがあります。
スナップインがボタンの属性を設定できるようにします。
| idCommand | INT | in | スナップインが InsertButton メソッドまたは AddButtons メソッドで MMCBUTTON 構造体を使用してボタンに関連付けた一意の値。 |
| nState | MMC_BUTTON_STATE | in | ボタンに設定する状態を指定する値。次のいずれかを指定できます。 ENABLEDボタンがユーザー入力を受け付けます。この状態を持たないボタンはユーザー入力を受け付けず、淡色表示になります。 CHECKEDボタンが CHECKED スタイルを持ち、押された状態になっています。 HIDDENボタンが表示されず、ユーザー入力を受け取ることができません。 INDETERMINATEボタンが淡色表示になります。 BUTTONPRESSEDボタンが押された状態になっています。 |
| bState | BOOL | in | nState で識別される状態を TRUE に設定するか FALSE に設定するかを指定する値。TRUE はボタンの状態を nState で識別される状態に設定し、FALSE は(すでに設定されている場合に)その状態を解除します。 |
戻り値
このメソッドは、これらの値のいずれかを返すことがあります。
解説(Remarks)
スナップインは、 IControlbar::Attach を使用してツールバーがアタッチされるまで、ボタンの状態を設定しないでください。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IToolbar "{43136EB9-D36C-11CF-ADBC-00AA00A80033}" #usecom global IToolbar IID_IToolbar "{}" #comfunc global IToolbar_AddBitmap 3 int,sptr,int,int,int #comfunc global IToolbar_AddButtons 4 int,var #comfunc global IToolbar_InsertButton 5 int,var #comfunc global IToolbar_DeleteButton 6 int #comfunc global IToolbar_GetButtonState 7 int,int,var #comfunc global IToolbar_SetButtonState 8 int,int,int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IToolbar "{43136EB9-D36C-11CF-ADBC-00AA00A80033}" #usecom global IToolbar IID_IToolbar "{}" #comfunc global IToolbar_AddBitmap 3 int,sptr,int,int,int #comfunc global IToolbar_AddButtons 4 int,sptr #comfunc global IToolbar_InsertButton 5 int,sptr #comfunc global IToolbar_DeleteButton 6 int #comfunc global IToolbar_GetButtonState 7 int,int,sptr #comfunc global IToolbar_SetButtonState 8 int,int,int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。