Source code of Windows XP (NT5)
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.

165 lines
3.3 KiB

  1. /*++
  2. Copyright (c) 1996 Microsoft Corporation
  3. Module Name:
  4. Hours.cpp : implementation file
  5. CPropertyPage support for User mgmt wizard
  6. File History:
  7. JonY Apr-96 created
  8. --*/
  9. #include "stdafx.h"
  10. #include "Speckle.h"
  11. #include "wizbased.h"
  12. #include "Timelist.h"
  13. #include "Hours.h"
  14. #include "hours1.h"
  15. #ifdef _DEBUG
  16. #undef THIS_FILE
  17. static char THIS_FILE[] = __FILE__;
  18. #endif
  19. /////////////////////////////////////////////////////////////////////////////
  20. // CHoursDlg property page
  21. IMPLEMENT_DYNCREATE(CHoursDlg, CWizBaseDlg)
  22. CHoursDlg::CHoursDlg() : CWizBaseDlg(CHoursDlg::IDD)
  23. {
  24. //{{AFX_DATA_INIT(CHoursDlg)
  25. //}}AFX_DATA_INIT
  26. m_swDisAllowed.bWhich = FALSE;
  27. m_swAllowed.bWhich = TRUE;
  28. }
  29. CHoursDlg::~CHoursDlg()
  30. {
  31. }
  32. void CHoursDlg::DoDataExchange(CDataExchange* pDX)
  33. {
  34. CPropertyPage::DoDataExchange(pDX);
  35. //{{AFX_DATA_MAP(CHoursDlg)
  36. DDX_Control(pDX, IDC_STATIC_DISALLOWEDTIMES, m_swDisAllowed);
  37. DDX_Control(pDX, IDC_STATIC_ALLOWEDTIMES, m_swAllowed);
  38. DDX_Control(pDX, IDC_HOURSCTRL1, m_ccHours);
  39. //}}AFX_DATA_MAP
  40. }
  41. BEGIN_MESSAGE_MAP(CHoursDlg, CWizBaseDlg)
  42. //{{AFX_MSG_MAP(CHoursDlg)
  43. ON_WM_SHOWWINDOW()
  44. //}}AFX_MSG_MAP
  45. END_MESSAGE_MAP()
  46. /////////////////////////////////////////////////////////////////////////////
  47. // CHoursDlg message handlers
  48. BOOL CHoursDlg::OnInitDialog()
  49. {
  50. CWizBaseDlg::OnInitDialog();
  51. return TRUE; // return TRUE unless you set the focus to a control
  52. // EXCEPTION: OCX Property Pages should return FALSE
  53. }
  54. LRESULT CHoursDlg::OnWizardNext()
  55. {
  56. UpdateData(TRUE);
  57. CSpeckleApp* pApp = (CSpeckleApp*)AfxGetApp();
  58. // build a SAFEARRAY to receive data from the control
  59. VARIANT vaResult;
  60. VariantInit(&vaResult);
  61. vaResult.vt = VT_ARRAY | VT_UI1;
  62. SAFEARRAYBOUND sab[1];
  63. sab[0].cElements = 21;
  64. sab[0].lLbound = 0;
  65. vaResult.parray = SafeArrayCreate(VT_UI1, 1, sab);
  66. void* vRet;
  67. BYTE* bRet;
  68. // get the data from the control
  69. vaResult = m_ccHours.GetDateData();
  70. SafeArrayAccessData(vaResult.parray, &vRet);
  71. USHORT sCount = 0;
  72. bRet = (BYTE*)vRet;
  73. while (sCount < 21)
  74. {
  75. memcpy(&pApp->m_pHours[sCount], bRet + (sCount * sizeof(BYTE)), sizeof(BYTE));
  76. sCount++;
  77. }
  78. if (pApp->m_bWorkstation) return IDD_LOGONTO_DLG;
  79. else if (pApp->m_bNW) return IDD_NWLOGON_DIALOG;
  80. else return IDD_FINISH;
  81. }
  82. LRESULT CHoursDlg::OnWizardBack()
  83. {
  84. CSpeckleApp* pApp = (CSpeckleApp*)AfxGetApp();
  85. if (pApp->m_bExpiration) return IDD_ACCOUNT_EXP_DIALOG;
  86. return IDD_RESTRICTIONS_DIALOG;
  87. }
  88. void CHoursDlg::OnShowWindow(BOOL bShow, UINT nStatus)
  89. {
  90. CWizBaseDlg::OnShowWindow(bShow, nStatus);
  91. if (bShow)
  92. {
  93. m_ccHours.SetCrPermitColor(GetSysColor(COLOR_ACTIVECAPTION));
  94. m_ccHours.SetCrDenyColor(GetSysColor(COLOR_CAPTIONTEXT));
  95. }
  96. }
  97. /////////////////////////////////////////////////////////////////////////////
  98. // CSWnd
  99. CSWnd::CSWnd()
  100. {
  101. }
  102. CSWnd::~CSWnd()
  103. {
  104. }
  105. BEGIN_MESSAGE_MAP(CSWnd, CStatic)
  106. //{{AFX_MSG_MAP(CSWnd)
  107. ON_WM_PAINT()
  108. //}}AFX_MSG_MAP
  109. END_MESSAGE_MAP()
  110. /////////////////////////////////////////////////////////////////////////////
  111. // CSWnd message handlers
  112. void CSWnd::OnPaint()
  113. {
  114. CPaintDC dc(this); // device context for painting
  115. if (bWhich) dc.FillRect(&dc.m_ps.rcPaint, CBrush::FromHandle(CreateSolidBrush(GetSysColor(COLOR_ACTIVECAPTION))));
  116. else dc.FillRect(&dc.m_ps.rcPaint, CBrush::FromHandle(CreateSolidBrush(GetSysColor(COLOR_CAPTIONTEXT))));
  117. // Do not call CStatic::OnPaint() for painting messages
  118. }