ホーム › System.Diagnostics.Debug.Extensions › IDebugEventContextCallbacks
IDebugEventContextCallbacks
COMメソッド 14
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
| Mask | DWORD* | out | コールバックが受け取りたいイベントを示すビットマスクを受け取るポインタである。 |
vtbl 4 HRESULT Breakpoint(IDebugBreakpoint2* Bp, void* Context, DWORD ContextSize)
| Bp | IDebugBreakpoint2* | in | 発生したブレークポイントを表すインターフェイスへのポインタである。 |
| Context | void* | in | イベント発生時のスレッドコンテキストへのポインタである。 |
| ContextSize | DWORD | in | コンテキストデータのサイズ(バイト単位)を指定する。 |
vtbl 5 HRESULT Exception(EXCEPTION_RECORD64* Exception, DWORD FirstChance, void* Context, DWORD ContextSize)
| Exception | EXCEPTION_RECORD64* | in | 発生した例外を記述する EXCEPTION_RECORD64 構造体へのポインタである。 |
| FirstChance | DWORD | in | 初回(ファーストチャンス)例外であれば 0 以外を指定する。 |
| Context | void* | in | イベント発生時のスレッドコンテキストへのポインタである。 |
| ContextSize | DWORD | in | コンテキストデータのサイズ(バイト単位)を指定する。 |
vtbl 6 HRESULT CreateThread(ULONGLONG Handle, ULONGLONG DataOffset, ULONGLONG StartOffset, void* Context, DWORD ContextSize)
| Handle | ULONGLONG | in | 作成されたスレッドのハンドルを指定する。 |
| DataOffset | ULONGLONG | in | スレッド環境ブロック(TEB)などスレッドデータの仮想アドレスを指定する。 |
| StartOffset | ULONGLONG | in | スレッドの開始アドレスを指定する。 |
| Context | void* | in | イベント発生時のスレッドコンテキストへのポインタである。 |
| ContextSize | DWORD | in | コンテキストデータのサイズ(バイト単位)を指定する。 |
| ExitCode | DWORD | in | 終了したスレッドの終了コードを指定する。 |
| Context | void* | in | イベント発生時のスレッドコンテキストへのポインタである。 |
| ContextSize | DWORD | in | コンテキストデータのサイズ(バイト単位)を指定する。 |
vtbl 8 HRESULT CreateProcessA(ULONGLONG ImageFileHandle, ULONGLONG Handle, ULONGLONG BaseOffset, DWORD ModuleSize, LPWSTR ModuleName, LPWSTR ImageName, DWORD CheckSum, DWORD TimeDateStamp, ULONGLONG InitialThreadHandle, ULONGLONG ThreadDataOffset, ULONGLONG StartOffset, void* Context, DWORD ContextSize)
| ImageFileHandle | ULONGLONG | in | 実行イメージファイルのハンドルを指定する。 |
| Handle | ULONGLONG | in | 作成されたプロセスのハンドルを指定する。 |
| BaseOffset | ULONGLONG | in | プロセスの実行モジュールのベースアドレスを指定する。 |
| ModuleSize | DWORD | in | モジュールのサイズ(バイト単位)を指定する。 |
| ModuleName | LPWSTR | inoptional | モジュール名を指定する。 |
| ImageName | LPWSTR | inoptional | イメージファイルのパス名を指定する。 |
| CheckSum | DWORD | in | イメージのチェックサムを指定する。 |
| TimeDateStamp | DWORD | in | イメージのタイムスタンプを指定する。 |
| InitialThreadHandle | ULONGLONG | in | 最初のスレッドのハンドルを指定する。 |
| ThreadDataOffset | ULONGLONG | in | 最初のスレッドのスレッドデータの仮想アドレスを指定する。 |
| StartOffset | ULONGLONG | in | 最初のスレッドの開始アドレスを指定する。 |
| Context | void* | in | イベント発生時のスレッドコンテキストへのポインタである。 |
| ContextSize | DWORD | in | コンテキストデータのサイズ(バイト単位)を指定する。 |
| ExitCode | DWORD | in | 終了したプロセスの終了コードを指定する。 |
| Context | void* | in | イベント発生時のスレッドコンテキストへのポインタである。 |
| ContextSize | DWORD | in | コンテキストデータのサイズ(バイト単位)を指定する。 |
vtbl 10 HRESULT LoadModule(ULONGLONG ImageFileHandle, ULONGLONG BaseOffset, DWORD ModuleSize, LPWSTR ModuleName, LPWSTR ImageName, DWORD CheckSum, DWORD TimeDateStamp, void* Context, DWORD ContextSize)
| ImageFileHandle | ULONGLONG | in | 読み込まれたモジュールのイメージファイルのハンドルを指定する。 |
| BaseOffset | ULONGLONG | in | 読み込まれたモジュールのベースアドレスを指定する。 |
| ModuleSize | DWORD | in | モジュールのサイズ(バイト単位)を指定する。 |
| ModuleName | LPWSTR | inoptional | モジュール名を指定する。 |
| ImageName | LPWSTR | inoptional | イメージファイルのパス名を指定する。 |
| CheckSum | DWORD | in | イメージのチェックサムを指定する。 |
| TimeDateStamp | DWORD | in | イメージのタイムスタンプを指定する。 |
| Context | void* | in | イベント発生時のスレッドコンテキストへのポインタである。 |
| ContextSize | DWORD | in | コンテキストデータのサイズ(バイト単位)を指定する。 |
vtbl 11 HRESULT UnloadModule(LPWSTR ImageBaseName, ULONGLONG BaseOffset, void* Context, DWORD ContextSize)
| ImageBaseName | LPWSTR | inoptional | アンロードされたモジュールのベース名を指定する。 |
| BaseOffset | ULONGLONG | in | アンロードされたモジュールのベースアドレスを指定する。 |
| Context | void* | in | イベント発生時のスレッドコンテキストへのポインタである。 |
| ContextSize | DWORD | in | コンテキストデータのサイズ(バイト単位)を指定する。 |
| Error | DWORD | in | 発生したシステムエラーのエラーコードを指定する。 |
| Level | DWORD | in | エラーの重大度レベルを指定する。 |
| Context | void* | in | イベント発生時のスレッドコンテキストへのポインタである。 |
| ContextSize | DWORD | in | コンテキストデータのサイズ(バイト単位)を指定する。 |
| Status | DWORD | in | デバッグセッションの新しい状態を示す値を指定する。 |
vtbl 14 HRESULT ChangeDebuggeeState(DWORD Flags, ULONGLONG Argument, void* Context, DWORD ContextSize)
| Flags | DWORD | in | 変化したデバッグ対象の状態を示すフラグを指定する。 |
| Argument | ULONGLONG | in | 状態変化に関する追加情報を指定する。 |
| Context | void* | in | イベント発生時のスレッドコンテキストへのポインタである。 |
| ContextSize | DWORD | in | コンテキストデータのサイズ(バイト単位)を指定する。 |
vtbl 15 HRESULT ChangeEngineState(DWORD Flags, ULONGLONG Argument, void* Context, DWORD ContextSize)
| Flags | DWORD | in | 変化したデバッグエンジンの状態を示すフラグを指定する。 |
| Argument | ULONGLONG | in | 状態変化に関する追加情報を指定する。 |
| Context | void* | in | イベント発生時のスレッドコンテキストへのポインタである。 |
| ContextSize | DWORD | in | コンテキストデータのサイズ(バイト単位)を指定する。 |
| Flags | DWORD | in | 変化したシンボルの状態を示すフラグを指定する。 |
| Argument | ULONGLONG | in | 状態変化に関する追加情報を指定する。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IDebugEventContextCallbacks "{61A4905B-23F9-4247-B3C5-53D087529AB7}" #usecom global IDebugEventContextCallbacks IID_IDebugEventContextCallbacks "{}" #comfunc global IDebugEventContextCallbacks_GetInterestMask 3 var #comfunc global IDebugEventContextCallbacks_Breakpoint 4 sptr,sptr,int #comfunc global IDebugEventContextCallbacks_Exception 5 var,int,sptr,int #comfunc global IDebugEventContextCallbacks_CreateThread 6 int64,int64,int64,sptr,int #comfunc global IDebugEventContextCallbacks_ExitThread 7 int,sptr,int #comfunc global IDebugEventContextCallbacks_CreateProcessA 8 int64,int64,int64,int,wstr,wstr,int,int,int64,int64,int64,sptr,int #comfunc global IDebugEventContextCallbacks_ExitProcess 9 int,sptr,int #comfunc global IDebugEventContextCallbacks_LoadModule 10 int64,int64,int,wstr,wstr,int,int,sptr,int #comfunc global IDebugEventContextCallbacks_UnloadModule 11 wstr,int64,sptr,int #comfunc global IDebugEventContextCallbacks_SystemError 12 int,int,sptr,int #comfunc global IDebugEventContextCallbacks_SessionStatus 13 int #comfunc global IDebugEventContextCallbacks_ChangeDebuggeeState 14 int,int64,sptr,int #comfunc global IDebugEventContextCallbacks_ChangeEngineState 15 int,int64,sptr,int #comfunc global IDebugEventContextCallbacks_ChangeSymbolState 16 int,int64 ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IDebugEventContextCallbacks "{61A4905B-23F9-4247-B3C5-53D087529AB7}" #usecom global IDebugEventContextCallbacks IID_IDebugEventContextCallbacks "{}" #comfunc global IDebugEventContextCallbacks_GetInterestMask 3 sptr #comfunc global IDebugEventContextCallbacks_Breakpoint 4 sptr,sptr,int #comfunc global IDebugEventContextCallbacks_Exception 5 sptr,int,sptr,int #comfunc global IDebugEventContextCallbacks_CreateThread 6 int64,int64,int64,sptr,int #comfunc global IDebugEventContextCallbacks_ExitThread 7 int,sptr,int #comfunc global IDebugEventContextCallbacks_CreateProcessA 8 int64,int64,int64,int,wstr,wstr,int,int,int64,int64,int64,sptr,int #comfunc global IDebugEventContextCallbacks_ExitProcess 9 int,sptr,int #comfunc global IDebugEventContextCallbacks_LoadModule 10 int64,int64,int,wstr,wstr,int,int,sptr,int #comfunc global IDebugEventContextCallbacks_UnloadModule 11 wstr,int64,sptr,int #comfunc global IDebugEventContextCallbacks_SystemError 12 int,int,sptr,int #comfunc global IDebugEventContextCallbacks_SessionStatus 13 int #comfunc global IDebugEventContextCallbacks_ChangeDebuggeeState 14 int,int64,sptr,int #comfunc global IDebugEventContextCallbacks_ChangeEngineState 15 int,int64,sptr,int #comfunc global IDebugEventContextCallbacks_ChangeSymbolState 16 int,int64 ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。