Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

173 lines
5.3 KiB

  1. //
  2. // shutdowndlg.cpp: shutdown dialog
  3. //
  4. #include "stdafx.h"
  5. #define TRC_GROUP TRC_GROUP_UI
  6. #define TRC_FILE "shutdowndlg"
  7. #include <atrcapi.h>
  8. #include "shutdowndlg.h"
  9. #include "sh.h"
  10. CShutdownDlg* CShutdownDlg::_pShutdownDlgInstance = NULL;
  11. CShutdownDlg::CShutdownDlg( HWND hwndOwner, HINSTANCE hInst, CSH* pSh) :
  12. CDlgBase( hwndOwner, hInst, UI_IDD_SHUTTING_DOWN),
  13. _pSh(pSh)
  14. {
  15. DC_BEGIN_FN("CShutdownDlg");
  16. TRC_ASSERT((NULL == CShutdownDlg::_pShutdownDlgInstance),
  17. (TB,_T("Clobbering existing dlg instance pointer\n")));
  18. TRC_ASSERT(_pSh,
  19. (TB,_T("_pSh set to NULL")));
  20. CShutdownDlg::_pShutdownDlgInstance = this;
  21. DC_END_FN();
  22. }
  23. CShutdownDlg::~CShutdownDlg()
  24. {
  25. CShutdownDlg::_pShutdownDlgInstance = NULL;
  26. }
  27. DCINT CShutdownDlg::DoModal()
  28. {
  29. DCINT retVal = 0;
  30. DC_BEGIN_FN("DoModal");
  31. retVal = DialogBox(_hInstance, MAKEINTRESOURCE(_dlgResId),
  32. _hwndOwner, StaticDialogBoxProc);
  33. TRC_ASSERT((retVal != 0 && retVal != -1), (TB, _T("DialogBoxParam failed\n")));
  34. DC_END_FN();
  35. return retVal;
  36. }
  37. INT_PTR CALLBACK CShutdownDlg::StaticDialogBoxProc (HWND hwndDlg, UINT uMsg,
  38. WPARAM wParam, LPARAM lParam)
  39. {
  40. //
  41. // Delegate to appropriate instance (only works for single instance dialogs)
  42. //
  43. DC_BEGIN_FN("StaticDialogBoxProc");
  44. DCINT retVal = 0;
  45. TRC_ASSERT(_pShutdownDlgInstance,
  46. (TB, _T("Shutdown dialog has NULL static instance ptr\n")));
  47. if(_pShutdownDlgInstance)
  48. {
  49. retVal = _pShutdownDlgInstance->DialogBoxProc( hwndDlg,
  50. uMsg,
  51. wParam,
  52. lParam);
  53. }
  54. DC_END_FN();
  55. return retVal;
  56. }
  57. /****************************************************************************/
  58. /* Name: DialogBoxProc */
  59. /* */
  60. /* Purpose: Handles Shutdown Box dialog */
  61. /* */
  62. /* Returns: TRUE if message dealt with */
  63. /* FALSE otherwise */
  64. /* */
  65. /* Params: See window documentation */
  66. /* */
  67. /****************************************************************************/
  68. INT_PTR CALLBACK CShutdownDlg::DialogBoxProc (HWND hwndDlg, UINT uMsg,
  69. WPARAM wParam, LPARAM lParam)
  70. {
  71. INT_PTR rc = FALSE;
  72. DC_BEGIN_FN("UIShutdownDialogProc");
  73. /************************************************************************/
  74. /* Handle dialog messages */
  75. /************************************************************************/
  76. switch(uMsg)
  77. {
  78. case WM_INITDIALOG:
  79. {
  80. /****************************************************************/
  81. /* Center the dialog */
  82. /****************************************************************/
  83. if(hwndDlg)
  84. {
  85. _hwndDlg = hwndDlg;
  86. CenterWindow(_hwndOwner);
  87. SetDialogAppIcon(hwndDlg);
  88. }
  89. rc = TRUE;
  90. }
  91. break;
  92. case WM_COMMAND:
  93. {
  94. switch(DC_GET_WM_COMMAND_ID(wParam))
  95. {
  96. case UI_ID_SHUTDOWN_YES:
  97. {
  98. EndDialog(hwndDlg, IDOK);
  99. rc = TRUE;
  100. }
  101. break;
  102. #ifndef OS_WINCE
  103. case UI_ID_HELP:
  104. {
  105. //
  106. // Pop help
  107. //
  108. TRC_NRM((TB, _T("Display help")));
  109. if(_hwndOwner)
  110. {
  111. _pSh->SH_DisplayClientHelp(
  112. _hwndOwner,
  113. HH_DISPLAY_TOPIC);
  114. }
  115. }
  116. break;
  117. #endif
  118. default:
  119. {
  120. if(hwndDlg)
  121. {
  122. rc = CDlgBase::DialogBoxProc(hwndDlg,
  123. uMsg,
  124. wParam,
  125. lParam);
  126. }
  127. }
  128. break;
  129. }
  130. }
  131. break;
  132. default:
  133. {
  134. if(hwndDlg)
  135. {
  136. rc = CDlgBase::DialogBoxProc(hwndDlg,
  137. uMsg,
  138. wParam,
  139. lParam);
  140. }
  141. }
  142. break;
  143. }
  144. DC_END_FN();
  145. return(rc);
  146. } /* UIShutdownDialogBox */