Win32 API 日本語リファレンス
ホームUI.Shell › IPackageDebugSettings

IPackageDebugSettings

COM
IIDf27c3930-8029-4ad1-94e3-3dba417810c1継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

デバッガー開発者が、Windows ストア アプリのライフサイクル(中断や再開など)を制御できるようにします。

解説(Remarks)

設定したデバッグ オプションは、クリアされるかこのインターフェイスが解放されるまで有効なままです。

新しい Windows UI 上の Internet Explorer に対してデバッグ設定を有効にするには、IPackageDebugSettings の各メソッドの packageFullName パラメーターとして "DefaultBrowser_NOPUBLISHERID" を使用してください。

メソッド 15

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

vtbl 3 HRESULT EnableDebugging(LPWSTR packageFullName, LPWSTR debuggerCommandLine, LPWSTR environment)

指定したパッケージのプロセスに対してデバッグ モードを有効にします。

packageFullNameLPWSTRinパッケージのフル ネームです。
debuggerCommandLineLPWSTRinoptionalこのパッケージからプロセスを起動する際に使用するコマンド ラインです。このパラメーターは省略可能です。
environmentLPWSTRinoptionalプロセスに渡す環境文字列です。このパラメーターは省略可能です。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。

解説(Remarks)

デバッグ モードを有効にすると、次の効果があります。

通常の動作に戻すには、DisableDebugging メソッドを呼び出してください。
vtbl 4 HRESULT DisableDebugging(LPWSTR packageFullName)

指定したパッケージのプロセスに対してデバッグ モードを無効にします。

packageFullNameLPWSTRinパッケージのフル ネームです。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。

解説(Remarks)

このメソッドは、このパッケージに対して EnableDebugging メソッドが事前に呼び出されていない場合は効果がありません。

vtbl 5 HRESULT Suspend(LPWSTR packageFullName)

パッケージのプロセスが現在実行中の場合、それらを中断します。

packageFullNameLPWSTRinパッケージのフル ネームです。

戻り値

このメソッドは、次のいずれかの値を返すことがあります。

戻り値 説明
S_OK
システムがパッケージの中断を正常に開始しました。
失敗を示す HRESULT 値
パッケージ内に現在実行中のプロセスが存在しないか、別のエラーが発生しました。

解説(Remarks)

各プロセスは Suspending イベントを受け取ります。これは、このイベントへの応答としてアプリをステップ実行する際に役立ちます。

vtbl 6 HRESULT Resume(LPWSTR packageFullName)

パッケージのプロセスが現在中断されている場合、それらを再開します。

packageFullNameLPWSTRinパッケージのフル ネームです。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。

解説(Remarks)

各プロセスは Resuming イベントを受け取ります。これは、このイベントへの応答としてアプリをステップ実行する際に役立ちます。

vtbl 7 HRESULT TerminateAllProcesses(LPWSTR packageFullName)

指定したパッケージのすべてのプロセスを終了します。

packageFullNameLPWSTRinパッケージのフル ネームです。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。

解説(Remarks)

このメソッドは、プロセスを最初に中断することはありません。中断に続く終了をテストするには、TerminateAllProcesses を呼び出す前に Suspend メソッドを呼び出してください。

vtbl 8 HRESULT SetTargetSessionId(DWORD sessionId)

セッション識別子を設定します。

sessionIdDWORDinセッション識別子です。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。

vtbl 9 HRESULT EnumerateBackgroundTasks(LPWSTR packageFullName, DWORD* taskCount, GUID** taskIds, LPWSTR** taskNames)

指定したパッケージが提供するバックグラウンド タスクを取得します。

packageFullNameLPWSTRinバックグラウンド タスクを照会する対象のパッケージのフル ネームです。
taskCountDWORD*outtaskIdstaskNames のエントリ数です。
taskIdsGUID**outバックグラウンド タスク識別子の配列です。これらの識別子は、指定したタスクをアクティブ化するために ActivateBackgroundTask メソッドで使用できます。
taskNamesLPWSTR**outバックグラウンド タスクの taskIds に対応するタスク名の配列です。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。

解説(Remarks)

taskIdstaskNames の両方のパラメーターは、同じ順序でタスクを保持します。taskId[0] に関連付けられた、ユーザーが読み取り可能なタスク名を知る必要がある場合は、taskNames[0] を参照してください。

vtbl 10 HRESULT ActivateBackgroundTask(GUID* taskId)

指定したバックグラウンド タスクをアクティブ化します。

taskIdGUID*inアクティブ化するバックグラウンド タスクの識別子です。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。

解説(Remarks)

バックグラウンド タスクを処理するコードをテストするには、ActivateBackgroundTask メソッドを使用してください。

vtbl 11 HRESULT StartServicing(LPWSTR packageFullName)

指定したパッケージに関連付けられたアプリのうち、バックグラウンド以外の部分を中断および終了し、そのパッケージに関連付けられたバックグラウンド タスクをキャンセルします。

packageFullNameLPWSTRinパッケージのフル ネームです。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。

解説(Remarks)

StartServicing メソッドを使用すると、パッケージが新しいバージョンに更新されたときに何が起こるかをシミュレートできます。新しいバックグラウンド タスクのアクティブ化は、StopServicing メソッドを呼び出すまでバッファーに格納(遅延)されます。

vtbl 12 HRESULT StopServicing(LPWSTR packageFullName)

StartServicing メソッドの呼び出しによって開始された、直前のサービス操作を完了します。

packageFullNameLPWSTRinパッケージのフル ネームです。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。

vtbl 13 HRESULT StartSessionRedirection(LPWSTR packageFullName, DWORD sessionId)

指定したパッケージのバックグラウンド タスクを、指定したユーザー セッションでアクティブ化させます。

packageFullNameLPWSTRinパッケージのフル ネームです。
sessionIdDWORDinバックグラウンド タスクのリダイレクト先となるセッションの識別子です。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。

vtbl 14 HRESULT StopSessionRedirection(LPWSTR packageFullName)

指定したパッケージのバックグラウンド タスクのリダイレクトを停止します。

packageFullNameLPWSTRinパッケージのフル ネームです。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。

vtbl 15 HRESULT GetPackageExecutionState(LPWSTR packageFullName, PACKAGE_EXECUTION_STATE* packageExecutionState)

指定したパッケージの現在の実行状態を返します。

packageFullNameLPWSTRinパッケージのフル ネームです。
packageExecutionStatePACKAGE_EXECUTION_STATE*out

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。

解説(Remarks)

デバッガーは GetPackageExecutionState を使用して、アプリケーションが現在、実行中、中断処理中、中断済み、終了済みのいずれの状態にあるかを把握できます。GetPackageExecutionState 関数は、パッケージ内で実行されているバックグラウンド タスクの状態は提供しません。

vtbl 16 HRESULT RegisterForPackageStateChanges(LPWSTR packageFullName, IPackageExecutionStateChangeNotification* pPackageExecutionStateChangeNotification, DWORD* pdwCookie)

パッケージの状態変更通知を登録します。

packageFullNameLPWSTRinパッケージのフル ネームです。
pPackageExecutionStateChangeNotificationIPackageExecutionStateChangeNotification*inパッケージの状態変更通知は、pPackageExecutionStateChangeNotification 上の OnStateChanged 関数によって配信されます。
pdwCookieDWORD*out現在のリスナーの一意の登録識別子です。この識別子は、UnregisterForPackageStateChanges メソッドを使用してパッケージの状態変更通知の登録を解除するために使用します。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。

解説(Remarks)

通知は、パッケージが実行中、中断処理中、中断済みの各状態に入ったときに発生します。

vtbl 17 HRESULT UnregisterForPackageStateChanges(DWORD dwCookie)

RegisterForPackageStateChanges の以前の呼び出しに関連付けられた、パッケージの状態変更通知の受信を停止します。

dwCookieDWORDinキャンセルする通知です。この識別子は、RegisterForPackageStateChanges メソッドの以前の呼び出しによって返されます。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。

解説(Remarks)

RegisterForPackageStateChanges メソッドの以前の呼び出しに関連付けられたパッケージの状態変更通知の受信を停止するには、UnregisterForPackageStateChanges を呼び出してください。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
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 指定が可能。