ホーム › Storage.Xps › IXpsOMDictionary
IXpsOMDictionary
COMメソッド 10
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
| owner | IUnknown** | out | このディクショナリを所有する親オブジェクトの IUnknown へのポインタを受け取る。 |
| count | DWORD* | out | ディクショナリ内のエントリ数を受け取る。 |
vtbl 5 HRESULT GetAt(DWORD index, LPWSTR* key, IXpsOMShareable** entry)
| index | DWORD | in | 取得するエントリの 0 基点のインデックスを指定する。 |
| key | LPWSTR* | out | 指定インデックスのエントリのキー文字列を受け取る。 |
| entry | IXpsOMShareable** | out | 指定インデックスのエントリ(共有可能オブジェクト)へのポインタを受け取る。 |
vtbl 6 HRESULT GetByKey(LPWSTR key, IXpsOMShareable* beforeEntry, IXpsOMShareable** entry)
| key | LPWSTR | in | 検索するエントリのキー文字列を指定する。 |
| beforeEntry | IXpsOMShareable* | in | 検索開始位置となるエントリを指定する。先頭から検索する場合は NULL を指定する。 |
| entry | IXpsOMShareable** | out | キーに一致するエントリ(共有可能オブジェクト)へのポインタを受け取る。 |
vtbl 7 HRESULT GetIndex(IXpsOMShareable* entry, DWORD* index)
| entry | IXpsOMShareable* | in | インデックスを取得する対象のエントリを指定する。 |
| index | DWORD* | out | 指定エントリの 0 基点のインデックスを受け取る。 |
vtbl 8 HRESULT Append(LPWSTR key, IXpsOMShareable* entry)
| key | LPWSTR | in | 追加するエントリのキー文字列を指定する。 |
| entry | IXpsOMShareable* | in | コレクション末尾に追加するエントリ(共有可能オブジェクト)を指定する。 |
vtbl 9 HRESULT InsertAt(DWORD index, LPWSTR key, IXpsOMShareable* entry)
| index | DWORD | in | 挿入位置を示す 0 基点のインデックスを指定する。 |
| key | LPWSTR | in | 挿入するエントリのキー文字列を指定する。 |
| entry | IXpsOMShareable* | in | 挿入するエントリ(共有可能オブジェクト)を指定する。 |
| index | DWORD | in | 削除するエントリの 0 基点のインデックスを指定する。 |
vtbl 11 HRESULT SetAt(DWORD index, LPWSTR key, IXpsOMShareable* entry)
| index | DWORD | in | 置き換えるエントリの 0 基点のインデックスを指定する。 |
| key | LPWSTR | in | 設定するエントリのキー文字列を指定する。 |
| entry | IXpsOMShareable* | in | 指定位置に設定するエントリ(共有可能オブジェクト)を指定する。 |
vtbl 12 HRESULT Clone(IXpsOMDictionary** dictionary)
| dictionary | IXpsOMDictionary** | out | 複製された新しいディクショナリへのポインタを受け取る。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IXpsOMDictionary "{897C86B8-8EAF-4AE3-BDDE-56419FCF4236}" #usecom global IXpsOMDictionary IID_IXpsOMDictionary "{}" #comfunc global IXpsOMDictionary_GetOwner 3 sptr #comfunc global IXpsOMDictionary_GetCount 4 var #comfunc global IXpsOMDictionary_GetAt 5 int,var,sptr #comfunc global IXpsOMDictionary_GetByKey 6 wstr,sptr,sptr #comfunc global IXpsOMDictionary_GetIndex 7 sptr,var #comfunc global IXpsOMDictionary_Append 8 wstr,sptr #comfunc global IXpsOMDictionary_InsertAt 9 int,wstr,sptr #comfunc global IXpsOMDictionary_RemoveAt 10 int #comfunc global IXpsOMDictionary_SetAt 11 int,wstr,sptr #comfunc global IXpsOMDictionary_Clone 12 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IXpsOMDictionary "{897C86B8-8EAF-4AE3-BDDE-56419FCF4236}" #usecom global IXpsOMDictionary IID_IXpsOMDictionary "{}" #comfunc global IXpsOMDictionary_GetOwner 3 sptr #comfunc global IXpsOMDictionary_GetCount 4 sptr #comfunc global IXpsOMDictionary_GetAt 5 int,sptr,sptr #comfunc global IXpsOMDictionary_GetByKey 6 wstr,sptr,sptr #comfunc global IXpsOMDictionary_GetIndex 7 sptr,sptr #comfunc global IXpsOMDictionary_Append 8 wstr,sptr #comfunc global IXpsOMDictionary_InsertAt 9 int,wstr,sptr #comfunc global IXpsOMDictionary_RemoveAt 10 int #comfunc global IXpsOMDictionary_SetAt 11 int,wstr,sptr #comfunc global IXpsOMDictionary_Clone 12 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。