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
);

参数

Parameter

说明

[in] bRegisterRecoveryCallback

TRUE 指示应用程序的此实例使用还原回调函数; FALSE 指示它不。 在应用程序意外退出时,框架调用还原回调函数。 有关更多信息,请参见 CWinApp::ApplicationRecoveryCallback

[in] strRestartIdentifier

标识重新启动管理器的此实例的唯一字符串。 重新启动管理器标识符用于应用程序的每个实例都是唯一的。

[in] pwzCommandLineArgs

包含从命令行的任何额外参数的字符串。

[in] dwRestartFlags

重新启动管理器的可选标志。 有关更多信息,请参见“备注”一节。

[in] pRecoveryCallback

还原回调函数。 此函数都必须采用 LPVOID 参数作为输入并返回 DWORD。 默认还原回调函数是 CWinApp::ApplicationRecoveryCallback

[in] lpvParam

还原回调函数的输入参数。 有关更多信息,请参见 CWinApp::ApplicationRecoveryCallback

[in] dwPingInterval

重新启动管理器等待还原回调函数返回的时间长度。 此参数是毫秒。

[in] dwCallbackFlags

标志传递给还原回调函数。 保留供将来使用。

返回值

S_OK,如果方法成功;否则错误代码。

备注

如果您的应用程序提供自动存储的文件使用默认MFC实现,应使用 RegisterWithRestartManager的简化版本。 如果要自定义应用程序,自动存储行为请使用 RegisterWithRestartManager 复杂的版本。

如果您调用了一个空字符串的此方法 strRestartIdentifier的,RegisterWithRestartManager 创建重新启动管理器的此实例的唯一标识符字符串。

在应用程序意外退出时,重新启动管理器会重新启动从命令行应用程序并提供唯一重新启动ID作为可选参数。 在此方案中,框架调用 RegisterWithRestartManager 两次。 第一次调用来自一个空字符串的 CWinApp::InitInstance 字符串标识符的。 然后,方法 CWinApp::ProcessShellCommand 调用与单个重新启动标识符的 RegisterWithRestartManager

在注册重新启动管理器的应用程序,则重新启动管理器监视应用程序之后。 如果应用程序意外退出,则重新启动管理器称为回收回调函数在过程中关闭进程。 重新启动管理器等待 dwPingInterval 从还原回调函数的响应。 如果还原回调函数不是在此时间内响应,应用程序退出,不执行回收回调函数。

默认情况下,dwRestartFlags不受支持,但是提供了以后使用。 dwRestartFlags 的可能值如下:

  • RESTART_NO_CRASH

  • RESTART_NO_HANG

  • RESTART_NO_PATCH

  • RESTART_NO_REBOOT

要求

标头: afxwin.h

请参见

参考

CWinApp Class

层次结构图

CWinApp::SupportsRestartManager

CWinApp::ApplicationRecoveryCallback

CDataRecoveryHandler 类