ホーム › System.Diagnostics.Debug.Extensions › IDebugHostSymbols
IDebugHostSymbols
COMメソッド 7
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 3 HRESULT CreateModuleSignature(LPWSTR pwszModuleName, LPWSTR pwszMinVersion, LPWSTR pwszMaxVersion, IDebugHostModuleSignature** ppModuleSignature)
| pwszModuleName | LPWSTR | in | シグネチャの対象とするモジュール名を表す UTF-16 文字列(LPWSTR)を指定する。 |
| pwszMinVersion | LPWSTR | inoptional | 一致対象とする最小バージョンを表す UTF-16 文字列を指定する。下限を設けない場合は NULL を指定できる。 |
| pwszMaxVersion | LPWSTR | inoptional | 一致対象とする最大バージョンを表す UTF-16 文字列を指定する。上限を設けない場合は NULL を指定できる。 |
| ppModuleSignature | IDebugHostModuleSignature** | out | 生成されたモジュールシグネチャを受け取る IDebugHostModuleSignature ポインタへのポインタである。[out] 引数である。 |
vtbl 4 HRESULT CreateTypeSignature(LPWSTR signatureSpecification, IDebugHostModule* module, IDebugHostTypeSignature** typeSignature)
| signatureSpecification | LPWSTR | in | 型シグネチャを記述する仕様文字列を表す UTF-16 文字列(LPWSTR)を指定する。 |
| module | IDebugHostModule* | inoptional | 型シグネチャを対応付けるモジュールを指す IDebugHostModule へのポインタである。 |
| typeSignature | IDebugHostTypeSignature** | out | 生成された型シグネチャを受け取る IDebugHostTypeSignature ポインタへのポインタである。[out] 引数である。 |
vtbl 5 HRESULT CreateTypeSignatureForModuleRange(LPWSTR signatureSpecification, LPWSTR moduleName, LPWSTR minVersion, LPWSTR maxVersion, IDebugHostTypeSignature** typeSignature)
| signatureSpecification | LPWSTR | in | 型シグネチャを記述する仕様文字列を表す UTF-16 文字列(LPWSTR)を指定する。 |
| moduleName | LPWSTR | in | 対象とするモジュール名を表す UTF-16 文字列(LPWSTR)を指定する。 |
| minVersion | LPWSTR | inoptional | 一致対象とする最小バージョンを表す UTF-16 文字列を指定する。下限を設けない場合は NULL を指定できる。 |
| maxVersion | LPWSTR | inoptional | 一致対象とする最大バージョンを表す UTF-16 文字列を指定する。上限を設けない場合は NULL を指定できる。 |
| typeSignature | IDebugHostTypeSignature** | out | 生成された型シグネチャを受け取る IDebugHostTypeSignature ポインタへのポインタである。[out] 引数である。 |
vtbl 6 HRESULT EnumerateModules(IDebugHostContext* context, IDebugHostSymbolEnumerator** moduleEnum)
| context | IDebugHostContext* | in | モジュールを列挙する対象のデバッグホストコンテキストを指す IDebugHostContext へのポインタである。 |
| moduleEnum | IDebugHostSymbolEnumerator** | out | モジュールを列挙する IDebugHostSymbolEnumerator を受け取るポインタへのポインタである。[out] 引数である。 |
vtbl 7 HRESULT FindModuleByName(IDebugHostContext* context, LPWSTR moduleName, IDebugHostModule** module)
| context | IDebugHostContext* | in | モジュールを検索する対象のデバッグホストコンテキストを指す IDebugHostContext へのポインタである。 |
| moduleName | LPWSTR | in | 検索するモジュール名を表す UTF-16 文字列(LPWSTR)を指定する。 |
| module | IDebugHostModule** | out | 見つかったモジュールを受け取る IDebugHostModule ポインタへのポインタである。[out] 引数である。 |
vtbl 8 HRESULT FindModuleByLocation(IDebugHostContext* context, Location moduleLocation, IDebugHostModule** module)
| context | IDebugHostContext* | in | モジュールを検索する対象のデバッグホストコンテキストを指す IDebugHostContext へのポインタである。 |
| moduleLocation | Location | in | 検索の手がかりとなるアドレス位置を表す Location を指定する。 |
| module | IDebugHostModule** | out | 指定位置を含むモジュールを受け取る IDebugHostModule ポインタへのポインタである。[out] 引数である。 |
vtbl 9 HRESULT GetMostDerivedObject(IDebugHostContext* pContext, Location location, IDebugHostType* objectType, Location* derivedLocation, IDebugHostType** derivedType)
| pContext | IDebugHostContext* | inoptional | 解決を行う対象のデバッグホストコンテキストを指す IDebugHostContext へのポインタである。 |
| location | Location | in | 対象オブジェクトのアドレス位置を表す Location を指定する。 |
| objectType | IDebugHostType* | in | 対象オブジェクトの静的な型を指す IDebugHostType へのポインタである。 |
| derivedLocation | Location* | out | 最派生オブジェクトのアドレス位置を受け取る Location へのポインタである。[out] 引数である。 |
| derivedType | IDebugHostType** | out | 最派生オブジェクトの実行時型を受け取る IDebugHostType ポインタへのポインタである。[out] 引数である。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IDebugHostSymbols "{854FD751-C2E1-4EB2-B525-6619CB97A588}" #usecom global IDebugHostSymbols IID_IDebugHostSymbols "{}" #comfunc global IDebugHostSymbols_CreateModuleSignature 3 wstr,wstr,wstr,sptr #comfunc global IDebugHostSymbols_CreateTypeSignature 4 wstr,sptr,sptr #comfunc global IDebugHostSymbols_CreateTypeSignatureForModuleRange 5 wstr,wstr,wstr,wstr,sptr #comfunc global IDebugHostSymbols_EnumerateModules 6 sptr,sptr #comfunc global IDebugHostSymbols_FindModuleByName 7 sptr,wstr,sptr #comfunc global IDebugHostSymbols_FindModuleByLocation 8 sptr,int,sptr #comfunc global IDebugHostSymbols_GetMostDerivedObject 9 sptr,int,sptr,var,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IDebugHostSymbols "{854FD751-C2E1-4EB2-B525-6619CB97A588}" #usecom global IDebugHostSymbols IID_IDebugHostSymbols "{}" #comfunc global IDebugHostSymbols_CreateModuleSignature 3 wstr,wstr,wstr,sptr #comfunc global IDebugHostSymbols_CreateTypeSignature 4 wstr,sptr,sptr #comfunc global IDebugHostSymbols_CreateTypeSignatureForModuleRange 5 wstr,wstr,wstr,wstr,sptr #comfunc global IDebugHostSymbols_EnumerateModules 6 sptr,sptr #comfunc global IDebugHostSymbols_FindModuleByName 7 sptr,wstr,sptr #comfunc global IDebugHostSymbols_FindModuleByLocation 8 sptr,int,sptr #comfunc global IDebugHostSymbols_GetMostDerivedObject 9 sptr,int,sptr,sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。