|
|
/**********************************************************************/ /** Microsoft Windows/NT **/ /** Copyright(c) Microsoft Corporation **/ /**********************************************************************/
/*
profsht.cpp Implementation of CProfileSheet -- property sheet to hold profile property pages
FILE HISTORY: */ // ProfSht.cpp : implementation file
//
#include "stdafx.h"
#include "resource.h"
#include "pgconst.h"
#include "pgnetwk.h"
#include "ProfSht.h"
#include "rasprof.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__; #endif
/////////////////////////////////////////////////////////////////////////////
// CProfileSheetMerge
IMPLEMENT_DYNAMIC(CProfileSheetMerge, CPropertySheet)
CProfileSheetMerge::CProfileSheetMerge(CRASProfileMerge& profile, bool bSaveOnApply, UINT nIDCaption, CWnd* pParentWnd, UINT iSelectPage) :CPropertySheet(nIDCaption, pParentWnd, iSelectPage), m_pProfile(&profile), m_bSaveOnApply(bSaveOnApply), m_pgAuthentication(&profile), m_pgAuthentication2k(&profile), m_pgConstraints(&profile), m_pgEncryption(&profile), m_pgMultilink(&profile), m_pgNetworking(&profile), m_pgIASAdv(profile.m_spIProfile, profile.m_spIDictionary), m_dwTabFlags(0) { }
CProfileSheetMerge::CProfileSheetMerge(CRASProfileMerge& profile, bool bSaveOnApply, LPCTSTR pszCaption, CWnd* pParentWnd, UINT iSelectPage) :CPropertySheet(pszCaption, pParentWnd, iSelectPage), m_pProfile(&profile), m_bSaveOnApply(bSaveOnApply), m_pgAuthentication(&profile), m_pgAuthentication2k(&profile), m_pgConstraints(&profile), m_pgEncryption(&profile), m_pgMultilink(&profile), m_pgNetworking(&profile), m_pgIASAdv(profile.m_spIProfile, profile.m_spIDictionary), m_dwTabFlags(0) { }
#ifdef __TEST_ADV_PAGE_API
void* pVData; #endif
void CProfileSheetMerge::PreparePages(DWORD dwTabFlags, void* pvData) { m_bApplied = FALSE; AddPage(&m_pgConstraints); m_pgConstraints.SetManager(this);
AddPage(&m_pgNetworking); m_pgNetworking.SetManager(this);
AddPage(&m_pgMultilink); m_pgMultilink.SetManager(this);
// Check if this is a remote admin of a win2k machine
m_dwTabFlags = dwTabFlags; if(dwTabFlags & RAS_IAS_PROFILEDLG_SHOW_WIN2K) { AddPage(&m_pgAuthentication2k); m_pgAuthentication2k.SetManager(this); } else { AddPage(&m_pgAuthentication); m_pgAuthentication.SetManager(this); }
AddPage(&m_pgEncryption); m_pgEncryption.SetManager(this);
// Advanced tab
m_pgIASAdv.SetData(ALLOWEDINPROFILE, pvData); AddPage(&m_pgIASAdv); m_pgIASAdv.SetManager(this); #ifdef __TEST_ADV_PAGE_API
pVData = pvData; #endif
m_hrLastError = S_OK; }
CProfileSheetMerge::~CProfileSheetMerge() { }
BEGIN_MESSAGE_MAP(CProfileSheetMerge, CPropertySheet) //{{AFX_MSG_MAP(CProfileSheetMerge)
ON_WM_HELPINFO() ON_WM_CREATE() //}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CProfileSheetMerge message handlers
BOOL CProfileSheetMerge::OnApply() { BOOL bSaved = TRUE; if(!CPageManager::OnApply()) return FALSE;
// for each page this sheet manages, call the OnApply, and then call SetModify to False
if (m_pgAuthentication.GetModified()) m_pgAuthentication.OnApply();
if (m_pgConstraints.GetModified()) m_pgConstraints.OnApply();
if (m_pgEncryption.GetModified()) m_pgEncryption.OnApply();
if (m_pgMultilink.GetModified()) m_pgMultilink.OnApply();
if (m_pgNetworking.GetModified()) m_pgNetworking.OnApply(); if (m_pgIASAdv.GetModified()) m_pgIASAdv.OnApply();
HRESULT hr = S_OK; if(m_bSaveOnApply) hr = m_pProfile->Save();
if(FAILED(hr)) { m_hrLastError = hr; ReportError(hr, IDS_ERR_SAVEPROFILE, NULL); bSaved = FALSE; }
m_bApplied = TRUE;
m_pgAuthentication.OnSaved(bSaved); m_pgConstraints.OnSaved(bSaved); m_pgEncryption.OnSaved(bSaved); m_pgMultilink.OnSaved(bSaved); m_pgNetworking.OnSaved(bSaved); m_pgIASAdv.OnSaved(bSaved);
return bSaved; }
const DWORD g_aHelpIDs___________[]= { ID_APPLY_NOW, 20000600, 0, 0 };
BOOL CProfileSheetMerge::OnHelpInfo(HELPINFO* pHelpInfo) { ::WinHelp ((HWND)pHelpInfo->hItemHandle, AfxGetApp()->m_pszHelpFilePath, HELP_WM_HELP, (DWORD_PTR)(LPVOID)g_aHelpIDs___________); return CPropertySheet::OnHelpInfo(pHelpInfo); }
void CProfileSheetMerge::OnContextMenu(CWnd* pWnd, CPoint point) { ::WinHelp (pWnd->m_hWnd, AfxGetApp()->m_pszHelpFilePath, HELP_CONTEXTMENU, (DWORD_PTR)(LPVOID)g_aHelpIDs___________); }
int CProfileSheetMerge::OnCreate(LPCREATESTRUCT lpCreateStruct) { ModifyStyleEx(0, WS_EX_CONTEXTHELP); if (CPropertySheet::OnCreate(lpCreateStruct) == -1) return -1; return 0; }
BOOL CProfileSheetMerge::OnInitDialog() { BOOL bResult = CPropertySheet::OnInitDialog(); if(CPageManager::GetReadOnly()) GetDlgItem(IDOK)->EnableWindow(FALSE);
#ifdef __TEST_ADV_PAGE_API
HPROPSHEETPAGE hPage = IASCreateProfileAdvancedPage(m_pProfile->m_spIProfile, m_pProfile->m_spIDictionary, ALLOWEDINPROFILE, pVData); if(hPage) PropSheet_InsertPage(m_hWnd, NULL, hPage);
#endif
return bResult; }
|