ホーム › System.Diagnostics.Debug.Extensions › IDebugHostSymbol
IDebugHostSymbol
COMメソッド 7
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 3 HRESULT GetContext(IDebugHostContext** context)
| context | IDebugHostContext** | out | シンボルが属するデバッグホストコンテキストを受け取る IDebugHostContext ポインタへのポインタである。[out] 引数である。 |
vtbl 4 HRESULT EnumerateChildren(SymbolKind kind, LPWSTR name, IDebugHostSymbolEnumerator** ppEnum)
| kind | SymbolKind | in | 列挙対象とする子シンボルの種類を示す SymbolKind を指定する。 |
| name | LPWSTR | inoptional | 列挙を特定の名前に絞り込むための UTF-16 文字列(LPWSTR)を指定する。すべての子を対象とする場合は NULL を指定できる。 |
| ppEnum | IDebugHostSymbolEnumerator** | out | 子シンボルを列挙する IDebugHostSymbolEnumerator を受け取るポインタへのポインタである。[out] 引数である。 |
vtbl 5 HRESULT GetSymbolKind(SymbolKind* kind)
| kind | SymbolKind* | out | このシンボルの種類を受け取る SymbolKind へのポインタである。[out] 引数である。 |
| symbolName | LPWSTR* | out | シンボルの名前を表す UTF-16 文字列を受け取るポインタへのポインタである。[out] 引数であり、文字列は呼び出し側が解放する。 |
vtbl 7 HRESULT GetType(IDebugHostType** type)
| type | IDebugHostType** | out | シンボルの型を受け取る IDebugHostType ポインタへのポインタである。[out] 引数である。 |
vtbl 8 HRESULT GetContainingModule(IDebugHostModule** containingModule)
| containingModule | IDebugHostModule** | out | このシンボルを含むモジュールを受け取る IDebugHostModule ポインタへのポインタである。[out] 引数である。 |
vtbl 9 HRESULT CompareAgainst(IDebugHostSymbol* pComparisonSymbol, DWORD comparisonFlags, BOOLEAN* pMatches)
| pComparisonSymbol | IDebugHostSymbol* | in | 比較対象となるシンボルを指す IDebugHostSymbol へのポインタである。 |
| comparisonFlags | DWORD | in | 比較の挙動を制御するフラグを指定する。 |
| pMatches | BOOLEAN* | out | 2 つのシンボルが一致するかどうかの真偽値を受け取る BOOLEAN へのポインタである。[out] 引数である。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IDebugHostSymbol "{0F819103-87DE-4E96-8277-E05CD441FB22}" #usecom global IDebugHostSymbol IID_IDebugHostSymbol "{}" #comfunc global IDebugHostSymbol_GetContext 3 sptr #comfunc global IDebugHostSymbol_EnumerateChildren 4 int,wstr,sptr #comfunc global IDebugHostSymbol_GetSymbolKind 5 var #comfunc global IDebugHostSymbol_GetName 6 var #comfunc global IDebugHostSymbol_GetType 7 sptr #comfunc global IDebugHostSymbol_GetContainingModule 8 sptr #comfunc global IDebugHostSymbol_CompareAgainst 9 sptr,int,var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IDebugHostSymbol "{0F819103-87DE-4E96-8277-E05CD441FB22}" #usecom global IDebugHostSymbol IID_IDebugHostSymbol "{}" #comfunc global IDebugHostSymbol_GetContext 3 sptr #comfunc global IDebugHostSymbol_EnumerateChildren 4 int,wstr,sptr #comfunc global IDebugHostSymbol_GetSymbolKind 5 sptr #comfunc global IDebugHostSymbol_GetName 6 sptr #comfunc global IDebugHostSymbol_GetType 7 sptr #comfunc global IDebugHostSymbol_GetContainingModule 8 sptr #comfunc global IDebugHostSymbol_CompareAgainst 9 sptr,int,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。