Win32 API 日本語リファレンス
ホームSystem.Diagnostics.Debug.Extensions › IDebugHostFunctionLocalStorage

IDebugHostFunctionLocalStorage

COM
IID2f2f303b-39be-4b6d-9bfb-4faa49dbbd45継承元IUnknown自前メソッド開始 vtbl3

メソッド 4

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

vtbl 3 HRESULT GetValidRange(ULONGLONG* start, ULONGLONG* end, BOOLEAN* guaranteed)
startULONGLONG*outこのローカル変数の格納場所が有効となる命令範囲の開始アドレス(オフセット)を受け取る。
endULONGLONG*outこのローカル変数の格納場所が有効となる命令範囲の終了アドレス(オフセット)を受け取る。
guaranteedBOOLEAN*out指定範囲内で格納場所が保証されているかどうかを示すブール値を受け取る。
vtbl 4 HRESULT GetStorageKind(StorageKind* kind)
kindStorageKind*outローカル変数の格納方式(レジスタ、メモリオフセット等)を示す StorageKind 列挙値を受け取る。
vtbl 5 HRESULT GetRegister(DWORD* registerId)
registerIdDWORD*outローカル変数が格納されているレジスタの識別子を受け取る。格納方式がレジスタ系の場合に有効である。
vtbl 6 HRESULT GetOffset(LONGLONG* offset)
offsetLONGLONG*outローカル変数の格納場所を示す符号付きオフセット値を受け取る。

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IDebugHostFunctionLocalStorage "{2F2F303B-39BE-4B6D-9BFB-4FAA49DBBD45}"
#usecom global IDebugHostFunctionLocalStorage IID_IDebugHostFunctionLocalStorage "{}"
#comfunc global IDebugHostFunctionLocalStorage_GetValidRange   3 var,var,var
#comfunc global IDebugHostFunctionLocalStorage_GetStorageKind  4 var
#comfunc global IDebugHostFunctionLocalStorage_GetRegister     5 var
#comfunc global IDebugHostFunctionLocalStorage_GetOffset       6 var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。