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.

245 lines
5.6 KiB

  1. /////////////////////////////////////////////////////////////////////////////
  2. //
  3. // Copyright (c) 1996 Microsoft Corporation
  4. //
  5. // Module Name:
  6. // BaseSht.cpp
  7. //
  8. // Abstract:
  9. // Implementation of the CBaseSheet class.
  10. //
  11. // Author:
  12. // David Potter (davidp) May 14, 1996
  13. //
  14. // Revision History:
  15. //
  16. // Notes:
  17. //
  18. /////////////////////////////////////////////////////////////////////////////
  19. #include "stdafx.h"
  20. #include "CluAdmin.h"
  21. #include "BaseSht.h"
  22. #include "TraceTag.h"
  23. #include "ExtDll.h"
  24. #include "ExcOper.h"
  25. #include "ClusItem.h"
  26. #ifdef _DEBUG
  27. #define new DEBUG_NEW
  28. #undef THIS_FILE
  29. static char THIS_FILE[] = __FILE__;
  30. #endif
  31. /////////////////////////////////////////////////////////////////////////////
  32. // Global Variables
  33. /////////////////////////////////////////////////////////////////////////////
  34. #ifdef _DEBUG
  35. CTraceTag g_tagBaseSheet(_T("UI"), _T("BASE SHEET"), 0);
  36. #endif
  37. /////////////////////////////////////////////////////////////////////////////
  38. // CBaseSheet
  39. /////////////////////////////////////////////////////////////////////////////
  40. IMPLEMENT_DYNAMIC(CBaseSheet, CPropertySheet)
  41. /////////////////////////////////////////////////////////////////////////////
  42. // Message Maps
  43. /////////////////////////////////////////////////////////////////////////////
  44. BEGIN_MESSAGE_MAP(CBaseSheet, CPropertySheet)
  45. //{{AFX_MSG_MAP(CBaseSheet)
  46. //}}AFX_MSG_MAP
  47. END_MESSAGE_MAP()
  48. /////////////////////////////////////////////////////////////////////////////
  49. //++
  50. //
  51. // CBaseSheet::CBaseSheet
  52. //
  53. // Routine Description:
  54. // Constructor.
  55. //
  56. // Arguments:
  57. // pParentWnd [IN OUT] Parent window for this property sheet.
  58. // iSelectPage [IN] Page to show first.
  59. //
  60. // Return Value:
  61. // None.
  62. //
  63. //--
  64. /////////////////////////////////////////////////////////////////////////////
  65. CBaseSheet::CBaseSheet(
  66. IN OUT CWnd * pParentWnd,
  67. IN UINT iSelectPage
  68. )
  69. {
  70. CommonConstruct();
  71. m_pParentWnd = pParentWnd;
  72. } //*** CBaseSheet::CBaseSheet()
  73. /////////////////////////////////////////////////////////////////////////////
  74. //++
  75. //
  76. // CBaseSheet::CBaseSheet
  77. //
  78. // Routine Description:
  79. // Constructor.
  80. //
  81. // Arguments:
  82. // nIDCaption [IN] String resource ID for the caption for the wizard.
  83. // pParentWnd [IN OUT] Parent window for this property sheet.
  84. // iSelectPage [IN] Page to show first.
  85. //
  86. // Return Value:
  87. // None.
  88. //
  89. //--
  90. /////////////////////////////////////////////////////////////////////////////
  91. CBaseSheet::CBaseSheet(
  92. IN UINT nIDCaption,
  93. IN OUT CWnd * pParentWnd,
  94. IN UINT iSelectPage
  95. )
  96. : CPropertySheet(nIDCaption, pParentWnd, iSelectPage)
  97. {
  98. CommonConstruct();
  99. } //*** CBaseSheet::CBaseSheet()
  100. /////////////////////////////////////////////////////////////////////////////
  101. //++
  102. //
  103. // CBaseSheet::CommonConstruct
  104. //
  105. // Routine Description:
  106. // Common Constructor.
  107. //
  108. // Arguments:
  109. // None.
  110. //
  111. // Return Value:
  112. // None.
  113. //
  114. //--
  115. /////////////////////////////////////////////////////////////////////////////
  116. void CBaseSheet::CommonConstruct(void)
  117. {
  118. m_bReadOnly = FALSE;
  119. m_hicon = NULL;
  120. m_strObjTitle.Empty();
  121. } //*** CBaseSheet::CommonConstruct()
  122. /////////////////////////////////////////////////////////////////////////////
  123. //++
  124. //
  125. // CBaseSheet::~CBaseSheet
  126. //
  127. // Routine Description:
  128. // Destructor.
  129. //
  130. // Arguments:
  131. // None.
  132. //
  133. // Return Value:
  134. // None.
  135. //
  136. //--
  137. /////////////////////////////////////////////////////////////////////////////
  138. CBaseSheet::~CBaseSheet(void)
  139. {
  140. CommonConstruct();
  141. } //*** CBaseSheet::~CBaseSheet()
  142. /////////////////////////////////////////////////////////////////////////////
  143. //++
  144. //
  145. // CBaseSheet::BInit
  146. //
  147. // Routine Description:
  148. // Initialize the property sheet.
  149. //
  150. // Arguments:
  151. // iimgIcon [IN] Index in the large image list for the image to use
  152. // as the icon on each page.
  153. //
  154. // Return Value:
  155. // TRUE Property sheet initialized successfully.
  156. // FALSE Error initializing property sheet.
  157. //
  158. //--
  159. /////////////////////////////////////////////////////////////////////////////
  160. BOOL CBaseSheet::BInit(IN IIMG iimgIcon)
  161. {
  162. BOOL bSuccess = TRUE;
  163. CWaitCursor wc;
  164. try
  165. {
  166. // Extract the icon to use in the upper left corner.
  167. m_hicon = GetClusterAdminApp()->PilLargeImages()->ExtractIcon(iimgIcon);
  168. } // try
  169. catch (CException * pe)
  170. {
  171. pe->ReportError();
  172. pe->Delete();
  173. bSuccess = FALSE;
  174. } // catch: anything
  175. return bSuccess;
  176. } //*** CBaseSheet::BInit()
  177. /////////////////////////////////////////////////////////////////////////////
  178. //++
  179. //
  180. // CBaseSheet::OnInitDialog
  181. //
  182. // Routine Description:
  183. // Handler for the WM_INITDIALOG message.
  184. //
  185. // Arguments:
  186. // None.
  187. //
  188. // Return Value:
  189. // TRUE Focus not set yet.
  190. // FALSE Focus already set.
  191. //
  192. //--
  193. /////////////////////////////////////////////////////////////////////////////
  194. BOOL CBaseSheet::OnInitDialog(void)
  195. {
  196. BOOL bFocusNotSet;
  197. HWND hTabControl = NULL;
  198. // Call the base class method.
  199. bFocusNotSet = CPropertySheet::OnInitDialog();
  200. // Display the context help button on the title bar.
  201. ModifyStyle(0, WS_SYSMENU);
  202. ModifyStyleEx(0, WS_EX_CONTEXTHELP);
  203. //
  204. // Turn off the Multiline style so that we get the arrows ( <- -> ) instead of multiple rows of tabs.
  205. // There is a problem when extension pages that have long
  206. hTabControl = PropSheet_GetTabControl( *this );
  207. if ( hTabControl != 0 )
  208. {
  209. CTabCtrl tc;
  210. if ( tc.Attach( hTabControl ) )
  211. {
  212. tc.ModifyStyle( TCS_MULTILINE, 0 );
  213. }
  214. tc.Detach();
  215. }
  216. return bFocusNotSet;
  217. } //*** CBaseSheet::OnInitDialog()