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::SupportsRestartManager