1*48a54d36SAndroid Build Coastguard Worker /* -*- Mode: C; tab-width: 4 -*-
2*48a54d36SAndroid Build Coastguard Worker *
3*48a54d36SAndroid Build Coastguard Worker * Copyright (c) 2002-2004 Apple Computer, Inc. All rights reserved.
4*48a54d36SAndroid Build Coastguard Worker *
5*48a54d36SAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License");
6*48a54d36SAndroid Build Coastguard Worker * you may not use this file except in compliance with the License.
7*48a54d36SAndroid Build Coastguard Worker * You may obtain a copy of the License at
8*48a54d36SAndroid Build Coastguard Worker *
9*48a54d36SAndroid Build Coastguard Worker * http://www.apache.org/licenses/LICENSE-2.0
10*48a54d36SAndroid Build Coastguard Worker *
11*48a54d36SAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software
12*48a54d36SAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS,
13*48a54d36SAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14*48a54d36SAndroid Build Coastguard Worker * See the License for the specific language governing permissions and
15*48a54d36SAndroid Build Coastguard Worker * limitations under the License.
16*48a54d36SAndroid Build Coastguard Worker */
17*48a54d36SAndroid Build Coastguard Worker
18*48a54d36SAndroid Build Coastguard Worker #include "FourthPage.h"
19*48a54d36SAndroid Build Coastguard Worker #include "resource.h"
20*48a54d36SAndroid Build Coastguard Worker
21*48a54d36SAndroid Build Coastguard Worker #include "ConfigPropertySheet.h"
22*48a54d36SAndroid Build Coastguard Worker #include "SharedSecret.h"
23*48a54d36SAndroid Build Coastguard Worker
24*48a54d36SAndroid Build Coastguard Worker #include <WinServices.h>
25*48a54d36SAndroid Build Coastguard Worker
26*48a54d36SAndroid Build Coastguard Worker #define MAX_KEY_LENGTH 255
27*48a54d36SAndroid Build Coastguard Worker
28*48a54d36SAndroid Build Coastguard Worker
IMPLEMENT_DYNCREATE(CFourthPage,CPropertyPage)29*48a54d36SAndroid Build Coastguard Worker IMPLEMENT_DYNCREATE(CFourthPage, CPropertyPage)
30*48a54d36SAndroid Build Coastguard Worker
31*48a54d36SAndroid Build Coastguard Worker
32*48a54d36SAndroid Build Coastguard Worker //---------------------------------------------------------------------------------------------------------------------------
33*48a54d36SAndroid Build Coastguard Worker // CFourthPage::CFourthPage
34*48a54d36SAndroid Build Coastguard Worker //---------------------------------------------------------------------------------------------------------------------------
35*48a54d36SAndroid Build Coastguard Worker
36*48a54d36SAndroid Build Coastguard Worker CFourthPage::CFourthPage()
37*48a54d36SAndroid Build Coastguard Worker :
38*48a54d36SAndroid Build Coastguard Worker CPropertyPage(CFourthPage::IDD)
39*48a54d36SAndroid Build Coastguard Worker {
40*48a54d36SAndroid Build Coastguard Worker //{{AFX_DATA_INIT(CFourthPage)
41*48a54d36SAndroid Build Coastguard Worker //}}AFX_DATA_INIT
42*48a54d36SAndroid Build Coastguard Worker }
43*48a54d36SAndroid Build Coastguard Worker
44*48a54d36SAndroid Build Coastguard Worker
45*48a54d36SAndroid Build Coastguard Worker //---------------------------------------------------------------------------------------------------------------------------
46*48a54d36SAndroid Build Coastguard Worker // CFourthPage::~CFourthPage
47*48a54d36SAndroid Build Coastguard Worker //---------------------------------------------------------------------------------------------------------------------------
48*48a54d36SAndroid Build Coastguard Worker
~CFourthPage()49*48a54d36SAndroid Build Coastguard Worker CFourthPage::~CFourthPage()
50*48a54d36SAndroid Build Coastguard Worker {
51*48a54d36SAndroid Build Coastguard Worker }
52*48a54d36SAndroid Build Coastguard Worker
53*48a54d36SAndroid Build Coastguard Worker
54*48a54d36SAndroid Build Coastguard Worker //---------------------------------------------------------------------------------------------------------------------------
55*48a54d36SAndroid Build Coastguard Worker // CFourthPage::DoDataExchange
56*48a54d36SAndroid Build Coastguard Worker //---------------------------------------------------------------------------------------------------------------------------
57*48a54d36SAndroid Build Coastguard Worker
DoDataExchange(CDataExchange * pDX)58*48a54d36SAndroid Build Coastguard Worker void CFourthPage::DoDataExchange(CDataExchange* pDX)
59*48a54d36SAndroid Build Coastguard Worker {
60*48a54d36SAndroid Build Coastguard Worker CPropertyPage::DoDataExchange(pDX);
61*48a54d36SAndroid Build Coastguard Worker //{{AFX_DATA_MAP(CFourthPage)
62*48a54d36SAndroid Build Coastguard Worker //}}AFX_DATA_MAP
63*48a54d36SAndroid Build Coastguard Worker DDX_Control(pDX, IDC_POWER_MANAGEMENT, m_checkBox);
64*48a54d36SAndroid Build Coastguard Worker }
65*48a54d36SAndroid Build Coastguard Worker
BEGIN_MESSAGE_MAP(CFourthPage,CPropertyPage)66*48a54d36SAndroid Build Coastguard Worker BEGIN_MESSAGE_MAP(CFourthPage, CPropertyPage)
67*48a54d36SAndroid Build Coastguard Worker //{{AFX_MSG_MAP(CFourthPage)
68*48a54d36SAndroid Build Coastguard Worker //}}AFX_MSG_MAP
69*48a54d36SAndroid Build Coastguard Worker
70*48a54d36SAndroid Build Coastguard Worker ON_BN_CLICKED(IDC_POWER_MANAGEMENT, &CFourthPage::OnBnClickedPowerManagement)
71*48a54d36SAndroid Build Coastguard Worker
72*48a54d36SAndroid Build Coastguard Worker END_MESSAGE_MAP()
73*48a54d36SAndroid Build Coastguard Worker
74*48a54d36SAndroid Build Coastguard Worker
75*48a54d36SAndroid Build Coastguard Worker //---------------------------------------------------------------------------------------------------------------------------
76*48a54d36SAndroid Build Coastguard Worker // CFourthPage::SetModified
77*48a54d36SAndroid Build Coastguard Worker //---------------------------------------------------------------------------------------------------------------------------
78*48a54d36SAndroid Build Coastguard Worker
79*48a54d36SAndroid Build Coastguard Worker void CFourthPage::SetModified( BOOL bChanged )
80*48a54d36SAndroid Build Coastguard Worker {
81*48a54d36SAndroid Build Coastguard Worker m_modified = bChanged;
82*48a54d36SAndroid Build Coastguard Worker
83*48a54d36SAndroid Build Coastguard Worker CPropertyPage::SetModified( bChanged );
84*48a54d36SAndroid Build Coastguard Worker }
85*48a54d36SAndroid Build Coastguard Worker
86*48a54d36SAndroid Build Coastguard Worker
87*48a54d36SAndroid Build Coastguard Worker //---------------------------------------------------------------------------------------------------------------------------
88*48a54d36SAndroid Build Coastguard Worker // CFourthPage::OnSetActive
89*48a54d36SAndroid Build Coastguard Worker //---------------------------------------------------------------------------------------------------------------------------
90*48a54d36SAndroid Build Coastguard Worker
91*48a54d36SAndroid Build Coastguard Worker BOOL
OnSetActive()92*48a54d36SAndroid Build Coastguard Worker CFourthPage::OnSetActive()
93*48a54d36SAndroid Build Coastguard Worker {
94*48a54d36SAndroid Build Coastguard Worker CConfigPropertySheet * psheet;
95*48a54d36SAndroid Build Coastguard Worker HKEY key = NULL;
96*48a54d36SAndroid Build Coastguard Worker DWORD dwSize;
97*48a54d36SAndroid Build Coastguard Worker DWORD enabled;
98*48a54d36SAndroid Build Coastguard Worker DWORD err;
99*48a54d36SAndroid Build Coastguard Worker BOOL b = CPropertyPage::OnSetActive();
100*48a54d36SAndroid Build Coastguard Worker
101*48a54d36SAndroid Build Coastguard Worker psheet = reinterpret_cast<CConfigPropertySheet*>(GetParent());
102*48a54d36SAndroid Build Coastguard Worker require_quiet( psheet, exit );
103*48a54d36SAndroid Build Coastguard Worker
104*48a54d36SAndroid Build Coastguard Worker m_checkBox.SetCheck( 0 );
105*48a54d36SAndroid Build Coastguard Worker
106*48a54d36SAndroid Build Coastguard Worker // Now populate the browse domain box
107*48a54d36SAndroid Build Coastguard Worker
108*48a54d36SAndroid Build Coastguard Worker err = RegCreateKeyEx( HKEY_LOCAL_MACHINE, kServiceParametersNode L"\\Power Management", 0,
109*48a54d36SAndroid Build Coastguard Worker NULL, REG_OPTION_NON_VOLATILE, KEY_READ|KEY_WRITE|KEY_WOW64_32KEY, NULL, &key, NULL );
110*48a54d36SAndroid Build Coastguard Worker require_noerr( err, exit );
111*48a54d36SAndroid Build Coastguard Worker
112*48a54d36SAndroid Build Coastguard Worker dwSize = sizeof( DWORD );
113*48a54d36SAndroid Build Coastguard Worker err = RegQueryValueEx( key, L"Enabled", NULL, NULL, (LPBYTE) &enabled, &dwSize );
114*48a54d36SAndroid Build Coastguard Worker require_noerr( err, exit );
115*48a54d36SAndroid Build Coastguard Worker
116*48a54d36SAndroid Build Coastguard Worker m_checkBox.SetCheck( enabled );
117*48a54d36SAndroid Build Coastguard Worker
118*48a54d36SAndroid Build Coastguard Worker exit:
119*48a54d36SAndroid Build Coastguard Worker
120*48a54d36SAndroid Build Coastguard Worker if ( key )
121*48a54d36SAndroid Build Coastguard Worker {
122*48a54d36SAndroid Build Coastguard Worker RegCloseKey( key );
123*48a54d36SAndroid Build Coastguard Worker }
124*48a54d36SAndroid Build Coastguard Worker
125*48a54d36SAndroid Build Coastguard Worker return b;
126*48a54d36SAndroid Build Coastguard Worker }
127*48a54d36SAndroid Build Coastguard Worker
128*48a54d36SAndroid Build Coastguard Worker
129*48a54d36SAndroid Build Coastguard Worker //---------------------------------------------------------------------------------------------------------------------------
130*48a54d36SAndroid Build Coastguard Worker // CFourthPage::OnOK
131*48a54d36SAndroid Build Coastguard Worker //---------------------------------------------------------------------------------------------------------------------------
132*48a54d36SAndroid Build Coastguard Worker
133*48a54d36SAndroid Build Coastguard Worker void
OnOK()134*48a54d36SAndroid Build Coastguard Worker CFourthPage::OnOK()
135*48a54d36SAndroid Build Coastguard Worker {
136*48a54d36SAndroid Build Coastguard Worker if ( m_modified )
137*48a54d36SAndroid Build Coastguard Worker {
138*48a54d36SAndroid Build Coastguard Worker Commit();
139*48a54d36SAndroid Build Coastguard Worker }
140*48a54d36SAndroid Build Coastguard Worker }
141*48a54d36SAndroid Build Coastguard Worker
142*48a54d36SAndroid Build Coastguard Worker
143*48a54d36SAndroid Build Coastguard Worker
144*48a54d36SAndroid Build Coastguard Worker //---------------------------------------------------------------------------------------------------------------------------
145*48a54d36SAndroid Build Coastguard Worker // CFourthPage::Commit
146*48a54d36SAndroid Build Coastguard Worker //---------------------------------------------------------------------------------------------------------------------------
147*48a54d36SAndroid Build Coastguard Worker
148*48a54d36SAndroid Build Coastguard Worker void
Commit()149*48a54d36SAndroid Build Coastguard Worker CFourthPage::Commit()
150*48a54d36SAndroid Build Coastguard Worker {
151*48a54d36SAndroid Build Coastguard Worker HKEY key = NULL;
152*48a54d36SAndroid Build Coastguard Worker DWORD enabled;
153*48a54d36SAndroid Build Coastguard Worker DWORD err;
154*48a54d36SAndroid Build Coastguard Worker
155*48a54d36SAndroid Build Coastguard Worker err = RegCreateKeyEx( HKEY_LOCAL_MACHINE, kServiceParametersNode L"\\Power Management", 0,
156*48a54d36SAndroid Build Coastguard Worker NULL, REG_OPTION_NON_VOLATILE, KEY_READ|KEY_WRITE|KEY_WOW64_32KEY, NULL, &key, NULL );
157*48a54d36SAndroid Build Coastguard Worker require_noerr( err, exit );
158*48a54d36SAndroid Build Coastguard Worker
159*48a54d36SAndroid Build Coastguard Worker enabled = m_checkBox.GetCheck();
160*48a54d36SAndroid Build Coastguard Worker err = RegSetValueEx( key, L"Enabled", NULL, REG_DWORD, (LPBYTE) &enabled, sizeof( enabled ) );
161*48a54d36SAndroid Build Coastguard Worker require_noerr( err, exit );
162*48a54d36SAndroid Build Coastguard Worker
163*48a54d36SAndroid Build Coastguard Worker exit:
164*48a54d36SAndroid Build Coastguard Worker
165*48a54d36SAndroid Build Coastguard Worker if ( key )
166*48a54d36SAndroid Build Coastguard Worker {
167*48a54d36SAndroid Build Coastguard Worker RegCloseKey( key );
168*48a54d36SAndroid Build Coastguard Worker }
169*48a54d36SAndroid Build Coastguard Worker }
170*48a54d36SAndroid Build Coastguard Worker
171*48a54d36SAndroid Build Coastguard Worker
172*48a54d36SAndroid Build Coastguard Worker //---------------------------------------------------------------------------------------------------------------------------
173*48a54d36SAndroid Build Coastguard Worker // CFourthPage::OnBnClickedRemoveBrowseDomain
174*48a54d36SAndroid Build Coastguard Worker //---------------------------------------------------------------------------------------------------------------------------
175*48a54d36SAndroid Build Coastguard Worker
176*48a54d36SAndroid Build Coastguard Worker
177*48a54d36SAndroid Build Coastguard Worker
OnBnClickedPowerManagement()178*48a54d36SAndroid Build Coastguard Worker void CFourthPage::OnBnClickedPowerManagement()
179*48a54d36SAndroid Build Coastguard Worker
180*48a54d36SAndroid Build Coastguard Worker {
181*48a54d36SAndroid Build Coastguard Worker
182*48a54d36SAndroid Build Coastguard Worker char buf[ 256 ];
183*48a54d36SAndroid Build Coastguard Worker
184*48a54d36SAndroid Build Coastguard Worker
185*48a54d36SAndroid Build Coastguard Worker
186*48a54d36SAndroid Build Coastguard Worker sprintf( buf, "check box: %d", m_checkBox.GetCheck() );
187*48a54d36SAndroid Build Coastguard Worker
188*48a54d36SAndroid Build Coastguard Worker OutputDebugStringA( buf );
189*48a54d36SAndroid Build Coastguard Worker
190*48a54d36SAndroid Build Coastguard Worker // TODO: Add your control notification handler code here
191*48a54d36SAndroid Build Coastguard Worker
192*48a54d36SAndroid Build Coastguard Worker
193*48a54d36SAndroid Build Coastguard Worker
194*48a54d36SAndroid Build Coastguard Worker SetModified( TRUE );
195*48a54d36SAndroid Build Coastguard Worker
196*48a54d36SAndroid Build Coastguard Worker }
197*48a54d36SAndroid Build Coastguard Worker
198