MFC extension class CPrivateProfile

Environment: Visual C++ 6, Windows 95/98/Me/NT/2000/XP

The class CPrivateProfile is a wrapper class around the Win32 functions GetPrivateProfileString and GetPrivateProfileInt. It enables an easy way to traverse and read INI files. The allocation and deallocation of needed internal buffers will be managed automatically. You can easily extend the class by write and delete operations.

CPrivateProfile class members:
Constructor:
CPrivateProfile(LPCTSTR pszFileName) Constructs a CPrivateProfile object and assigns to it the INI file pszFileName.
Public member functions:
int GetInt(LPCTSTR pszSectionName, LPCTSTR pszKeyName, int nDefault = 0) const Retrieves the integer associated with the key pszKeyName in the section pszSectionName. If the key name cannot be found nDefault will be returned.
LPCTSTR GetNext(POSITION& position) const Returns a pointer to the next section or key name. position is a reference to a POSITION value returned by a previous GetNext or GetStartPosition.
POSITION GetStartPosition(LPCTSTR pszSectionName = 0) Returns a POSITION value that indicates a starting position for iterating a section or key list. If pszSectionName is 0 POSITION is the starting position of the section list. Otherwise POSITION is the starting position of the key list associated with the section pszSectionName.
CString GetString(LPCTSTR pszSectionName, LPCTSTR pszKeyName, LPCTSTR pszDefault = _T("")) const Retrieves the string associated with the key pszKeyName in the section pszSectionName. If the key name cannot be found pszDefault will be returned.

Downloads

Download demo project - 50 Kb
Download source - 2 Kb


About the Author

Thomas Holte

Born in 1953 I'm a passionate programmer since 30 years. I'm employed as a software developer at a large company in Nuremberg, Germany. My hobbies are programming (what else) and digital photography.

Comments

  • Warning !!!

    Posted by Legacy on 01/06/2002 12:00am

    Originally posted by: Remon

    For Windows NT/2000 or later, calls to private profile functions may be mapped to the registry instead of to the specified initialization files when the initialization file and section are specified in the registry under the following keys: HEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\IniFileMapping.

    So when using this class to read C:\WinNT\Win.Ini, the sections & keys returned are read from the registry and won't reflect the real file contents....

    See Micro$oft documentation for more informations.

    Thanks for your contribution
    A++
    R�mon

    Reply
  • Great, but no implemention of WritePrivateProfile*()

    Posted by Legacy on 01/03/2002 12:00am

    Originally posted by: Phips Xue

    It's so great that Thomas encapsolute the functions into a class, but there's no implemention of WritePrivateProfile*().

    ;)

    Reply
  • Yes, but...

    Posted by Legacy on 12/29/2001 12:00am

    Originally posted by: Tiko Gola

    What is your picture for ?

    Reply
Leave a Comment
  • Your email address will not be published. All fields are required.

Top White Papers and Webcasts

  • On-demand Event Event Date: September 10, 2014 Modern mobile applications connect systems-of-engagement (mobile apps) with systems-of-record (traditional IT) to deliver new and innovative business value. But the lifecycle for development of mobile apps is also new and different. Emerging trends in mobile development call for faster delivery of incremental features, coupled with feedback from the users of the app "in the wild." This loop of continuous delivery and continuous feedback is how the best mobile …

  • Java developers know that testing code changes can be a huge pain, and waiting for an application to redeploy after a code fix can take an eternity. Wouldn't it be great if you could see your code changes immediately, fine-tune, debug, explore and deploy code without waiting for ages? In this white paper, find out how that's possible with a Java plugin that drastically changes the way you develop, test and run Java applications. Discover the advantages of this plugin, and the changes you can expect to see …

Most Popular Programming Stories

More for Developers

Latest Developer Headlines

RSS Feeds