Win32 API 日本語リファレンス
ホームStorage.Xps › IXpsOMDictionary

IXpsOMDictionary

COM
IID897c86b8-8eaf-4ae3-bdde-56419fcf4236継承元IUnknown自前メソッド開始 vtbl3

メソッド 10

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

vtbl 3 HRESULT GetOwner(IUnknown** owner)
ownerIUnknown**outこのディクショナリを所有する親オブジェクトの IUnknown へのポインタを受け取る。
vtbl 4 HRESULT GetCount(DWORD* count)
countDWORD*outディクショナリ内のエントリ数を受け取る。
vtbl 5 HRESULT GetAt(DWORD index, LPWSTR* key, IXpsOMShareable** entry)
indexDWORDin取得するエントリの 0 基点のインデックスを指定する。
keyLPWSTR*out指定インデックスのエントリのキー文字列を受け取る。
entryIXpsOMShareable**out指定インデックスのエントリ(共有可能オブジェクト)へのポインタを受け取る。
vtbl 6 HRESULT GetByKey(LPWSTR key, IXpsOMShareable* beforeEntry, IXpsOMShareable** entry)
keyLPWSTRin検索するエントリのキー文字列を指定する。
beforeEntryIXpsOMShareable*in検索開始位置となるエントリを指定する。先頭から検索する場合は NULL を指定する。
entryIXpsOMShareable**outキーに一致するエントリ(共有可能オブジェクト)へのポインタを受け取る。
vtbl 7 HRESULT GetIndex(IXpsOMShareable* entry, DWORD* index)
entryIXpsOMShareable*inインデックスを取得する対象のエントリを指定する。
indexDWORD*out指定エントリの 0 基点のインデックスを受け取る。
vtbl 8 HRESULT Append(LPWSTR key, IXpsOMShareable* entry)
keyLPWSTRin追加するエントリのキー文字列を指定する。
entryIXpsOMShareable*inコレクション末尾に追加するエントリ(共有可能オブジェクト)を指定する。
vtbl 9 HRESULT InsertAt(DWORD index, LPWSTR key, IXpsOMShareable* entry)
indexDWORDin挿入位置を示す 0 基点のインデックスを指定する。
keyLPWSTRin挿入するエントリのキー文字列を指定する。
entryIXpsOMShareable*in挿入するエントリ(共有可能オブジェクト)を指定する。
vtbl 10 HRESULT RemoveAt(DWORD index)
indexDWORDin削除するエントリの 0 基点のインデックスを指定する。
vtbl 11 HRESULT SetAt(DWORD index, LPWSTR key, IXpsOMShareable* entry)
indexDWORDin置き換えるエントリの 0 基点のインデックスを指定する。
keyLPWSTRin設定するエントリのキー文字列を指定する。
entryIXpsOMShareable*in指定位置に設定するエントリ(共有可能オブジェクト)を指定する。
vtbl 12 HRESULT Clone(IXpsOMDictionary** dictionary)
dictionaryIXpsOMDictionary**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 指定が可能。