IPackageDebugSettings
COM公式ドキュメント
デバッガー開発者が、Windows ストア アプリのライフサイクル(中断や再開など)を制御できるようにします。
解説(Remarks)
設定したデバッグ オプションは、クリアされるかこのインターフェイスが解放されるまで有効なままです。
新しい Windows UI 上の Internet Explorer に対してデバッグ設定を有効にするには、IPackageDebugSettings の各メソッドの packageFullName パラメーターとして "DefaultBrowser_NOPUBLISHERID" を使用してください。
メソッド 15
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
指定したパッケージのプロセスに対してデバッグ モードを有効にします。
| packageFullName | LPWSTR | in | パッケージのフル ネームです。 |
| debuggerCommandLine | LPWSTR | inoptional | このパッケージからプロセスを起動する際に使用するコマンド ラインです。このパラメーターは省略可能です。 |
| environment | LPWSTR | inoptional | プロセスに渡す環境文字列です。このパラメーターは省略可能です。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。
解説(Remarks)
デバッグ モードを有効にすると、次の効果があります。
- 必要に応じて、アクティブ化時のデバッガーのアタッチを有効にします。
- アクティブ化のタイムアウトを無効にします。
- プロセスの自動中断を無効にします。
- プロセスの自動終了を無効にします。
- プロセスの自動再開を無効にします。
指定したパッケージのプロセスに対してデバッグ モードを無効にします。
| packageFullName | LPWSTR | in | パッケージのフル ネームです。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。
解説(Remarks)
このメソッドは、このパッケージに対して EnableDebugging メソッドが事前に呼び出されていない場合は効果がありません。
パッケージのプロセスが現在実行中の場合、それらを中断します。
| packageFullName | LPWSTR | in | パッケージのフル ネームです。 |
戻り値
このメソッドは、次のいずれかの値を返すことがあります。
| 戻り値 | 説明 |
|---|---|
| システムがパッケージの中断を正常に開始しました。 | |
|
パッケージ内に現在実行中のプロセスが存在しないか、別のエラーが発生しました。 |
解説(Remarks)
各プロセスは Suspending イベントを受け取ります。これは、このイベントへの応答としてアプリをステップ実行する際に役立ちます。
パッケージのプロセスが現在中断されている場合、それらを再開します。
| packageFullName | LPWSTR | in | パッケージのフル ネームです。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。
解説(Remarks)
各プロセスは Resuming イベントを受け取ります。これは、このイベントへの応答としてアプリをステップ実行する際に役立ちます。
指定したパッケージのすべてのプロセスを終了します。
| packageFullName | LPWSTR | in | パッケージのフル ネームです。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。
解説(Remarks)
このメソッドは、プロセスを最初に中断することはありません。中断に続く終了をテストするには、TerminateAllProcesses を呼び出す前に Suspend メソッドを呼び出してください。
セッション識別子を設定します。
| sessionId | DWORD | in | セッション識別子です。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。
指定したパッケージが提供するバックグラウンド タスクを取得します。
| packageFullName | LPWSTR | in | バックグラウンド タスクを照会する対象のパッケージのフル ネームです。 |
| taskCount | DWORD* | out | taskIds と taskNames のエントリ数です。 |
| taskIds | GUID** | out | バックグラウンド タスク識別子の配列です。これらの識別子は、指定したタスクをアクティブ化するために ActivateBackgroundTask メソッドで使用できます。 |
| taskNames | LPWSTR** | out | バックグラウンド タスクの taskIds に対応するタスク名の配列です。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。
解説(Remarks)
taskIds と taskNames の両方のパラメーターは、同じ順序でタスクを保持します。taskId[0] に関連付けられた、ユーザーが読み取り可能なタスク名を知る必要がある場合は、taskNames[0] を参照してください。
指定したバックグラウンド タスクをアクティブ化します。
| taskId | GUID* | in | アクティブ化するバックグラウンド タスクの識別子です。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。
解説(Remarks)
バックグラウンド タスクを処理するコードをテストするには、ActivateBackgroundTask メソッドを使用してください。
指定したパッケージに関連付けられたアプリのうち、バックグラウンド以外の部分を中断および終了し、そのパッケージに関連付けられたバックグラウンド タスクをキャンセルします。
| packageFullName | LPWSTR | in | パッケージのフル ネームです。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。
解説(Remarks)
StartServicing メソッドを使用すると、パッケージが新しいバージョンに更新されたときに何が起こるかをシミュレートできます。新しいバックグラウンド タスクのアクティブ化は、StopServicing メソッドを呼び出すまでバッファーに格納(遅延)されます。
StartServicing メソッドの呼び出しによって開始された、直前のサービス操作を完了します。
| packageFullName | LPWSTR | in | パッケージのフル ネームです。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。
指定したパッケージのバックグラウンド タスクを、指定したユーザー セッションでアクティブ化させます。
| packageFullName | LPWSTR | in | パッケージのフル ネームです。 |
| sessionId | DWORD | in | バックグラウンド タスクのリダイレクト先となるセッションの識別子です。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。
指定したパッケージのバックグラウンド タスクのリダイレクトを停止します。
| packageFullName | LPWSTR | in | パッケージのフル ネームです。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。
指定したパッケージの現在の実行状態を返します。
| packageFullName | LPWSTR | in | パッケージのフル ネームです。 |
| packageExecutionState | PACKAGE_EXECUTION_STATE* | out |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。
解説(Remarks)
デバッガーは GetPackageExecutionState を使用して、アプリケーションが現在、実行中、中断処理中、中断済み、終了済みのいずれの状態にあるかを把握できます。GetPackageExecutionState 関数は、パッケージ内で実行されているバックグラウンド タスクの状態は提供しません。
パッケージの状態変更通知を登録します。
| packageFullName | LPWSTR | in | パッケージのフル ネームです。 |
| pPackageExecutionStateChangeNotification | IPackageExecutionStateChangeNotification* | in | パッケージの状態変更通知は、pPackageExecutionStateChangeNotification 上の OnStateChanged 関数によって配信されます。 |
| pdwCookie | DWORD* | out | 現在のリスナーの一意の登録識別子です。この識別子は、UnregisterForPackageStateChanges メソッドを使用してパッケージの状態変更通知の登録を解除するために使用します。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。
解説(Remarks)
通知は、パッケージが実行中、中断処理中、中断済みの各状態に入ったときに発生します。
RegisterForPackageStateChanges の以前の呼び出しに関連付けられた、パッケージの状態変更通知の受信を停止します。
| dwCookie | DWORD | in | キャンセルする通知です。この識別子は、RegisterForPackageStateChanges メソッドの以前の呼び出しによって返されます。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。
解説(Remarks)
RegisterForPackageStateChanges メソッドの以前の呼び出しに関連付けられたパッケージの状態変更通知の受信を停止するには、UnregisterForPackageStateChanges を呼び出してください。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IPackageDebugSettings "{F27C3930-8029-4AD1-94E3-3DBA417810C1}" #usecom global IPackageDebugSettings IID_IPackageDebugSettings "{B1AEC16F-2383-4852-B0E9-8F0B1DC66B4D}" #comfunc global IPackageDebugSettings_EnableDebugging 3 wstr,wstr,wstr #comfunc global IPackageDebugSettings_DisableDebugging 4 wstr #comfunc global IPackageDebugSettings_Suspend 5 wstr #comfunc global IPackageDebugSettings_Resume 6 wstr #comfunc global IPackageDebugSettings_TerminateAllProcesses 7 wstr #comfunc global IPackageDebugSettings_SetTargetSessionId 8 int #comfunc global IPackageDebugSettings_EnumerateBackgroundTasks 9 wstr,var,var,var #comfunc global IPackageDebugSettings_ActivateBackgroundTask 10 var #comfunc global IPackageDebugSettings_StartServicing 11 wstr #comfunc global IPackageDebugSettings_StopServicing 12 wstr #comfunc global IPackageDebugSettings_StartSessionRedirection 13 wstr,int #comfunc global IPackageDebugSettings_StopSessionRedirection 14 wstr #comfunc global IPackageDebugSettings_GetPackageExecutionState 15 wstr,var #comfunc global IPackageDebugSettings_RegisterForPackageStateChanges 16 wstr,sptr,var #comfunc global IPackageDebugSettings_UnregisterForPackageStateChanges 17 int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IPackageDebugSettings "{F27C3930-8029-4AD1-94E3-3DBA417810C1}" #usecom global IPackageDebugSettings IID_IPackageDebugSettings "{B1AEC16F-2383-4852-B0E9-8F0B1DC66B4D}" #comfunc global IPackageDebugSettings_EnableDebugging 3 wstr,wstr,wstr #comfunc global IPackageDebugSettings_DisableDebugging 4 wstr #comfunc global IPackageDebugSettings_Suspend 5 wstr #comfunc global IPackageDebugSettings_Resume 6 wstr #comfunc global IPackageDebugSettings_TerminateAllProcesses 7 wstr #comfunc global IPackageDebugSettings_SetTargetSessionId 8 int #comfunc global IPackageDebugSettings_EnumerateBackgroundTasks 9 wstr,sptr,sptr,sptr #comfunc global IPackageDebugSettings_ActivateBackgroundTask 10 sptr #comfunc global IPackageDebugSettings_StartServicing 11 wstr #comfunc global IPackageDebugSettings_StopServicing 12 wstr #comfunc global IPackageDebugSettings_StartSessionRedirection 13 wstr,int #comfunc global IPackageDebugSettings_StopSessionRedirection 14 wstr #comfunc global IPackageDebugSettings_GetPackageExecutionState 15 wstr,sptr #comfunc global IPackageDebugSettings_RegisterForPackageStateChanges 16 wstr,sptr,sptr #comfunc global IPackageDebugSettings_UnregisterForPackageStateChanges 17 int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。