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

IActiveScriptProfilerCallback

COM
IID740eca23-7d9d-42e5-ba9d-f8b24b1c7a9b継承元IUnknown自前メソッド開始 vtbl3

メソッド 6

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

vtbl 3 HRESULT Initialize(DWORD dwContext)
dwContextDWORDinプロファイリング開始時に指定されたコンテキスト値を受け取る。
vtbl 4 HRESULT Shutdown(HRESULT hrReason)
hrReasonHRESULTinプロファイリングが終了する理由を示す HRESULT を指定する。
vtbl 5 HRESULT ScriptCompiled(INT scriptId, PROFILER_SCRIPT_TYPE type, IUnknown* pIDebugDocumentContext)
scriptIdINTinコンパイルされたスクリプトを一意に識別する ID を指定する。
typePROFILER_SCRIPT_TYPEinスクリプトの種類を示す PROFILER_SCRIPT_TYPE を指定する。
pIDebugDocumentContextIUnknown*inスクリプトの位置を示すデバッグドキュメントコンテキストへの IUnknown ポインタである。利用できない場合は NULL となることがある。
vtbl 6 HRESULT FunctionCompiled(INT functionId, INT scriptId, LPWSTR pwszFunctionName, LPWSTR pwszFunctionNameHint, IUnknown* pIDebugDocumentContext)
functionIdINTinコンパイルされた関数を一意に識別する ID を指定する。
scriptIdINTin関数が属するスクリプトの ID を指定する。
pwszFunctionNameLPWSTRin関数の名前を指定する。匿名関数では NULL となることがある。
pwszFunctionNameHintLPWSTRin匿名関数などに対して推測された名前のヒントを指定する。
pIDebugDocumentContextIUnknown*in関数の位置を示すデバッグドキュメントコンテキストへの IUnknown ポインタである。利用できない場合は NULL となることがある。
vtbl 7 HRESULT OnFunctionEnter(INT scriptId, INT functionId)
scriptIdINTin実行に入った関数が属するスクリプトの ID を指定する。
functionIdINTin実行に入った関数を識別する ID を指定する。
vtbl 8 HRESULT OnFunctionExit(INT scriptId, INT functionId)
scriptIdINTin実行を終えた関数が属するスクリプトの ID を指定する。
functionIdINTin実行を終えた関数を識別する ID を指定する。

HSP用 COM定義

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

#define global IID_IActiveScriptProfilerCallback "{740ECA23-7D9D-42E5-BA9D-F8B24B1C7A9B}"
#usecom global IActiveScriptProfilerCallback IID_IActiveScriptProfilerCallback "{}"
#comfunc global IActiveScriptProfilerCallback_Initialize        3 int
#comfunc global IActiveScriptProfilerCallback_Shutdown          4 int
#comfunc global IActiveScriptProfilerCallback_ScriptCompiled    5 int,int,sptr
#comfunc global IActiveScriptProfilerCallback_FunctionCompiled  6 int,int,wstr,wstr,sptr
#comfunc global IActiveScriptProfilerCallback_OnFunctionEnter   7 int,int
#comfunc global IActiveScriptProfilerCallback_OnFunctionExit    8 int,int
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。