ホーム › System.Diagnostics.Debug.Extensions › IDebugHostMemory5
IDebugHostMemory5
COMメソッド 2
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 12 HRESULT ReadIntrinsics(IDebugHostContext* context, Location location, WORD vt, ULONGLONG count, VARIANT* vals, ULONGLONG* intrinsicsRead)
| context | IDebugHostContext* | in | 読み取りを行う対象アドレス空間を表すホストコンテキストへのポインタである。NULL の場合は現在のコンテキストが使用される。 |
| location | Location | in | 読み取りを開始するメモリ位置(アドレス)を指定する。 |
| vt | WORD | in | 読み取る組み込み(intrinsic)値の型を示す VARIANT 型コード(VARENUM の VT_ 値)を指定する。 |
| count | ULONGLONG | in | 読み取る組み込み値の個数を指定する。 |
| vals | VARIANT* | out | 読み取った組み込み値を受け取る VARIANT 配列へのポインタである。呼び出し側が count 個分の領域を用意する。 |
| intrinsicsRead | ULONGLONG* | out | 実際に読み取られた組み込み値の個数を受け取る出力ポインタである。 |
vtbl 13 HRESULT ReadOrdinalIntrinsics(IDebugHostContext* context, Location location, ULONGLONG ordinalSize, BYTE ordinalIsSigned, ULONGLONG count, VARIANT* vals, ULONGLONG* intrinsicsRead)
| context | IDebugHostContext* | in | 読み取りを行う対象アドレス空間を表すホストコンテキストへのポインタである。NULL の場合は現在のコンテキストが使用される。 |
| location | Location | in | 読み取りを開始するメモリ位置(アドレス)を指定する。 |
| ordinalSize | ULONGLONG | in | 各序数(ordinal)値のバイト単位のサイズを指定する。 |
| ordinalIsSigned | BYTE | in | 序数値を符号付きとして解釈するか否かを示すブール値を指定する。0 以外で符号付きである。 |
| count | ULONGLONG | in | 読み取る組み込み値の個数を指定する。 |
| vals | VARIANT* | out | 読み取った組み込み値を受け取る VARIANT 配列へのポインタである。呼び出し側が count 個分の領域を用意する。 |
| intrinsicsRead | ULONGLONG* | out | 実際に読み取られた組み込み値の個数を受け取る出力ポインタである。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IDebugHostMemory5 "{DF033400-4912-46E9-BA62-6EF2EB4D87D4}" #usecom global IDebugHostMemory5 IID_IDebugHostMemory5 "{}" #comfunc global IDebugHostMemory5_ReadIntrinsics 12 sptr,int,int,int64,var,var #comfunc global IDebugHostMemory5_ReadOrdinalIntrinsics 13 sptr,int,int64,int,int64,var,var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IDebugHostMemory5 "{DF033400-4912-46E9-BA62-6EF2EB4D87D4}" #usecom global IDebugHostMemory5 IID_IDebugHostMemory5 "{}" #comfunc global IDebugHostMemory5_ReadIntrinsics 12 sptr,int,int,int64,sptr,sptr #comfunc global IDebugHostMemory5_ReadOrdinalIntrinsics 13 sptr,int,int64,int,int64,sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。