Click here to Skip to main content
15,885,038 members
Articles / Desktop Programming / MFC

Save Application Settings to XML

Rate me:
Please Sign up or sign in to vote.
3.92/5 (5 votes)
16 Sep 20022 min read 258.2K   1.8K   54  
An easy to use class that reads, writes and deletes app settings to an XML file.
#if !defined(XMLSETTINGS_H)
#define XMLSETTINGS_H

#import "msxml4.dll" named_guids raw_interfaces_only

/////////////////////////////////////////////////////////////////////////////
// CXMLSettings window

#include <atlbase.h>

class CXMLSettings
{
// Construction
public:
	CXMLSettings()
	{
		XmlDocPtr = NULL;
		cstrConfigFile = "";
	}

// Implementation
public:
	void SetSettingsFile(CString cstrFile) { cstrConfigFile = cstrFile; };

	long GetSettingLong(CString cstrBaseKeyName, CString cstrValueName, long lDefaultValue);
	long SetSettingLong(CString cstrBaseKeyName, CString cstrValueName, long lValue);

	CString GetSettingString(CString cstrBaseKeyName, CString cstrValueName, CString cstrDefaultValue);
	long SetSettingString(CString cstrBaseKeyName, CString cstrValueName, CString cstrValue);

	BOOL DeleteSetting(CString cstrBaseKeyName, CString cstrValueName);

protected:
	MSXML2::IXMLDOMDocument2Ptr XmlDocPtr;
	CString cstrConfigFile;

	CString* ParseKeys(CString cstrFullKeyPath, int &iNumKeys);
	BOOL LoadXML();
	BOOL SaveXML();
	void UnloadXML() { XmlDocPtr = NULL; };
	MSXML2::IXMLDOMNodePtr FindNode(MSXML2::IXMLDOMNodePtr parentNode, CString* pCStrKeys, int iNumKeys, BOOL bAddNodes = FALSE);

};

#endif XMLSETTINGS_H

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


Written By
Software Developer (Senior)
United States United States
I have been a professional developer since 1996. I live in Illinois, in the USA. I am married and have four children.

Comments and Discussions