Profile.h
上传用户:wymy58
上传日期:2007-01-07
资源大小:2086k
文件大小:2k
源码类别:

DirextX编程

开发平台:

Visual C++

  1. // Copyright (C) 1995-1999 DXGuide.  All Rights Reserved.
  2. // File: Profile.h
  3. #ifndef _PROFILE__H
  4. #define _PROFILE__H
  5. #if _MSC_VER >= 1000
  6. #pragma once
  7. #endif // _MSC_VER >= 1000
  8. const TCHAR charLeftSect = _T('[');
  9. const TCHAR charRightSect = _T(']');
  10. const TCHAR charEqu = _T('=');
  11. class CPackFileManager;
  12. class CPackFile;
  13. class CProfile
  14. {
  15. public:
  16. CProfile(void);
  17. ~CProfile();
  18. public:
  19. bool Open(LPCTSTR  lpszFileName,
  20. CPackFileManager*  pPackFileManager = NULL);
  21. public:
  22. union
  23. {
  24. CFile* m_pFile;
  25. CPackFile* m_pPackFile;
  26. };
  27. protected:
  28. bool m_bUsePackFile;
  29. public:
  30. UINT GetProfileInt(LPCTSTR  lpszSection,
  31. LPCTSTR  lpszEntry, int  nDefault);
  32. DWORD GetProfileString(LPCTSTR  lpszSection,
  33. LPCTSTR  lpszEntry, LPCTSTR  lpszDefault,
  34. LPTSTR  lpReturnedString, DWORD  nSize);
  35. CString GetProfileString(LPCTSTR  lpszSection,
  36. LPCTSTR  lpszEntry, LPCTSTR  lpszDefault = NULL);
  37.   
  38. bool WriteProfileString(LPCTSTR  lpszSection, LPCTSTR  lpszEntry, LPCTSTR  lpszValue);
  39. bool WriteProfileInt(LPCTSTR  lpszSection, LPCTSTR  lpszEntry, int  nValue);
  40. bool GotoLineNo(int  nLineNo);
  41. int GetLine(LPTSTR  lpBuffer, int  nBytes);
  42. int GetSectionLineNo(LPCTSTR  lpszSection);
  43. int GetNextSectionLineNo(int  nLineNo);
  44. private:
  45. bool WriteLine(CFile*  pFile, LPCTSTR  lpBuffer);
  46. bool IsSpaceChar(const TCHAR  chr);
  47. bool IsAnySection(LPTSTR  lpLineBuf);
  48. bool IsSectionInLine(LPCTSTR  lpszSection, LPTSTR  lpLineBuf);
  49. TCHAR* GetEntryInLinePos(LPCTSTR  lpszEntry, LPTSTR  lpLineBuf);
  50. };
  51. #endif // _PROFILE__H