/*++ Copyright (C) 1997-2001 Microsoft Corporation Module Name: Abstract: History: --*/ // PrefDlg.cpp : implementation file // #include "stdafx.h" #include "WMITest.h" #include "PrefDlg.h" #include "Utils.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CPrefDlg dialog CPrefDlg::CPrefDlg(CWnd* pParent /*=NULL*/) : CDialog(CPrefDlg::IDD, pParent) { //{{AFX_DATA_INIT(CPrefDlg) m_bLoadLast = FALSE; m_bShowSystem = FALSE; m_bShowInherited = FALSE; m_bEnablePrivsOnStartup = FALSE; m_bPrivsEnabled = FALSE; //}}AFX_DATA_INIT m_dwUpdateFlag = WBEM_FLAG_CREATE_OR_UPDATE; m_dwClassUpdateMode = WBEM_FLAG_UPDATE_COMPATIBLE; } void CPrefDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CPrefDlg) DDX_Check(pDX, IDC_LOAD_LAST, m_bLoadLast); DDX_Check(pDX, IDC_SYSTEM_PROPS, m_bShowSystem); DDX_Check(pDX, IDC_SHOW_INHERITED, m_bShowInherited); DDX_Check(pDX, IDC_PRIVS_ON_START, m_bEnablePrivsOnStartup); DDX_Check(pDX, IDC_ENABLE_PRIVS, m_bPrivsEnabled); //}}AFX_DATA_MAP if (!pDX->m_bSaveAndValidate) { DWORD dwID; switch(m_dwUpdateFlag) { case WBEM_FLAG_CREATE_ONLY: dwID = IDC_CREATE; break; case WBEM_FLAG_UPDATE_ONLY: dwID = IDC_UPDATE; break; default: case WBEM_FLAG_CREATE_OR_UPDATE: dwID = IDC_CREATE_OR_UPDATE; break; } CheckRadioButton(IDC_CREATE, IDC_CREATE_OR_UPDATE, dwID); switch(m_dwClassUpdateMode) { case WBEM_FLAG_UPDATE_COMPATIBLE: dwID = IDC_COMPATIBLE; break; case WBEM_FLAG_UPDATE_SAFE_MODE: dwID = IDC_SAFE; break; default: case WBEM_FLAG_UPDATE_FORCE_MODE: dwID = IDC_FORCE; break; } CheckRadioButton(IDC_COMPATIBLE, IDC_FORCE, dwID); if (m_bPrivsEnabled) GetDlgItem(IDC_ENABLE_PRIVS)->EnableWindow(FALSE); } else { switch(GetCheckedRadioButton(IDC_CREATE, IDC_CREATE_OR_UPDATE)) { case IDC_CREATE: m_dwUpdateFlag = WBEM_FLAG_CREATE_ONLY; break; case IDC_UPDATE: m_dwUpdateFlag = WBEM_FLAG_UPDATE_ONLY; break; default: case IDC_CREATE_OR_UPDATE: m_dwUpdateFlag = WBEM_FLAG_CREATE_OR_UPDATE; break; } switch(GetCheckedRadioButton(IDC_COMPATIBLE, IDC_FORCE)) { case IDC_COMPATIBLE: m_dwClassUpdateMode = WBEM_FLAG_UPDATE_COMPATIBLE; break; case IDC_SAFE: m_dwClassUpdateMode = WBEM_FLAG_UPDATE_SAFE_MODE; break; default: case IDC_FORCE: m_dwClassUpdateMode = WBEM_FLAG_UPDATE_FORCE_MODE; break; } } } BEGIN_MESSAGE_MAP(CPrefDlg, CDialog) //{{AFX_MSG_MAP(CPrefDlg) ON_BN_CLICKED(IDC_ENABLE_PRIVS, OnEnablePrivs) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CPrefDlg message handlers void CPrefDlg::OnEnablePrivs() { HRESULT hr = EnableAllPrivileges(TOKEN_PROCESS); if (SUCCEEDED(hr)) GetDlgItem(IDC_ENABLE_PRIVS)->EnableWindow(FALSE); else AfxMessageBox(IDS_ENABLE_PRIVS_FAILED, hr); }