1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef CHROME_BROWSER_POLICY_CONFIGURATION_POLICY_PROVIDER_DELEGATE_WIN_H_ 6 #define CHROME_BROWSER_POLICY_CONFIGURATION_POLICY_PROVIDER_DELEGATE_WIN_H_ 7 #pragma once 8 9 #include "chrome/browser/policy/asynchronous_policy_provider.h" 10 11 namespace policy { 12 13 class ConfigurationPolicyProviderDelegateWin 14 : public AsynchronousPolicyProvider::Delegate { 15 public: 16 ConfigurationPolicyProviderDelegateWin( 17 const ConfigurationPolicyProvider::PolicyDefinitionList* 18 policy_definition_list); 19 virtual ~ConfigurationPolicyProviderDelegateWin() {} 20 21 // AsynchronousPolicyProvider::Delegate overrides: 22 virtual DictionaryValue* Load(); 23 24 private: 25 // Methods to perform type-specific policy lookups in the registry. 26 // HKLM is checked first, then HKCU. 27 28 // Reads a string registry value |name| at the specified |key| and puts the 29 // resulting string in |result|. 30 bool GetRegistryPolicyString(const string16& name, string16* result) const; 31 // Gets a list value contained under |key| one level below the policy root. 32 bool GetRegistryPolicyStringList(const string16& key, 33 ListValue* result) const; 34 bool GetRegistryPolicyBoolean(const string16& value_name, 35 bool* result) const; 36 bool GetRegistryPolicyInteger(const string16& value_name, 37 uint32* result) const; 38 39 const ConfigurationPolicyProvider::PolicyDefinitionList* 40 policy_definition_list_; 41 42 DISALLOW_COPY_AND_ASSIGN(ConfigurationPolicyProviderDelegateWin); 43 }; 44 45 } // namespace policy 46 47 #endif // CHROME_BROWSER_POLICY_CONFIGURATION_POLICY_PROVIDER_DELEGATE_WIN_H_ 48