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

IToolbar

COM
IID43136eb9-d36c-11cf-adbc-00aa00a80033継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

IToolbar インターフェイスは、新しいツールバーの作成、ツールバーへの項目の追加、ツールバーの拡張、および作成された新しいツールバーの表示に使用します。各ツールバーは、コントロールバー内の独自のバンド上に作成されます。

メソッド 6

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

vtbl 3 HRESULT AddBitmap(INT nImages, HBITMAP hbmp, INT cxSize, INT cySize, COLORREF crMask)

スナップインがツールバーに画像を追加できるようにします。

nImagesINTin利用可能な画像のインデックス。hbmp で渡されるビットマップに含まれる画像の数を指定する値です。
hbmpHBITMAPin

ツールバーに追加するビットマップへのハンドル。

Note このリソースはスナップインが所有しており、スナップインが解放する必要があります。スナップインが hbmp を解放しないとメモリリークが発生します。
cxSizeINTin追加するビットマップの高さ(ピクセル単位)。(バージョン 1.0 では、MMC は cxSize として 16 のみをサポートしていました。)
cySizeINTin追加するビットマップの幅(ピクセル単位)。(バージョン 1.0 では、MMC は cySize として 16 のみをサポートしていました。)
crMaskCOLORREFinツールバーボタン上に画像を重ねるためのマスクを生成するために使用する色。

戻り値

このメソッドは、これらの値のいずれかを返すことがあります。

vtbl 4 HRESULT AddButtons(INT nButtons, MMCBUTTON* lpButtons)

スナップインがツールバーにボタンの配列を追加できるようにします。

nButtonsINTin配列内のボタンの数。
lpButtonsMMCBUTTON*inツールバー上にボタンを作成するために必要な情報を含む MMCBUTTON 構造体へのポインター。

戻り値

このメソッドは、これらの値のいずれかを返すことがあります。

vtbl 5 HRESULT InsertButton(INT nIndex, MMCBUTTON* lpButton)

スナップインがツールバーに単一のボタンを追加できるようにします。

nIndexINTinボタンが挿入される内部インデックス。ボタンは常にツールバーの末尾に配置されます。ボタンを( IToolbar::DeleteButton によって)削除する場合には、この内部インデックスが必要です。
lpButtonMMCBUTTON*in挿入するボタンを定義する MMCBUTTON 構造体へのポインター。

戻り値

このメソッドは、これらの値のいずれかを返すことがあります。

vtbl 6 HRESULT DeleteButton(INT nIndex)

スナップインが指定したツールバーボタンを削除できるようにします。

nIndexINTinツールバーから削除するボタンのインデックス。

戻り値

このメソッドは、これらの値のいずれかを返すことがあります。

vtbl 7 HRESULT GetButtonState(INT idCommand, MMC_BUTTON_STATE nState, BOOL* pState)

スナップインがボタンの属性を取得できるようにします。

idCommandINTinツールバーボタンのコマンド識別子。
nStateMMC_BUTTON_STATEin

ボタンが取り得る状態を識別する値。次のいずれかを指定できます。

ENABLED

ボタンがユーザー入力を受け付けます。この状態を持たないボタンはユーザー入力を受け付けず、淡色表示になります。

CHECKED

ボタンが CHECKED スタイルを持ち、押された状態になっています。

HIDDEN

ボタンが表示されず、ユーザー入力を受け取ることができません。

INDETERMINATE

ボタンが淡色表示になります。

BUTTONPRESSED

ボタンが押された状態になっています。

pStateBOOL*out返される状態情報へのポインター。

戻り値

このメソッドは、これらの値のいずれかを返すことがあります。

vtbl 8 HRESULT SetButtonState(INT idCommand, MMC_BUTTON_STATE nState, BOOL bState)

スナップインがボタンの属性を設定できるようにします。

idCommandINTinスナップインが InsertButton メソッドまたは AddButtons メソッドで MMCBUTTON 構造体を使用してボタンに関連付けた一意の値。
nStateMMC_BUTTON_STATEin

ボタンに設定する状態を指定する値。次のいずれかを指定できます。

ENABLED

ボタンがユーザー入力を受け付けます。この状態を持たないボタンはユーザー入力を受け付けず、淡色表示になります。

CHECKED

ボタンが CHECKED スタイルを持ち、押された状態になっています。

HIDDEN

ボタンが表示されず、ユーザー入力を受け取ることができません。

INDETERMINATE

ボタンが淡色表示になります。

BUTTONPRESSED

ボタンが押された状態になっています。

bStateBOOLinnState で識別される状態を TRUE に設定するか FALSE に設定するかを指定する値。TRUE はボタンの状態を nState で識別される状態に設定し、FALSE は(すでに設定されている場合に)その状態を解除します。

戻り値

このメソッドは、これらの値のいずれかを返すことがあります。

解説(Remarks)

スナップインは、 IControlbar::Attach を使用してツールバーがアタッチされるまで、ボタンの状態を設定しないでください。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
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 指定が可能。