ホーム › System.Diagnostics.Debug.Extensions › IDebugFailureAnalysis
IDebugFailureAnalysis
COMメソッド 10
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 3 DWORD GetFailureClass()
vtbl 4 DEBUG_FAILURE_TYPE GetFailureType()
vtbl 5 DWORD GetFailureCode()
vtbl 6 FA_ENTRY* Get(DEBUG_FLR_PARAM_TYPE Tag)
| Tag | DEBUG_FLR_PARAM_TYPE | in | 取得する障害分析エントリを識別するタグ(DEBUG_FLR_PARAM_TYPE)を指定する。 |
vtbl 7 FA_ENTRY* GetNext(FA_ENTRY* Entry, DEBUG_FLR_PARAM_TYPE Tag, DEBUG_FLR_PARAM_TYPE TagMask)
| Entry | FA_ENTRY* | inout | 列挙の起点となる現在のエントリ(FA_ENTRY)を指定する。先頭から列挙する場合は NULL を渡す。 |
| Tag | DEBUG_FLR_PARAM_TYPE | in | 列挙対象を絞り込むタグ(DEBUG_FLR_PARAM_TYPE)を指定する。 |
| TagMask | DEBUG_FLR_PARAM_TYPE | in | タグの比較に適用するマスク(DEBUG_FLR_PARAM_TYPE)を指定する。 |
vtbl 8 FA_ENTRY* GetString(DEBUG_FLR_PARAM_TYPE Tag, LPSTR Str, DWORD MaxSize)
| Tag | DEBUG_FLR_PARAM_TYPE | in | 値を取得する対象のタグ(DEBUG_FLR_PARAM_TYPE)を指定する。 |
| Str | LPSTR | out | タグの文字列値を受け取るバッファである。 |
| MaxSize | DWORD | in | Str バッファの最大サイズ(バイト数)を指定する。 |
vtbl 9 FA_ENTRY* GetBuffer(DEBUG_FLR_PARAM_TYPE Tag, void* Buf, DWORD Size)
| Tag | DEBUG_FLR_PARAM_TYPE | in | 値を取得する対象のタグ(DEBUG_FLR_PARAM_TYPE)を指定する。 |
| Buf | void* | out | タグのバイナリデータを受け取るバッファへのポインタである。 |
| Size | DWORD | in | Buf バッファのサイズ(バイト数)を指定する。 |
vtbl 10 FA_ENTRY* GetUlong(DEBUG_FLR_PARAM_TYPE Tag, DWORD* Value)
| Tag | DEBUG_FLR_PARAM_TYPE | in | 値を取得する対象のタグ(DEBUG_FLR_PARAM_TYPE)を指定する。 |
| Value | DWORD* | out | タグの 32 ビット符号なし整数値を受け取る。 |
vtbl 11 FA_ENTRY* GetUlong64(DEBUG_FLR_PARAM_TYPE Tag, ULONGLONG* Value)
| Tag | DEBUG_FLR_PARAM_TYPE | in | 値を取得する対象のタグ(DEBUG_FLR_PARAM_TYPE)を指定する。 |
| Value | ULONGLONG* | out | タグの 64 ビット符号なし整数値を受け取る。 |
| Entry | FA_ENTRY* | inoptional | 列挙の起点となる現在のエントリ(FA_ENTRY)を指定する。先頭から列挙する場合は NULL を渡す。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IDebugFailureAnalysis "{ED0DE363-451F-4943-820C-62DCCDFA7E6D}" #usecom global IDebugFailureAnalysis IID_IDebugFailureAnalysis "{}" #comfunc global IDebugFailureAnalysis_GetFailureClass 3 #comfunc global IDebugFailureAnalysis_GetFailureType 4 #comfunc global IDebugFailureAnalysis_GetFailureCode 5 #comfunc global IDebugFailureAnalysis_Get 6 int #comfunc global IDebugFailureAnalysis_GetNext 7 var,int,int #comfunc global IDebugFailureAnalysis_GetString 8 int,var,int #comfunc global IDebugFailureAnalysis_GetBuffer 9 int,sptr,int #comfunc global IDebugFailureAnalysis_GetUlong 10 int,var #comfunc global IDebugFailureAnalysis_GetUlong64 11 int,var #comfunc global IDebugFailureAnalysis_NextEntry 12 var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IDebugFailureAnalysis "{ED0DE363-451F-4943-820C-62DCCDFA7E6D}" #usecom global IDebugFailureAnalysis IID_IDebugFailureAnalysis "{}" #comfunc global IDebugFailureAnalysis_GetFailureClass 3 #comfunc global IDebugFailureAnalysis_GetFailureType 4 #comfunc global IDebugFailureAnalysis_GetFailureCode 5 #comfunc global IDebugFailureAnalysis_Get 6 int #comfunc global IDebugFailureAnalysis_GetNext 7 sptr,int,int #comfunc global IDebugFailureAnalysis_GetString 8 int,sptr,int #comfunc global IDebugFailureAnalysis_GetBuffer 9 int,sptr,int #comfunc global IDebugFailureAnalysis_GetUlong 10 int,sptr #comfunc global IDebugFailureAnalysis_GetUlong64 11 int,sptr #comfunc global IDebugFailureAnalysis_NextEntry 12 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。