IUIFramework
COMメソッド 9
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 3 HRESULT Initialize(HWND frameWnd, IUIApplication* application)
| frameWnd | HWND | in | リボンをホストするフレームウィンドウのハンドルである。 |
| application | IUIApplication* | in | フレームワークからのコールバックを受け取るアプリケーション側の IUIApplication へのポインタである。 |
vtbl 4 HRESULT Destroy()
| instance | HINSTANCE | in | コンパイル済みリボンリソースを含むモジュールのインスタンスハンドルである。 |
| resourceName | LPWSTR | in | 読み込むリボンマークアップリソースの名前を指定する。 |
| viewId | DWORD | in | 取得するビューを識別する ID を指定する。 |
| riid | GUID* | in | 要求するインターフェイスの識別子(IID)へのポインタである。 |
| ppv | void** | out | 取得したビューインターフェイスへのポインタを受け取る出力ポインタである。 |
vtbl 7 HRESULT GetUICommandProperty(DWORD commandId, PROPERTYKEY* key, PROPVARIANT* value)
| commandId | DWORD | in | プロパティを取得する対象コマンドの ID を指定する。 |
| key | PROPERTYKEY* | in | 取得するプロパティを識別する PROPERTYKEY へのポインタである。 |
| value | PROPVARIANT* | out | 取得したプロパティの値を受け取る PROPVARIANT へのポインタである。 |
vtbl 8 HRESULT SetUICommandProperty(DWORD commandId, PROPERTYKEY* key, PROPVARIANT* value)
| commandId | DWORD | in | プロパティを設定する対象コマンドの ID を指定する。 |
| key | PROPERTYKEY* | in | 設定するプロパティを識別する PROPERTYKEY へのポインタである。 |
| value | PROPVARIANT* | in | コマンドに設定するプロパティの値を保持する PROPVARIANT へのポインタである。 |
vtbl 9 HRESULT InvalidateUICommand(DWORD commandId, UI_INVALIDATIONS flags, PROPERTYKEY* key)
| commandId | DWORD | in | 無効化(再描画)対象とするコマンドの ID を指定する。 |
| flags | UI_INVALIDATIONS | in | 無効化する内容(プロパティ、値、状態など)を示す UI_INVALIDATIONS フラグを指定する。 |
| key | PROPERTYKEY* | inoptional | 無効化する特定のプロパティを識別する PROPERTYKEY へのポインタである。NULL の場合は対象を限定しない。 |
vtbl 10 HRESULT FlushPendingInvalidations()
| iModes | INT | in | 有効にするリボンのアプリケーションモードのビットマスクを指定する。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IUIFramework "{F4F0385D-6872-43A8-AD09-4C339CB3F5C5}" #usecom global IUIFramework IID_IUIFramework "{}" #comfunc global IUIFramework_Initialize 3 sptr,sptr #comfunc global IUIFramework_Destroy 4 #comfunc global IUIFramework_LoadUI 5 sptr,wstr #comfunc global IUIFramework_GetView 6 int,var,sptr #comfunc global IUIFramework_GetUICommandProperty 7 int,var,var #comfunc global IUIFramework_SetUICommandProperty 8 int,var,var #comfunc global IUIFramework_InvalidateUICommand 9 int,int,var #comfunc global IUIFramework_FlushPendingInvalidations 10 #comfunc global IUIFramework_SetModes 11 int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IUIFramework "{F4F0385D-6872-43A8-AD09-4C339CB3F5C5}" #usecom global IUIFramework IID_IUIFramework "{}" #comfunc global IUIFramework_Initialize 3 sptr,sptr #comfunc global IUIFramework_Destroy 4 #comfunc global IUIFramework_LoadUI 5 sptr,wstr #comfunc global IUIFramework_GetView 6 int,sptr,sptr #comfunc global IUIFramework_GetUICommandProperty 7 int,sptr,sptr #comfunc global IUIFramework_SetUICommandProperty 8 int,sptr,sptr #comfunc global IUIFramework_InvalidateUICommand 9 int,int,sptr #comfunc global IUIFramework_FlushPendingInvalidations 10 #comfunc global IUIFramework_SetModes 11 int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。