次の方法で共有


CWinApp::RegisterWithRestartManager

アプリケーションを再起動マネージャーに登録します。

virtual HRESULT RegisterWithRestartManager(
   BOOL bRegisterRecoveryCallback,
   const CString &strRestartIdentifier
);

virtual HRESULT RegisterWithRestartManager(
   LPCWSTR pwzCommandLineArgs,
   DWORD dwRestartFlags,
   APPLICATION_RECOVERY_CALLBACK pRecoveryCallback,
   LPVOID lpvParam,
   DWORD dwPingInterval,
   DWORD dwCallbackFlags
);

パラメーター

パラメーター

説明

[入力] bRegisterRecoveryCallback

TRUE の場合は、このアプリケーションのインスタンスで回復コールバック関数が使用されます。FALSE の場合は、使用されません。 アプリケーションが予期せずに終了したときに、フレームワークによって回復コールバック関数が呼び出されます。 詳細については、「CWinApp::ApplicationRecoveryCallback」を参照してください。

[入力] strRestartIdentifier

再起動マネージャーのこのインスタンスを識別する一意の文字列。 再起動マネージャーの識別子は、アプリケーションの各インスタンスで一意です。

[入力] pwzCommandLineArgs

コマンド ラインから入力される追加の引数を含む文字列。

[入力] dwRestartFlags

再起動マネージャーで使用されるフラグ (省略可能)。 詳細については、「解説」を参照してください。

[入力] pRecoveryCallback

回復コールバック関数。 この関数は、LPVOID パラメーターを入力として受け取り、DWORD を返す必要があります。 既定の回復コールバック関数は、CWinApp::ApplicationRecoveryCallback です。

[入力] lpvParam

回復コールバック関数の入力パラメーター。 詳細については、「CWinApp::ApplicationRecoveryCallback」を参照してください。

[入力] dwPingInterval

回復コールバック関数が応答するまで再起動マネージャーが待機する時間。 このパラメーターの値はミリ秒単位です。

[入力] dwCallbackFlags

回復コールバック関数に渡されるフラグ。 将来利用するために予約されています。

戻り値

メソッドが成功した場合は S_OK。それ以外の場合はエラー コード。

解説

アプリケーションが既定の MFC 実装を使用してファイルを自動保存する場合は、単純な形式の RegisterWithRestartManager を使用してください。 アプリケーションの自動保存の動作をカスタマイズする場合は、複雑な形式の RegisterWithRestartManager を使用します。

strRestartIdentifier に空の文字列を指定してこのメソッドを呼び出した場合、RegisterWithRestartManager によって、この再起動マネージャー インスタンスを表す一意識別子文字列が作成されます。

アプリケーションが予期せずに終了した場合、再起動マネージャーによってコマンド ラインからアプリケーションが再起動され、オプションの引数として一意の再起動識別子が指定されます。 このシナリオでは、フレームワークによって RegisterWithRestartManager が 2 回呼び出されます。 1 回目の呼び出しは、CWinApp::InitInstance によって文字列識別子に空の文字列を使用して実行されます。 次に、CWinApp::ProcessShellCommand メソッドによって一意の再起動識別子を使用して RegisterWithRestartManager が呼び出されます。

再起動マネージャーにアプリケーションを登録すると、再起動マネージャーによるアプリケーションの監視が開始されます。 アプリケーションが予期せずに終了すると、シャットダウン処理中に再起動マネージャーによって回復コールバック関数が呼び出されます。 再起動マネージャーは、dwPingInterval が経過するまで、回復コールバック関数からの応答を待ちます。 回復コールバック関数がこの時間内に応答しなかった場合、アプリケーションは終了し、回復コールバック関数は実行されません。

既定では、dwRestartFlags はサポートされていませんが、将来使用できるように用意されています。 dwRestartFlags には、次の値を指定できます。

  • RESTART_NO_CRASH

  • RESTART_NO_HANG

  • RESTART_NO_PATCH

  • RESTART_NO_REBOOT

必要条件

ヘッダー: afxwin.h

参照

関連項目

CWinApp クラス

階層図

CWinApp::SupportsRestartManager

CWinApp::ApplicationRecoveryCallback

CDataRecoveryHandler クラス