+The following functions control this option:
+
+\helpref{IsExpandingEnvVars}{wxconfigbaseisexpandingenvvars}\\
+\helpref{SetExpandingEnvVars}{wxconfigbasesetexpandingenvvars}\\
+\helpref{SetRecordDefaults}{wxconfigbasesetrecorddefaults}\\
+\helpref{IsRecordingDefaults}{wxconfigbaseisrecordingdefaults}
+
+%%%%% MEMBERS HERE %%%%%
+\helponly{\insertatlevel{2}{
+
+\wxheading{Members}
+
+}}
+
+\membersection{wxConfigBase::wxConfigBase}\label{wxconfigbasector}
+
+\func{}{wxConfigBase}{\param{const wxString\& }{appName = wxEmptyString},
+ \param{const wxString\& }{vendorName = wxEmptyString},
+ \param{const wxString\& }{localFilename = wxEmptyString},
+ \param{const wxString\& }{globalFilename = wxEmptyString},
+ \param{long}{ style = 0}}
+
+This is the default and only constructor of the wxConfigBase class, and
+derived classes.
+
+\wxheading{Parameters}
+
+\docparam{appName}{The application name. If this is empty, the class will
+normally use \helpref{wxApp::GetAppName}{wxappgetappname} to set it. The
+application name is used in the registry key on Windows, and can be used to
+deduce the local filename parameter if that is missing.}
+
+\docparam{vendorName}{The vendor name. If this is empty, it is assumed that
+no vendor name is wanted, if this is optional for the current config class.
+The vendor name is appended to the application name for wxRegConfig.}
+
+\docparam{localFilename}{Some config classes require a local filename. If this
+is not present, but required, the application name will be used instead.}
+
+\docparam{globalFilename}{Some config classes require a global filename. If
+this is not present, but required, the application name will be used instead.}
+
+\docparam{style}{Can be one of wxCONFIG\_USE\_LOCAL\_FILE and
+wxCONFIG\_USE\_GLOBAL\_FILE. The style interpretation depends on the config
+class and is ignored by some. For wxFileConfig, these styles determine whether
+a local or global config file is created or used. If the flag is present but
+the parameter is empty, the parameter will be set to a default. If the
+parameter is present but the style flag not, the relevant flag will be added
+to the style.}
+
+\wxheading{Remarks}
+
+By default, environment variable expansion is on and recording defaults is
+off.
+
+\membersection{wxConfigBase::\destruct{wxConfigBase}}\label{wxconfigbasedtor}
+
+\func{}{\destruct{wxConfigBase}}{\void}
+
+Empty but ensures that dtor of all derived classes is virtual.
+
+\membersection{wxConfigBase::Create}\label{wxconfigbasecreate}
+
+\func{static wxConfigBase *}{Create}{\void}
+
+Create a new config object: this function will create the "best"
+implementation of wxConfig available for the current platform, see comments
+near the definition of wxCONFIG\_WIN32\_NATIVE for details. It returns the
+created object and also sets it as the current one.
+
+\membersection{wxConfigBase::DontCreateOnDemand}\label{wxconfigbasedontcreateondemand}
+
+\func{void}{DontCreateOnDemand}{\void}
+
+Calling this function will prevent {\it Get()} from automatically creating a
+new config object if the current one is NULL. It might be useful to call it
+near the program end to prevent new config object "accidental" creation.
+
+\membersection{wxConfigBase::DeleteAll}\label{wxconfigbasedeleteall}
+
+\func{bool}{DeleteAll}{\void}
+
+Delete the whole underlying object (disk file, registry key, ...). Primarly
+for use by desinstallation routine.
+
+\membersection{wxConfigBase::DeleteEntry}\label{wxconfigbasedeleteentry}
+
+\func{bool}{DeleteEntry}{\param{const wxString\& }{ key}, \param{bool}{
+bDeleteGroupIfEmpty = TRUE}}
+
+Deletes the specified entry and the group it belongs to if it was the last key
+in it and the second parameter is true.
+
+\membersection{wxConfigBase::DeleteGroup}\label{wxconfigbasedeletegroup}
+
+\func{bool}{DeleteGroup}{\param{const wxString\& }{ key}}
+
+Delete the group (with all subgroups)
+
+\membersection{wxConfigBase::Exists}\label{wxconfigbaseexists}
+
+\constfunc{bool}{Exists}{\param{wxString\& }{strName}}
+
+returns TRUE if either a group or an entry with a given name exists
+
+\membersection{wxConfigBase::Flush}\label{wxconfigbaseflush}
+
+\func{bool}{Flush}{\param{bool }{bCurrentOnly = FALSE}}
+
+permanently writes all changes (otherwise, they're only written from object's
+destructor)
+
+\membersection{wxConfigBase::Get}\label{wxconfigbaseget}
+
+\func{wxConfigBase *}{Get}{\void}
+
+Get the current config object. If there is no current object, creates one
+(using {\it Create}) unless DontCreateOnDemand was called previously.
+
+\membersection{wxConfigBase::GetAppName}\label{wxconfigbasegetappname}
+
+\constfunc{wxString}{GetAppName}{\void}
+
+Returns the application name.
+
+\membersection{wxConfigBase::GetFirstGroup}\label{wxconfigbasegetfirstgroup}
+
+\constfunc{bool}{GetFirstGroup}{\param{wxString\& }{str}, \param{long\&}{
+index}}
+
+Gets the first group.
+
+\membersection{wxConfigBase::GetFirstEntry}\label{wxconfigbasegetfirstentry}
+
+\constfunc{bool}{GetFirstEntry}{\param{wxString\& }{str}, \param{long\&}{
+index}}
+
+Gets the first entry.
+
+\membersection{wxConfigBase::GetNextGroup}\label{wxconfigbasegetnextgroup}
+
+\constfunc{bool}{GetNextGroup}{\param{wxString\& }{str}, \param{long\&}{
+index}}
+
+Gets the next group.
+
+\membersection{wxConfigBase::GetNextEntry}\label{wxconfigbasegetnextentry}
+
+\constfunc{bool}{GetNextEntry}{\param{wxString\& }{str}, \param{long\&}{
+index}}
+
+Gets the next entry.
+
+\membersection{wxConfigBase::GetNumberOfEntries}\label{wxconfigbasegetnumberofentries}
+
+\constfunc{uint }{GetNumberOfEntries}{\param{bool }{bRecursive = FALSE}}
+
+\membersection{wxConfigBase::GetNumberOfGroups}\label{wxconfigbasegetnumberofgroups}
+
+\constfunc{uint}{GetNumberOfGroups}{\param{bool }{bRecursive = FALSE}}
+
+Get number of entries/subgroups in the current group, with or without its
+subgroups.
+
+\membersection{wxConfigBase::GetPath}\label{wxconfigbasegetpath}
+
+\constfunc{const wxString\&}{GetPath}{\void}
+
+Retrieve the current path (always as absolute path).
+
+\membersection{wxConfigBase::GetVendorName}\label{wxconfigbasegetvendorname}
+
+\constfunc{wxString}{GetVendorName}{\void}
+
+Returns the vendor name.
+
+\membersection{wxConfigBase::HasEntry}\label{wxconfigbasehasentry}
+
+\constfunc{bool}{HasEntry}{\param{wxString\& }{strName}}
+
+returns TRUE if the entry by this name exists
+
+\membersection{wxConfigBase::HasGroup}\label{wxconfigbasehasgroup}
+
+\constfunc{bool}{HasGroup}{\param{const wxString\& }{strName}}
+
+returns TRUE if the group by this name exists
+
+\membersection{wxConfigBase::IsExpandingEnvVars}\label{wxconfigbaseisexpandingenvvars}
+
+\constfunc{bool}{IsExpandingEnvVars}{\void}
+
+Returns TRUE if we are expanding environment variables in key values.
+
+\membersection{wxConfigBase::IsRecordingDefaults}\label{wxconfigbaseisrecordingdefaults}
+
+\func{bool}{IsRecordingDefaults}{\void} const
+
+Returns TRUE if we are writing defaults back to the config file.
+
+\membersection{wxConfigBase::Read}\label{wxconfigbaseread}
+
+\constfunc{bool}{Read}{\param{const wxString\& }{key}, \param{wxString*}{
+str}}
+
+Read a string from the key, returning TRUE if the value was read. If the key
+was not found, {\it str} is not changed.
+
+\constfunc{bool}{Read}{\param{const wxString\& }{key}, \param{wxString*}{
+str}, \param{const wxString\& }{defaultVal}}
+
+Read a string from the key. The default value is returned if the key was not
+found.
+
+Returns TRUE if value was really read, FALSE if the default was used.
+
+\constfunc{wxString}{Read}{\param{const wxString\& }{key}, \param{const
+wxString\& }{defaultVal}}
+
+Another version of {\it Read()}, returning the string value directly.
+
+\constfunc{bool}{Read}{\param{const wxString\& }{ key}, \param{long*}{ l}}
+
+Reads a long value, returning TRUE if the value was found. If the value was
+not found, {\it l} is not changed.
+
+\constfunc{bool}{Read}{\param{const wxString\& }{ key}, \param{long*}{ l},
+\param{long}{ defaultVal}}
+
+Reads a long value, returning TRUE if the value was found. If the value was
+not found, {\it defaultVal} is used instead.
+
+\constfunc{long }{Read}{\param{const wxString\& }{key}, \param{long}{
+defaultVal}}
+
+Reads a long value from the key and returns it. {\it defaultVal} is returned
+if the key is not found.
+
+NB: writing
+
+{\small \begin{verbatim} conf->Read("key", 0); \end{verbatim} }
+
+won't work because the call is ambiguous: compiler can not choose between two
+{\it Read} functions. Instead, write:
+
+{\small \begin{verbatim} conf->Read("key", 0l); \end{verbatim} }
+
+\constfunc{bool}{Read}{\param{const wxString\& }{ key}, \param{double*}{ d}}
+
+Reads a double value, returning TRUE if the value was found. If the value was
+not found, {\it d} is not changed.
+
+\constfunc{bool}{Read}{\param{const wxString\& }{ key}, \param{double*}{ d},
+ \param{double}{ defaultVal}}
+
+Reads a double value, returning TRUE if the value was found. If the value was
+not found, {\it defaultVal} is used instead.
+
+\constfunc{bool}{Read}{\param{const wxString\& }{ key}, \param{bool*}{ b}}
+
+Reads a bool value, returning TRUE if the value was found. If the value was
+not found, {\it b} is not changed.
+
+\constfunc{bool}{Read}{\param{const wxString\& }{ key}, \param{bool*}{ d},
+\param{bool}{ defaultVal}}
+
+Reads a bool value, returning TRUE if the value was found. If the value was
+not found, {\it defaultVal} is used instead.
+
+\membersection{wxConfigBase::RenameEntry}\label{wxconfigbaserenameentry}
+
+\func{bool}{RenameEntry}{\param{const wxString\& }{ oldName}, \param{const wxString\& }{ newName}}
+
+Renames an entry in the current group. The entries names (both the old and
+the new one) shouldn't contain backslashes, i.e. only simple names and not
+arbitrary paths are accepted by this function.
+
+Returns FALSE if the {\it oldName} doesn't exist or if {\it newName} already
+exists.
+
+\membersection{wxConfigBase::RenameGroup}\label{wxconfigbaserenamegroup}
+
+\func{bool}{RenameGroup}{\param{const wxString\& }{ oldName}, \param{const wxString\& }{ newName}}
+
+Renames a subgroup of the current group. The subgroup names (both the old and
+the new one) shouldn't contain backslashes, i.e. only simple names and not
+arbitrary paths are accepted by this function.
+
+Returns FALSE if the {\it oldName} doesn't exist or if {\it newName} already
+exists.
+
+\membersection{wxConfigBase::Set}\label{wxconfigbaseset}
+
+\func{wxConfigBase *}{Set}{\param{wxConfigBase *}{pConfig}}
+
+Sets the config object as the current one, returns the pointer to the previous
+current object (both the parameter and returned value may be NULL)
+
+\membersection{wxConfigBase::SetAppName}\label{wxconfigbasesetappname}
+
+\func{void }{SetAppName}{\param{const wxString\&}{ appName}}
+
+Sets the application name.
+
+\membersection{wxConfigBase::SetExpandingEnvVars}\label{wxconfigbasesetexpandingenvvars}
+
+\func{void}{SetExpandEnvVars }{\param{bool }{bDoIt = TRUE}}
+
+Determine whether we wish to expand environment variables in key values.
+
+\membersection{wxConfigBase::SetPath}\label{wxconfigbasesetpath}
+
+\func{void}{SetPath}{\param{const wxString\& }{strPath}}
+
+Set current path: if the first character is '/', it's the absolute path,
+otherwise it's a relative path. '..' is supported. If the strPath doesn't
+exist it is created.
+
+\membersection{wxConfigBase::SetRecordDefaults}\label{wxconfigbasesetrecorddefaults}
+
+\func{void}{SetRecordDefaults}{\param{bool }{bDoIt = TRUE}}
+
+Sets whether defaults are written back to the config file.
+
+If on (default is off) all default values are written back to the config file.
+This allows the user to see what config options may be changed and is probably
+useful only for wxFileConfig.
+
+\membersection{wxConfigBase::SetVendorName}\label{wxconfigbasesetvendorname}
+
+\func{void}{SetVendorName}{\param{const wxString\&}{ vendorName}}
+
+Sets the vendor name.
+
+\membersection{wxConfigBase::Write}\label{wxconfigbasewrite}
+
+\func{bool}{Write}{\param{const wxString\& }{ key}, \param{const wxString\& }{
+value}}