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.

183 lines
3.5 KiB

  1. /*++
  2. Copyright (c) 2000 Microsoft Corporation
  3. Module Name:
  4. cliparse.h
  5. Abstract:
  6. Definitions for CLI parse module
  7. Author:
  8. Ravisankar Pudipeddi [ravisp] 21-March-2000
  9. Revision History:
  10. --*/
  11. #ifndef _CLIPARSE_H_
  12. #define _CLIPARSE_H_
  13. //
  14. // Return codes from main()
  15. //
  16. #define CLIP_ERROR_SUCCESS 0
  17. #define CLIP_ERROR_INVALID_PARAMETER 1
  18. #define CLIP_ERROR_INSUFFICIENT_MEMORY 2
  19. #define CLIP_ERROR_UNKNOWN 0xFF
  20. //
  21. // Token separators on command line
  22. //
  23. #define SEPARATORS L" \t\n"
  24. //
  25. // Delimiter which distinguishes a switch
  26. //
  27. #define SWITCH_DELIMITERS L"/-"
  28. //
  29. // Argument separator for a switch
  30. //
  31. #define SWITCH_ARG_DELIMITERS L":"
  32. //
  33. // Argument separator for a rule spec (distinguishes
  34. // path from file spec)
  35. //
  36. #define RULE_DELIMITERS L":"
  37. //
  38. // Quotes to delimit tokens with embedded whitespace
  39. //
  40. #define QUOTE L'\"'
  41. //
  42. // Rss command line interfaces
  43. //
  44. typedef enum _RSS_INTERFACE {
  45. UNKNOWN_IF = 0,
  46. ADMIN_IF,
  47. VOLUME_IF,
  48. FILE_IF,
  49. MEDIA_IF,
  50. HELP_IF,
  51. SHOW_IF,
  52. SET_IF,
  53. MANAGE_IF,
  54. UNMANAGE_IF,
  55. DELETE_IF,
  56. JOB_IF,
  57. RECALL_IF,
  58. SYNCHRONIZE_IF,
  59. RECREATEMASTER_IF
  60. } RSS_INTERFACE, *PRSS_INTERFACE;
  61. //
  62. // All switches supported by the CLI
  63. //
  64. typedef enum _RSS_SWITCH_TYPE {
  65. UNKNOWN_SW = 0,
  66. RECALLLIMIT_SW,
  67. MEDIACOPIES_SW,
  68. SCHEDULE_SW,
  69. CONCURRENCY_SW,
  70. ADMINEXEMPT_SW,
  71. GENERAL_SW,
  72. MANAGEABLES_SW,
  73. MANAGED_SW,
  74. MEDIA_SW,
  75. DFS_SW,
  76. SIZE_SW,
  77. ACCESS_SW,
  78. INCLUDE_SW,
  79. EXCLUDE_SW,
  80. RECURSIVE_SW,
  81. QUICK_SW,
  82. FULL_SW,
  83. RULE_SW,
  84. STATISTICS_SW,
  85. TYPE_SW,
  86. RUN_SW,
  87. CANCEL_SW,
  88. WAIT_SW,
  89. COPYSET_SW,
  90. NAME_SW,
  91. STATUS_SW,
  92. CAPACITY_SW,
  93. FREESPACE_SW,
  94. VERSION_SW,
  95. COPIES_SW,
  96. HELP_SW
  97. } RSS_SWITCH_TYPE, *PRSS_SWITCH_TYPE;
  98. //
  99. // Switches structure: compiled by parsing command line
  100. //
  101. typedef struct _RSS_SWITCHES {
  102. RSS_SWITCH_TYPE SwitchType;
  103. LPWSTR Arg;
  104. } RSS_SWITCHES, *PRSS_SWITCHES;
  105. typedef struct _RSS_KEYWORD {
  106. //
  107. // Long version of the keyword
  108. //
  109. LPWSTR Long;
  110. //
  111. // Short version of the keyword
  112. //
  113. LPWSTR Short;
  114. RSS_INTERFACE Interface;
  115. } RSS_KEYWORD, *PRSS_KEYWORD;
  116. //
  117. // Switches are described in this structure
  118. // First, some defines for RSS_SWITCH_DEFINITION structure
  119. //
  120. #define RSS_NO_ARG 0
  121. #define RSS_ARG_DWORD 1
  122. #define RSS_ARG_STRING 2
  123. typedef struct _RSS_SWITCH_DEFINITION {
  124. //
  125. // Long version of the keyword
  126. //
  127. LPWSTR Long;
  128. //
  129. // Short version of the keyword
  130. //
  131. LPWSTR Short;
  132. RSS_SWITCH_TYPE SwitchType;
  133. DWORD ArgRequired;
  134. } RSS_SWITCH_DEFINITION, *PRSS_SWITCH_DEFINITION;
  135. //
  136. // Job type definition
  137. //
  138. typedef struct _RSS_JOB_DEFINITION {
  139. //
  140. // Long version of the keyword
  141. //
  142. LPWSTR Long;
  143. //
  144. // Short version of the keyword
  145. //
  146. LPWSTR Short;
  147. HSM_JOB_TYPE JobType;
  148. } RSS_JOB_DEFINITION, *PRSS_JOB_DEFINITION;
  149. #define HSM_SCHED_AT L"At"
  150. #define HSM_SCHED_EVERY L"Every"
  151. #define HSM_SCHED_SYSTEMSTARTUP L"Startup"
  152. #define HSM_SCHED_LOGIN L"Login"
  153. #define HSM_SCHED_IDLE L"Idle"
  154. #define HSM_SCHED_DAILY L"Day"
  155. #define HSM_SCHED_WEEKLY L"Week"
  156. #define HSM_SCHED_MONTHLY L"Month"
  157. #define HSM_SCHED_TIME_SEPARATORS L":"
  158. #endif // _CLIPARSE_H_