|
|
//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1997-2001.
//
// File: SelAcct.cpp
//
// Contents: Implementation of property page to allow account selection for
// cert management
//
//----------------------------------------------------------------------------
#include "stdafx.h"
#include "SelAcct.h"
#ifdef _DEBUG
#ifndef ALPHA
#define new DEBUG_NEW
#endif
#undef THIS_FILE
static char THIS_FILE[] = __FILE__; #endif
extern HINSTANCE g_hInstance; /////////////////////////////////////////////////////////////////////////////
// CSelectAccountPropPage property page
//IMPLEMENT_DYNCREATE(CSelectAccountPropPage, CAutoDeletePropPage)
CSelectAccountPropPage::CSelectAccountPropPage (const bool bIsWindowsNT) : CAutoDeletePropPage(CSelectAccountPropPage::IDD), m_pdwLocation (0), m_bIsWindowsNT (bIsWindowsNT) { //{{AFX_DATA_INIT(CSelectAccountPropPage)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
CSelectAccountPropPage::~CSelectAccountPropPage() { }
void CSelectAccountPropPage::DoDataExchange(CDataExchange* pDX) { CAutoDeletePropPage::DoDataExchange(pDX); //{{AFX_DATA_MAP(CSelectAccountPropPage)
// NOTE: the ClassWizard will add DDX and DDV calls here
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CSelectAccountPropPage, CAutoDeletePropPage) //{{AFX_MSG_MAP(CSelectAccountPropPage)
ON_BN_CLICKED(IDC_PERSONAL_ACCT, OnPersonalAcct) ON_BN_CLICKED(IDC_SERVICE_ACCT, OnServiceAcct) ON_BN_CLICKED(IDC_MACHINE_ACCT, OnMachineAcct) //}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CSelectAccountPropPage message handlers
BOOL CSelectAccountPropPage::OnInitDialog() { AfxSetResourceHandle (g_hInstance); ASSERT (m_pdwLocation); if ( m_pdwLocation ) *m_pdwLocation = CERT_SYSTEM_STORE_CURRENT_USER; CAutoDeletePropPage::OnInitDialog(); GetDlgItem (IDC_PERSONAL_ACCT)->SendMessage (BM_SETCHECK, BST_CHECKED, 0);
if ( !m_bIsWindowsNT ) { GetDlgItem (IDC_SERVICE_ACCT)->EnableWindow (FALSE); } return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CSelectAccountPropPage::AssignLocationPtr(DWORD * pdwLocation) { m_pdwLocation = pdwLocation; }
/////////////////////////////////////////////////////////////////////////////
// MyPropertyPage message handlers
void CSelectAccountPropPage::OnPersonalAcct() { ASSERT (m_pdwLocation); if ( m_pdwLocation ) { *m_pdwLocation = CERT_SYSTEM_STORE_CURRENT_USER; GetParent ()->SendMessage (PSM_SETWIZBUTTONS, 0, PSWIZB_FINISH); } }
void CSelectAccountPropPage::OnServiceAcct() { ASSERT (m_pdwLocation); if ( m_pdwLocation ) { *m_pdwLocation = CERT_SYSTEM_STORE_SERVICES; GetParent ()->SendMessage (PSM_SETWIZBUTTONS, 0, PSWIZB_NEXT); } }
void CSelectAccountPropPage::OnMachineAcct() { ASSERT (m_pdwLocation); if ( m_pdwLocation ) { *m_pdwLocation = CERT_SYSTEM_STORE_LOCAL_MACHINE; GetParent ()->SendMessage (PSM_SETWIZBUTTONS, 0, PSWIZB_NEXT); } }
BOOL CSelectAccountPropPage::OnSetActive() { BOOL bResult = CAutoDeletePropPage::OnSetActive(); ASSERT (bResult);
if ( bResult ) { if ( m_bIsWindowsNT ) { if ( GetDlgItem (IDC_PERSONAL_ACCT)->SendMessage (BM_GETCHECK, BST_CHECKED, 0) == BST_CHECKED ) { GetParent ()->PostMessage (PSM_SETWIZBUTTONS, 0, PSWIZB_FINISH); } else { GetParent ()->PostMessage (PSM_SETWIZBUTTONS, 0, PSWIZB_NEXT); } } else { // If Windows 95 or Windows 98, we only allow local machine
GetParent ()->PostMessage (PSM_SETWIZBUTTONS, 0, PSWIZB_FINISH); } } return bResult; }
|