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.
|
|
//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation 1996-2001.
//
// File: cret.cpp
//
// Contents: implementation of CConfigRet
//
//----------------------------------------------------------------------------
#include "stdafx.h"
#include "wsecmgr.h"
#include "resource.h"
#include "snapmgr.h"
#include "attr.h"
#include "CRet.h"
#include "util.h"
#include "DDWarn.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__; #endif
/////////////////////////////////////////////////////////////////////////////
// CConfigRet dialog
CConfigRet::CConfigRet(UINT nTemplateID) : CAttribute(nTemplateID ? nTemplateID : IDD) { //{{AFX_DATA_INIT(CConfigRet)
m_strAttrName = _T(""); m_StartIds = IDS_AS_NEEDED; m_rabRetention = -1; //}}AFX_DATA_INIT
m_pHelpIDs = (DWORD_PTR) a190HelpIDs; m_uTemplateResID = IDD; }
void CConfigRet::DoDataExchange(CDataExchange* pDX) { CAttribute::DoDataExchange(pDX); //{{AFX_DATA_MAP(CConfigRet)
// DDX_Text(pDX, IDC_ATTRIBUTE_NAME, m_strAttrName);
DDX_Radio(pDX, IDC_RETENTION, m_rabRetention); //}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CConfigRet, CAttribute) //{{AFX_MSG_MAP(CConfigRet)
ON_BN_CLICKED(IDC_RETENTION, OnRetention) ON_BN_CLICKED(IDC_RADIO2, OnRetention) ON_BN_CLICKED(IDC_RADIO3, OnRetention) //}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CConfigRet message handlers
BOOL CConfigRet::OnApply() { if ( !m_bReadOnly ) { LONG_PTR dw = 0;
UpdateData(TRUE);
if (!m_bConfigure) dw = (LONG_PTR)ULongToPtr(SCE_NO_VALUE); else { switch(m_rabRetention) { case RADIO_RETAIN_BY_DAYS: dw = SCE_RETAIN_BY_DAYS; break; case RADIO_RETAIN_AS_NEEDED: dw = SCE_RETAIN_AS_NEEDED; break; case RADIO_RETAIN_MANUALLY: dw = SCE_RETAIN_MANUALLY; break; } }
CEditTemplate *petSave = m_pData->GetBaseProfile();
//
// Check dependecies for this item.
//
if(DDWarn.CheckDependencies( (DWORD)dw) == ERROR_MORE_DATA ) { //
// If it fails and the user presses cancel then we will exit and do nothing.
//
CThemeContextActivator activator; if( DDWarn.DoModal() != IDOK) return FALSE;
//
// If the user presses autoset then we set the item and update the result panes.
//
for(int i = 0; i < DDWarn.GetFailedCount(); i++) { PDEPENDENCYFAILED pItem = DDWarn.GetFailedInfo(i); if(pItem && pItem->pResult ) { pItem->pResult->SetBase( pItem->dwSuggested ); SetProfileInfo( pItem->pResult->GetID(), pItem->dwSuggested, pItem->pResult->GetBaseProfile() );
pItem->pResult->Update(m_pSnapin, FALSE); } } }
//
// Update this items profile.
//
m_pData->SetBase(dw); SetProfileInfo(m_pData->GetID(),dw,m_pData->GetBaseProfile());
m_pData->Update(m_pSnapin, false); }
return CAttribute::OnApply(); }
BOOL CConfigRet::OnInitDialog() {
CAttribute::OnInitDialog();
AddUserControl(IDC_RETENTION); AddUserControl(IDC_RADIO2); AddUserControl(IDC_RADIO3); EnableUserControls(m_bConfigure);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CConfigRet::Initialize(CResult * pResult) { CAttribute::Initialize(pResult);
DDWarn.InitializeDependencies(m_pSnapin,pResult);
m_StartIds = IDS_AS_NEEDED;
LONG_PTR dw = pResult->GetBase(); if ((LONG_PTR)ULongToPtr(SCE_NO_VALUE) == dw) { m_bConfigure = FALSE; } else { m_bConfigure = TRUE; SetInitialValue((DWORD_PTR)dw); } }
void CConfigRet::SetInitialValue(DWORD_PTR dw) { if (-1 == m_rabRetention && SCE_NO_VALUE != dw) { switch (dw) { case SCE_RETAIN_BY_DAYS: m_rabRetention = RADIO_RETAIN_BY_DAYS; break; case SCE_RETAIN_AS_NEEDED: m_rabRetention = RADIO_RETAIN_AS_NEEDED; break; case SCE_RETAIN_MANUALLY: m_rabRetention = RADIO_RETAIN_MANUALLY; break; } } }
void CConfigRet::OnRetention() { int prevValue = m_rabRetention; //Raid #504749, 12/18/2001, yanggao, enable "apply".
UpdateData(); if(m_rabRetention != prevValue) { SetModified(TRUE); } }
|