]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/wx/msw/registry.h
Move code removing "-psn_xxx" command line arguments to common code.
[wxWidgets.git] / interface / wx / msw / registry.h
index d1c83ff48e899c2c5c7ee0f09a82af55a65855cb..915adfdf63b237b8de03eb7fe956d870c559613f 100644 (file)
@@ -2,8 +2,7 @@
 // Name:        msw/registry.h
 // Purpose:     interface of wxRegKey
 // Author:      wxWidgets team
 // Name:        msw/registry.h
 // Purpose:     interface of wxRegKey
 // Author:      wxWidgets team
-// RCS-ID:      $Id$
-// Licence:     wxWindows license
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 /**
 /////////////////////////////////////////////////////////////////////////////
 
 /**
 
     @onlyfor{wxmsw}
 
 
     @onlyfor{wxmsw}
 
-    @library{wxbase}
-    @category{misc}
-
     @b Example:
 
     @code
     @b Example:
 
     @code
-    wxRegKey *key = new wxRegKey("HKEY_LOCAL_MACHINE\\Software\\MyKey");
+    // This assume that the key already exists, use HasSubKey() to check
+    // for the key existence if necessary.
+    wxRegKey key(wxRegKey::HKLM, "Software\\MyKey");
 
 
-    // Create the key if it does not exist.
-    if( !key->Exists() )
-        key->Create();
-
-    // Create a new value "MYVALUE" and set it to 12.
-    key->SetValue("MYVALUE", 12);
+    // Create a new value "MyValue" and set it to 12.
+    key.SetValue("MyValue", 12);
 
     // Read the value back.
     long value;
 
     // Read the value back.
     long value;
-    key->QueryValue("MYVALUE", &value);
+    key.QueryValue("MyValue", &value);
     wxMessageBox(wxString::Format("%d", value), "Registry Value", wxOK);
 
     // Get the number of subkeys and enumerate them.
     size_t subkeys;
     wxMessageBox(wxString::Format("%d", value), "Registry Value", wxOK);
 
     // Get the number of subkeys and enumerate them.
     size_t subkeys;
-    key->GetKeyInfo(&subkeys, NULL, NULL, NULL);
+    key.GetKeyInfo(&subkeys, NULL, NULL, NULL);
 
     wxString key_name;
 
     wxString key_name;
-    key->GetFirstKey(key_name, 1);
+    key.GetFirstKey(key_name, 1);
     for(int i = 0; i < subkeys; i++)
     {
         wxMessageBox(key_name, "Subkey Name", wxOK);
     for(int i = 0; i < subkeys; i++)
     {
         wxMessageBox(key_name, "Subkey Name", wxOK);
-        key->GetNextKey(key_name, 1);
+        key.GetNextKey(key_name, 1);
     }
     @endcode
     }
     @endcode
+
+
+    @library{wxbase}
+    @category{cfg}
 */
 class wxRegKey
 {
 public:
     /**
         Default constructor, initializes to @c HKEY_CLASSES_ROOT.
 */
 class wxRegKey
 {
 public:
     /**
         Default constructor, initializes to @c HKEY_CLASSES_ROOT.
+
+        The @a viewMode parameter is new since wxWidgets 2.9.2.
     */
     */
-    wxRegKey();
+    wxRegKey(WOW64ViewMode viewMode = WOW64ViewMode_Default);
     /**
         The constructor to set the full name of the key.
     /**
         The constructor to set the full name of the key.
+
+        The @a viewMode parameter is new since wxWidgets 2.9.2.
     */
     */
-    wxRegKey(const wxString& strKey);
+    wxRegKey(const wxString& strKey,
+        WOW64ViewMode viewMode = WOW64ViewMode_Default);
     /**
     /**
-        The constructor to set the full name of the key using one of the 
+        The constructor to set the full name of the key using one of the
         standard keys, that is, HKCR, HKCU, HKLM, HKUSR, HKPD, HKCC or HKDD.
         standard keys, that is, HKCR, HKCU, HKLM, HKUSR, HKPD, HKCC or HKDD.
+        The @a viewMode parameter is new since wxWidgets 2.9.2.
     */
     */
-    wxRegKey(StdKey keyParent, const wxString& strKey);
+    wxRegKey(StdKey keyParent, const wxString& strKey,
+        WOW64ViewMode viewMode = WOW64ViewMode_Default);
     /**
     /**
-        The constructor to set the full name of the key under a previously created
-        parent.
+        The constructor to set the full name of the key under a previously
+        created parent. The registry view is inherited from the parent.
     */
     wxRegKey(const wxRegKey& keyParent, const wxString& strKey);
 
     */
     wxRegKey(const wxRegKey& keyParent, const wxString& strKey);
 
@@ -96,7 +101,7 @@ public:
         Write ///< Read and Write
     };
 
         Write ///< Read and Write
     };
 
-    /** 
+    /**
         The standard registry key enumerator.
     */
     enum StdKey
         The standard registry key enumerator.
     */
     enum StdKey
@@ -128,7 +133,34 @@ public:
     Type_Multi_String,        ///< Multiple Unicode strings
     Type_Resource_list,       ///< Resource list in the resource map
     Type_Full_resource_descriptor,  ///< Resource list in the hardware description
     Type_Multi_String,        ///< Multiple Unicode strings
     Type_Resource_list,       ///< Resource list in the resource map
     Type_Full_resource_descriptor,  ///< Resource list in the hardware description
-    Type_Resource_requirements_list ///< 
+    Type_Resource_requirements_list ///<
+    };
+
+    /**
+        Used to determine how the registry will be viewed, either as
+        32-bit or 64-bit.
+
+        @since 2.9.2
+    */
+    enum WOW64ViewMode
+    {
+        /**
+            Uses 32-bit registry for 32-bit applications and
+            64-bit registry for 64-bit ones.
+        */
+        WOW64ViewMode_Default,
+
+        /**
+            Can be used in 64-bit apps to access the 32-bit registry,
+            has no effect (i.e. treated as default) in 32-bit apps.
+        */
+        WOW64ViewMode_32,
+
+        /**
+            Can be used in 32-bit apps to access the 64-bit registry,
+            has no effect (i.e. treated as default) in 64-bit apps.
+        */
+        WOW64ViewMode_64
     };
 
     /**
     };
 
     /**
@@ -146,12 +178,12 @@ public:
         using the key. Returns @true if successful.
     */
     bool Copy(wxRegKey& keyDst);
         using the key. Returns @true if successful.
     */
     bool Copy(wxRegKey& keyDst);
-    
+
     /**
         Copy the value to another key, possibly changing its name. By default
         it will remain the same. Returns @true if successful.
     */
     /**
         Copy the value to another key, possibly changing its name. By default
         it will remain the same. Returns @true if successful.
     */
-    bool CopyValue(const wxString& szValue, wxRegKey& keyDst,    
+    bool CopyValue(const wxString& szValue, wxRegKey& keyDst,
                   const wxString& szNewName = wxEmptyString);
     /**
         Creates the key. Will fail if the key already exists and @a bOkIfExists
                   const wxString& szNewName = wxEmptyString);
     /**
         Creates the key. Will fail if the key already exists and @a bOkIfExists
@@ -170,7 +202,7 @@ public:
     void DeleteSelf();
 
     /**
     void DeleteSelf();
 
     /**
-        Deletes the named value or use an empty string argument to remove the 
+        Deletes the named value or use an empty string argument to remove the
         default value of the key.
     */
     void DeleteValue(const wxString& szKey);
         default value of the key.
     */
     void DeleteValue(const wxString& szKey);
@@ -192,7 +224,7 @@ public:
         Returns @true if successful.
     */
     bool Export(wxOutputStream& ostr) const;
         Returns @true if successful.
     */
     bool Export(wxOutputStream& ostr) const;
-    
+
     /**
         Gets the first key. Returns @true if successful.
     */
     /**
         Gets the first key. Returns @true if successful.
     */
@@ -223,6 +255,15 @@ public:
     */
     wxString GetName(bool bShortPrefix = true) const;
 
     */
     wxString GetName(bool bShortPrefix = true) const;
 
+    /**
+        Retrieves the registry view used by this key.
+
+        @since 2.9.2
+
+        @return The registry view given at the object's construction.
+    */
+    WOW64ViewMode GetView() const { return m_viewMode; }
+
     /**
         Gets the next key. Returns @true if successful.
     */
     /**
         Gets the next key. Returns @true if successful.
     */
@@ -237,7 +278,7 @@ public:
         Gets the value type.
     */
     ValueType GetValueType(const wxString& szValue) const;
         Gets the value type.
     */
     ValueType GetValueType(const wxString& szValue) const;
-    
+
     /**
         Returns @true if given subkey exists.
     */
     /**
         Returns @true if given subkey exists.
     */
@@ -246,7 +287,7 @@ public:
     /**
         Returns @true if any subkeys exist.
     */
     /**
         Returns @true if any subkeys exist.
     */
-    bool HasSubKeys() const;
+    bool HasSubkeys() const;
 
     /**
         Returns @true if the value exists.
 
     /**
         Returns @true if the value exists.
@@ -292,21 +333,25 @@ public:
 
     /**
         Retrieves the raw string value. Returns @true if successful.
 
     /**
         Retrieves the raw string value. Returns @true if successful.
+        An empty @a szValue queries the default/unnamed key value.
     */
     bool QueryRawValue(const wxString& szValue, wxString& strValue) const;
 
     /**
         Retrieves the raw or expanded string value. Returns @true if successful.
     */
     bool QueryRawValue(const wxString& szValue, wxString& strValue) const;
 
     /**
         Retrieves the raw or expanded string value. Returns @true if successful.
+        An empty @a szValue queries the default/unnamed key value.
     */
     bool QueryValue(const wxString& szValue, wxString& strValue, bool raw) const;
 
     /**
         Retrieves the numeric value. Returns @true if successful.
     */
     bool QueryValue(const wxString& szValue, wxString& strValue, bool raw) const;
 
     /**
         Retrieves the numeric value. Returns @true if successful.
+        An empty @a szValue queries the default/unnamed key value.
     */
     bool QueryValue(const wxString& szValue, long* plValue) const;
 
     /**
         Retrieves the binary structure. Returns @true if successful.
     */
     bool QueryValue(const wxString& szValue, long* plValue) const;
 
     /**
         Retrieves the binary structure. Returns @true if successful.
+        An empty @a szValue queries the default/unnamed key value.
     */
     bool QueryValue(const wxString& szValue, wxMemoryBuffer& buf) const;
 
     */
     bool QueryValue(const wxString& szValue, wxMemoryBuffer& buf) const;
 
@@ -324,13 +369,13 @@ public:
     /**
         Preallocate some memory for the name. For wxRegConfig usage only.
     */
     /**
         Preallocate some memory for the name. For wxRegConfig usage only.
     */
-    void ReserveMemoryForName(size_t bytes); 
+    void ReserveMemoryForName(size_t bytes);
 
     /**
         Set or change the HKEY handle.
     */
     void SetHkey(WXHKEY hKey);
 
     /**
         Set or change the HKEY handle.
     */
     void SetHkey(WXHKEY hKey);
-    
+
     /**
         Set the full key name. The name is absolute. It should start with
         HKEY_xxx.
     /**
         Set the full key name. The name is absolute. It should start with
         HKEY_xxx.
@@ -344,20 +389,23 @@ public:
         Set the name relative to the parent key
     */
     void SetName(const wxRegKey& keyParent, const wxString& strKey);
         Set the name relative to the parent key
     */
     void SetName(const wxRegKey& keyParent, const wxString& strKey);
-    
+
     /**
         Sets the given @a szValue which must be numeric. If the value doesn't
         exist, it is created. Returns @true if successful.
     /**
         Sets the given @a szValue which must be numeric. If the value doesn't
         exist, it is created. Returns @true if successful.
+        An empty @a szValue sets the default/unnamed key value.
     */
     bool SetValue(const wxString& szValue, long lValue);
     /**
         Sets the given @a szValue which must be string. If the value doesn't
         exist, it is created. Returns @true if successful.
     */
     bool SetValue(const wxString& szValue, long lValue);
     /**
         Sets the given @a szValue which must be string. If the value doesn't
         exist, it is created. Returns @true if successful.
+        An empty @a szValue sets the default/unnamed key value.
     */
     bool SetValue(const wxString& szValue, const wxString& strValue);
     /**
     */
     bool SetValue(const wxString& szValue, const wxString& strValue);
     /**
-        Sets the given @a szValue which must be binary. If the value doesn't 
+        Sets the given @a szValue which must be binary. If the value doesn't
         exist, it is created. Returns @true if successful.
         exist, it is created. Returns @true if successful.
+        An empty @a szValue sets the default/unnamed key value.
     */
     bool SetValue(const wxString& szValue, const wxMemoryBuffer& buf);
 };
     */
     bool SetValue(const wxString& szValue, const wxMemoryBuffer& buf);
 };