Win32 API 日本語リファレンス
ホームSystem.Diagnostics.Debug.Extensions › IDebugBreakpoint2

IDebugBreakpoint2

COM
IID1b278d20-79f2-426e-a3f9-c1ddf375d48e継承元IUnknown自前メソッド開始 vtbl3

メソッド 25

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT GetId(DWORD* Id)
IdDWORD*outブレークポイントの ID を受け取るポインタである。
vtbl 4 HRESULT GetType(DWORD* BreakType, DWORD* ProcType)
BreakTypeDWORD*outブレークポイントの種類 (コードまたはデータ) を受け取るポインタである。
ProcTypeDWORD*outブレークポイントが対象とするプロセッサの種類を受け取るポインタである。
vtbl 5 HRESULT GetAdder(IDebugClient** Adder)
AdderIDebugClient**outこのブレークポイントを追加したクライアントを表す IDebugClient を受け取るポインタである。
vtbl 6 HRESULT GetFlags(DWORD* Flags)
FlagsDWORD*outブレークポイントのフラグ (DEBUG_BREAKPOINT_*) を受け取るポインタである。
vtbl 7 HRESULT AddFlags(DWORD Flags)
FlagsDWORDin追加するブレークポイントのフラグ (DEBUG_BREAKPOINT_*) を指定する。
vtbl 8 HRESULT RemoveFlags(DWORD Flags)
FlagsDWORDin取り除くブレークポイントのフラグ (DEBUG_BREAKPOINT_*) を指定する。
vtbl 9 HRESULT SetFlags(DWORD Flags)
FlagsDWORDin設定するブレークポイントのフラグ (DEBUG_BREAKPOINT_*) を指定する。
vtbl 10 HRESULT GetOffset(ULONGLONG* Offset)
OffsetULONGLONG*outブレークポイントが設定されているアドレスを受け取るポインタである。
vtbl 11 HRESULT SetOffset(ULONGLONG Offset)
OffsetULONGLONGinブレークポイントを設定するアドレスを指定する。
vtbl 12 HRESULT GetDataParameters(DWORD* Size, DWORD* AccessType)
SizeDWORD*outデータブレークポイントが監視するバイト数を受け取るポインタである。
AccessTypeDWORD*outデータブレークポイントが監視するアクセス種別を受け取るポインタである。
vtbl 13 HRESULT SetDataParameters(DWORD Size, DWORD AccessType)
SizeDWORDinデータブレークポイントが監視するバイト数を指定する。
AccessTypeDWORDinデータブレークポイントが監視するアクセス種別を指定する。
vtbl 14 HRESULT GetPassCount(DWORD* Count)
CountDWORD*outブレークポイントのパスカウント (発火までに必要な通過回数) を受け取るポインタである。
vtbl 15 HRESULT SetPassCount(DWORD Count)
CountDWORDinブレークポイントのパスカウント (発火までに必要な通過回数) を指定する。
vtbl 16 HRESULT GetCurrentPassCount(DWORD* Count)
CountDWORD*out残りのパスカウントを受け取るポインタである。
vtbl 17 HRESULT GetMatchThreadId(DWORD* Id)
IdDWORD*outブレークポイントが対象とするスレッドの ID を受け取るポインタである。
vtbl 18 HRESULT SetMatchThreadId(DWORD Thread)
ThreadDWORDinブレークポイントを発火させる対象スレッドの ID を指定する。
vtbl 19 HRESULT GetCommand(LPSTR Buffer, DWORD BufferSize, DWORD* CommandSize)
BufferLPSTRoutoptionalブレークポイント発火時に実行するコマンド文字列を受け取るバッファへのポインタである。
BufferSizeDWORDinBuffer のサイズを文字数単位で指定する。
CommandSizeDWORD*outoptionalコマンド文字列の格納に必要な文字数を受け取るポインタである。
vtbl 20 HRESULT SetCommand(LPSTR Command)
CommandLPSTRinブレークポイント発火時に実行するコマンド文字列を指定する。
vtbl 21 HRESULT GetOffsetExpression(LPSTR Buffer, DWORD BufferSize, DWORD* ExpressionSize)
BufferLPSTRoutoptionalブレークポイント位置を表す式の文字列を受け取るバッファへのポインタである。
BufferSizeDWORDinBuffer のサイズを文字数単位で指定する。
ExpressionSizeDWORD*outoptional式文字列の格納に必要な文字数を受け取るポインタである。
vtbl 22 HRESULT SetOffsetExpression(LPSTR Expression)
ExpressionLPSTRinブレークポイント位置を表す式の文字列を指定する。
vtbl 23 HRESULT GetParameters(DEBUG_BREAKPOINT_PARAMETERS* Params)
ParamsDEBUG_BREAKPOINT_PARAMETERS*outブレークポイントの各種パラメータを受け取る DEBUG_BREAKPOINT_PARAMETERS 構造体へのポインタである。
vtbl 24 HRESULT GetCommandWide(LPWSTR Buffer, DWORD BufferSize, DWORD* CommandSize)
BufferLPWSTRoutoptionalブレークポイント発火時に実行するコマンド文字列を受け取るバッファへのポインタである。
BufferSizeDWORDinBuffer のサイズを文字数単位で指定する。
CommandSizeDWORD*outoptionalコマンド文字列の格納に必要な文字数を受け取るポインタである。
vtbl 25 HRESULT SetCommandWide(LPWSTR Command)
CommandLPWSTRinブレークポイント発火時に実行するコマンド文字列を指定する。
vtbl 26 HRESULT GetOffsetExpressionWide(LPWSTR Buffer, DWORD BufferSize, DWORD* ExpressionSize)
BufferLPWSTRoutoptionalブレークポイント位置を表す式の文字列を受け取るバッファへのポインタである。
BufferSizeDWORDinBuffer のサイズを文字数単位で指定する。
ExpressionSizeDWORD*outoptional式文字列の格納に必要な文字数を受け取るポインタである。
vtbl 27 HRESULT SetOffsetExpressionWide(LPWSTR Expression)
ExpressionLPWSTRinブレークポイント位置を表す式の文字列を指定する。

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IDebugBreakpoint2 "{1B278D20-79F2-426E-A3F9-C1DDF375D48E}"
#usecom global IDebugBreakpoint2 IID_IDebugBreakpoint2 "{}"
#comfunc global IDebugBreakpoint2_GetId                    3 var
#comfunc global IDebugBreakpoint2_GetType                  4 var,var
#comfunc global IDebugBreakpoint2_GetAdder                 5 sptr
#comfunc global IDebugBreakpoint2_GetFlags                 6 var
#comfunc global IDebugBreakpoint2_AddFlags                 7 int
#comfunc global IDebugBreakpoint2_RemoveFlags              8 int
#comfunc global IDebugBreakpoint2_SetFlags                 9 int
#comfunc global IDebugBreakpoint2_GetOffset                10 var
#comfunc global IDebugBreakpoint2_SetOffset                11 int64
#comfunc global IDebugBreakpoint2_GetDataParameters        12 var,var
#comfunc global IDebugBreakpoint2_SetDataParameters        13 int,int
#comfunc global IDebugBreakpoint2_GetPassCount             14 var
#comfunc global IDebugBreakpoint2_SetPassCount             15 int
#comfunc global IDebugBreakpoint2_GetCurrentPassCount      16 var
#comfunc global IDebugBreakpoint2_GetMatchThreadId         17 var
#comfunc global IDebugBreakpoint2_SetMatchThreadId         18 int
#comfunc global IDebugBreakpoint2_GetCommand               19 var,int,var
#comfunc global IDebugBreakpoint2_SetCommand               20 str
#comfunc global IDebugBreakpoint2_GetOffsetExpression      21 var,int,var
#comfunc global IDebugBreakpoint2_SetOffsetExpression      22 str
#comfunc global IDebugBreakpoint2_GetParameters            23 var
#comfunc global IDebugBreakpoint2_GetCommandWide           24 var,int,var
#comfunc global IDebugBreakpoint2_SetCommandWide           25 wstr
#comfunc global IDebugBreakpoint2_GetOffsetExpressionWide  26 var,int,var
#comfunc global IDebugBreakpoint2_SetOffsetExpressionWide  27 wstr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。