Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

105 lines
3.4 KiB

  1. /*****************************************************************************
  2. ** Microsoft Rasfile Library
  3. ** Copyright (C) Microsoft Corp., 1992
  4. **
  5. ** File Name : rasfile.h
  6. **
  7. ** Revision History :
  8. ** July 10, 1992 David Kays Created
  9. ** Dec 12, 1992 Ram Cherala Added RFM_KEEPDISKFILEOPEN
  10. **
  11. ** Description :
  12. ** Rasfile file export include file.
  13. ******************************************************************************/
  14. #ifndef _RASFILE_
  15. #define _RASFILE_
  16. //
  17. // RASFILE load modes
  18. //
  19. #define RFM_SYSFORMAT 0x01 // DOS config.sys style file
  20. #define RFM_CREATE 0x02 // create file if it does't exist
  21. #define RFM_READONLY 0x04 // open file for read only
  22. #define RFM_LOADCOMMENTS 0x08 // load comment lines into memory
  23. #define RFM_ENUMSECTIONS 0x10 // only section headers loaded
  24. #define RFM_KEEPDISKFILEOPEN 0x20 // if not set close the disk file
  25. //
  26. // RASFILE line type bit-masks.
  27. // The ANY types are shorthand for multiple line types.
  28. //
  29. #define RFL_SECTION 0x01
  30. #define RFL_GROUP 0x02
  31. #define RFL_ANYHEADER (RFL_SECTION | RFL_GROUP)
  32. #define RFL_BLANK 0x04
  33. #define RFL_COMMENT 0x08
  34. #define RFL_ANYINACTIVE (RFL_BLANK | RFL_COMMENT)
  35. #define RFL_KEYVALUE 0x10
  36. #define RFL_COMMAND 0x20
  37. #define RFL_ANYACTIVE (RFL_KEYVALUE | RFL_COMMAND)
  38. #define RFL_ANY 0x3F
  39. //
  40. // RASFILE search scope.
  41. //
  42. typedef enum
  43. {
  44. RFS_FILE,
  45. RFS_SECTION,
  46. RFS_GROUP
  47. } RFSCOPE;
  48. typedef int HRASFILE;
  49. typedef BOOL (*PFBISGROUP)();
  50. #define INVALID_HRASFILE -1
  51. #define RAS_MAXLINEBUFLEN 600
  52. #define RAS_MAXSECTIONNAME RAS_MAXLINEBUFLEN
  53. //
  54. // RasfileLoad parameters as returned by RasfileLoadInfo.
  55. //
  56. typedef struct _RASFILELOADINFO
  57. {
  58. CHAR szPath[ MAX_PATH ];
  59. DWORD dwMode;
  60. CHAR szSection[ RAS_MAXSECTIONNAME + 1 ];
  61. PFBISGROUP pfbIsGroup;
  62. } RASFILELOADINFO;
  63. //
  64. // RASFILE APIs
  65. //
  66. // file management routines
  67. HRASFILE APIENTRY RasfileLoad( LPCSTR, DWORD, LPCSTR, PFBISGROUP);
  68. BOOL APIENTRY RasfileWrite( HRASFILE, LPCSTR );
  69. BOOL APIENTRY RasfileClose( HRASFILE );
  70. VOID APIENTRY RasfileLoadInfo( HRASFILE, RASFILELOADINFO* );
  71. // file navigation routines
  72. BOOL APIENTRY RasfileFindFirstLine( HRASFILE, BYTE, RFSCOPE );
  73. BOOL APIENTRY RasfileFindLastLine( HRASFILE, BYTE, RFSCOPE );
  74. BOOL APIENTRY RasfileFindPrevLine( HRASFILE, BYTE, RFSCOPE );
  75. BOOL APIENTRY RasfileFindNextLine( HRASFILE, BYTE, RFSCOPE );
  76. BOOL APIENTRY RasfileFindNextKeyLine( HRASFILE, LPCSTR, RFSCOPE );
  77. BOOL APIENTRY RasfileFindMarkedLine( HRASFILE, BYTE );
  78. BOOL APIENTRY RasfileFindSectionLine( HRASFILE, LPCSTR, BOOL );
  79. // file editing routines
  80. const LPCSTR APIENTRY RasfileGetLine( HRASFILE );
  81. BOOL APIENTRY RasfileGetLineText( HRASFILE, LPSTR );
  82. BOOL APIENTRY RasfilePutLineText( HRASFILE, LPCSTR );
  83. BYTE APIENTRY RasfileGetLineMark( HRASFILE );
  84. BOOL APIENTRY RasfilePutLineMark( HRASFILE, BYTE );
  85. BYTE APIENTRY RasfileGetLineType( HRASFILE );
  86. BOOL APIENTRY RasfileInsertLine( HRASFILE, LPCSTR, BOOL );
  87. BOOL APIENTRY RasfileDeleteLine( HRASFILE );
  88. BOOL APIENTRY RasfileGetSectionName( HRASFILE, LPSTR );
  89. BOOL APIENTRY RasfilePutSectionName( HRASFILE, LPCSTR );
  90. BOOL APIENTRY RasfileGetKeyValueFields( HRASFILE, LPSTR, LPSTR );
  91. BOOL APIENTRY RasfilePutKeyValueFields( HRASFILE, LPCSTR, LPCSTR );
  92. #endif