| Index: base/registry.h
|
| diff --git a/base/registry.h b/base/registry.h
|
| index 757e409360372949400035a67a4563010a4decb9..0babbc82e4ac4fae938adfd08dc76ca4c2377571 100644
|
| --- a/base/registry.h
|
| +++ b/base/registry.h
|
| @@ -1,10 +1,10 @@
|
| -// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
|
| +// Copyright (c) 2010 The Chromium Authors. All rights reserved.
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
| // All Rights Reserved.
|
|
|
| -#ifndef BASE_REGISTRY_H__
|
| -#define BASE_REGISTRY_H__
|
| +#ifndef BASE_REGISTRY_H_
|
| +#define BASE_REGISTRY_H_
|
|
|
| #include <windows.h>
|
| #include <tchar.h>
|
| @@ -27,9 +27,8 @@
|
| class RegKey {
|
| public:
|
| RegKey(HKEY rootkey = NULL, CTP subkey = NULL, REGSAM access = KEY_READ);
|
| - // start there
|
|
|
| - ~RegKey() { this->Close(); }
|
| + ~RegKey() { Close(); }
|
|
|
| bool Create(HKEY rootkey, CTP subkey, REGSAM access = KEY_READ);
|
|
|
| @@ -38,7 +37,7 @@ class RegKey {
|
|
|
| bool Open(HKEY rootkey, CTP subkey, REGSAM access = KEY_READ);
|
|
|
| - // Create a subkey (or open if exists)
|
| + // Create a subkey (or open if exists).
|
| bool CreateKey(CTP name, REGSAM access);
|
|
|
| // Open a subkey
|
| @@ -47,44 +46,43 @@ class RegKey {
|
| // all done, eh?
|
| void Close();
|
|
|
| - DWORD ValueCount(); // Count of the number of value extant
|
| + // Count of the number of value extant.
|
| + DWORD ValueCount();
|
|
|
| - bool ReadName(int index, tstr* name); // Determine the Nth value's name
|
| + // Determine the Nth value's name.
|
| + bool ReadName(int index, tstr* name);
|
|
|
| - // True while the key is valid
|
| - bool Valid() const { return NULL != key_; }
|
| + // True while the key is valid.
|
| + bool Valid() const { return key_ != NULL; }
|
|
|
| - // Kill key and everything that liveth below it; please be careful out there
|
| + // Kill key and everything that liveth below it; please be careful out there.
|
| bool DeleteKey(CTP name);
|
|
|
| - // Delete a single value within the key
|
| + // Delete a single value within the key.
|
| bool DeleteValue(CTP name);
|
|
|
| bool ValueExists(CTP name);
|
| - bool ReadValue(CTP name, void * data, DWORD * dsize, DWORD * dtype = NULL);
|
| - bool ReadValue(CTP name, tstr * value);
|
| - bool ReadValueDW(CTP name, DWORD * value); // Named to differ from tstr*
|
| + bool ReadValue(CTP name, void* data, DWORD* dsize, DWORD* dtype = NULL);
|
| + bool ReadValue(CTP name, tstr* value);
|
| + bool ReadValueDW(CTP name, DWORD* value); // Named to differ from tstr*
|
|
|
| - bool WriteValue(CTP name, const void * data, DWORD dsize,
|
| + bool WriteValue(CTP name, const void* data, DWORD dsize,
|
| DWORD dtype = REG_BINARY);
|
| bool WriteValue(CTP name, CTP value);
|
| bool WriteValue(CTP name, DWORD value);
|
|
|
| - // StartWatching()
|
| - // Start watching the key to see if any of its values have changed.
|
| - // The key must have been opened with the KEY_NOTIFY access
|
| - // privelege.
|
| + // Start watching the key to see if any of its values have changed.
|
| + // The key must have been opened with the KEY_NOTIFY access
|
| + // privelege.
|
| bool StartWatching();
|
|
|
| - // HasChanged()
|
| - // If StartWatching hasn't been called, always returns false.
|
| - // Otherwise, returns true if anything under the key has changed.
|
| - // This can't be const because the watch_event_ may be refreshed.
|
| + // If StartWatching hasn't been called, always returns false.
|
| + // Otherwise, returns true if anything under the key has changed.
|
| + // This can't be const because the |watch_event_| may be refreshed.
|
| bool HasChanged();
|
|
|
| - // StopWatching()
|
| - // Will automatically be called by destructor if not manually called
|
| - // beforehand. Returns true if it was watching, false otherwise.
|
| + // Will automatically be called by destructor if not manually called
|
| + // beforehand. Returns true if it was watching, false otherwise.
|
| bool StopWatching();
|
|
|
| inline bool IsWatching() const { return watch_event_ != 0; }
|
| @@ -92,75 +90,29 @@ class RegKey {
|
| HKEY Handle() const { return key_; }
|
|
|
| private:
|
| - HKEY key_; // the registry key being iterated
|
| + HKEY key_; // The registry key being iterated.
|
| HANDLE watch_event_;
|
| };
|
|
|
| -
|
| -// Standalone registry functions -- sorta deprecated, they now map to
|
| -// using RegKey
|
| -
|
| -
|
| -// Add a raw data to the registry -- you can pass NULL for the data if
|
| -// you just want to create a key
|
| -inline bool AddToRegistry(HKEY root_key, CTP key, CTP value_name,
|
| - void const * data, DWORD dsize,
|
| - DWORD dtype = REG_BINARY) {
|
| - return RegKey(root_key, key, KEY_WRITE).WriteValue(value_name, data, dsize,
|
| - dtype);
|
| -}
|
| -
|
| -// Convenience routine to add a string value to the registry
|
| -inline bool AddToRegistry(HKEY root_key, CTP key, CTP value_name, CTP value) {
|
| - return AddToRegistry(root_key, key, value_name, value,
|
| - sizeof(*value) * (lstrlen(value) + 1), REG_SZ);
|
| -}
|
| -
|
| -// Read raw data from the registry -- pass something as the dtype
|
| -// parameter if you care to learn what type the value was stored as
|
| -inline bool ReadFromRegistry(HKEY root_key, CTP key, CTP value_name,
|
| - void* data, DWORD* dsize, DWORD* dtype = NULL) {
|
| - return RegKey(root_key, key).ReadValue(value_name, data, dsize, dtype);
|
| -}
|
| -
|
| -
|
| -// Delete a value or a key from the registry
|
| -inline bool DeleteFromRegistry(HKEY root_key, CTP subkey, CTP value_name) {
|
| - if (value_name)
|
| - return ERROR_SUCCESS == ::SHDeleteValue(root_key, subkey, value_name);
|
| - else
|
| - return ERROR_SUCCESS == ::SHDeleteKey(root_key, subkey);
|
| -}
|
| -
|
| -
|
| -
|
| -// delete a key and all subkeys from the registry
|
| -inline bool DeleteKeyFromRegistry(HKEY root_key, CTP key_path, CTP key_name) {
|
| - RegKey key;
|
| - return key.Open(root_key, key_path, KEY_WRITE)
|
| - && key.DeleteKey(key_name);
|
| -}
|
| -
|
| -
|
| // Iterates the entries found in a particular folder on the registry.
|
| // For this application I happen to know I wont need data size larger
|
| // than MAX_PATH, but in real life this wouldn't neccessarily be
|
| // adequate.
|
| class RegistryValueIterator {
|
| public:
|
| - // Specify a key in construction
|
| + // Specify a key in construction.
|
| RegistryValueIterator(HKEY root_key, LPCTSTR folder_key);
|
|
|
| ~RegistryValueIterator();
|
|
|
| - DWORD ValueCount() const; // count of the number of subkeys extant
|
| + DWORD ValueCount() const; // Count of the number of subkeys extant.
|
|
|
| - bool Valid() const; // true while the iterator is valid
|
| + bool Valid() const; // True while the iterator is valid.
|
|
|
| - void operator++(); // advance to the next entry in the folder
|
| + void operator++(); // Advance to the next entry in the folder.
|
|
|
| // The pointers returned by these functions are statics owned by the
|
| - // Name and Value functions
|
| + // Name and Value functions.
|
| CTP Name() const { return name_; }
|
| CTP Value() const { return value_; }
|
| DWORD ValueSize() const { return value_size_; }
|
| @@ -169,12 +121,12 @@ class RegistryValueIterator {
|
| int Index() const { return index_; }
|
|
|
| private:
|
| - bool Read(); // read in the current values
|
| + bool Read(); // Read in the current values.
|
|
|
| - HKEY key_; // the registry key being iterated
|
| - int index_; // current index of the iteration
|
| + HKEY key_; // The registry key being iterated.
|
| + int index_; // Current index of the iteration.
|
|
|
| - // Current values
|
| + // Current values.
|
| TCHAR name_[MAX_PATH];
|
| TCHAR value_[MAX_PATH];
|
| DWORD value_size_;
|
| @@ -184,29 +136,29 @@ class RegistryValueIterator {
|
|
|
| class RegistryKeyIterator {
|
| public:
|
| - // Specify a parent key in construction
|
| + // Specify a parent key in construction.
|
| RegistryKeyIterator(HKEY root_key, LPCTSTR folder_key);
|
|
|
| ~RegistryKeyIterator();
|
|
|
| - DWORD SubkeyCount() const; // count of the number of subkeys extant
|
| + DWORD SubkeyCount() const; // Count of the number of subkeys extant.
|
|
|
| - bool Valid() const; // true while the iterator is valid
|
| + bool Valid() const; // True while the iterator is valid.
|
|
|
| - void operator++(); // advance to the next entry in the folder
|
| + void operator++(); // Advance to the next entry in the folder.
|
|
|
| - // The pointer returned by Name() is a static owned by the function
|
| + // The pointer returned by Name() is a static owned by the function.
|
| CTP Name() const { return name_; }
|
|
|
| int Index() const { return index_; }
|
|
|
| private:
|
| - bool Read(); // read in the current values
|
| + bool Read(); // Read in the current values.
|
|
|
| - HKEY key_; // the registry key being iterated
|
| - int index_; // current index of the iteration
|
| + HKEY key_; // The registry key being iterated.
|
| + int index_; // Current index of the iteration.
|
|
|
| - // Current values
|
| + // Current values.
|
| TCHAR name_[MAX_PATH];
|
| };
|
|
|
| @@ -222,4 +174,4 @@ bool UnregisterCOMServer(const tchar* guid);
|
| #undef CTP
|
| #undef tstr
|
|
|
| -#endif // BASE_REGISTRY_H__
|
| +#endif // BASE_REGISTRY_H_
|
|
|