IUICollection
COM公式ドキュメント
IUICollection インターフェイスは Ribbon フレームワークによって実装されます。
メソッド 7
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
IUICollection に含まれる項目の数を取得します。
| count | DWORD* | out | このメソッドが返されるとき、項目数が格納されます。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
指定したインデックスにある項目を IUICollection から取得します。
| index | DWORD | in | IUICollection から取得する item の 0 から始まるインデックスです。 |
| item | IUnknown** | out | このメソッドが返されるとき、項目を受け取るポインター変数のアドレスが格納されます。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
IUICollection の末尾に項目を追加します。
| item | IUnknown* | in | IUICollection に追加する項目へのポインターです。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
指定したインデックスの位置に項目を IUICollection へ挿入します。
| index | DWORD | in | item を IUICollection に挿入する位置を示す、0 から始まるインデックスです。 |
| item | IUnknown* | in | IUICollection に追加する項目へのポインターです。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
指定したインデックスにある項目を IUICollection から削除します。
| index | DWORD | in | IUICollection から削除する項目の、0 から始まるインデックスです。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
IUICollection の指定したインデックスにある項目を、別の項目で置き換えます。
| indexReplaced | DWORD | in | IUICollection 内で置き換えられる item の、0 から始まるインデックスです。 |
| itemReplaceWith | IUnknown* | in | IUICollection に追加される置換後の項目へのポインターです。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
IUICollection からすべての項目を削除します。
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IUICollection "{DF4F45BF-6F9D-4DD7-9D68-D8F9CD18C4DB}" #usecom global IUICollection IID_IUICollection "{}" #comfunc global IUICollection_GetCount 3 var #comfunc global IUICollection_GetItem 4 int,sptr #comfunc global IUICollection_Add 5 sptr #comfunc global IUICollection_Insert 6 int,sptr #comfunc global IUICollection_RemoveAt 7 int #comfunc global IUICollection_Replace 8 int,sptr #comfunc global IUICollection_Clear 9 ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IUICollection "{DF4F45BF-6F9D-4DD7-9D68-D8F9CD18C4DB}" #usecom global IUICollection IID_IUICollection "{}" #comfunc global IUICollection_GetCount 3 sptr #comfunc global IUICollection_GetItem 4 int,sptr #comfunc global IUICollection_Add 5 sptr #comfunc global IUICollection_Insert 6 int,sptr #comfunc global IUICollection_RemoveAt 7 int #comfunc global IUICollection_Replace 8 int,sptr #comfunc global IUICollection_Clear 9 ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。