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.

289 lines
9.0 KiB

  1. // scuRcVersion.h -- Schlumberger Resource Versioning
  2. // (c) Copyright Schlumberger Technology Corp., unpublished work, created
  3. // 1998. This computer program includes Confidential, Proprietary
  4. // Information and is a Trade Secret of Schlumberger Technology Corp. All
  5. // use, disclosure, and/or reproduction is prohibited unless authorized
  6. // in writing. All Rights Reserved.
  7. // Common header file to include in resource (.rc) files for version
  8. // definitions. This header file defines the product version, name,
  9. // company information, etc. and supports components built in the
  10. // Schlumberger Smart Card and Microsoft build environment
  11. // If SLB_BUILD is defined, then it's assumed the package is being
  12. // built by Schlumberger in which case a custom set of versioning
  13. // information is (re)defined. Otherwise it's being built by
  14. // Microsoft for Windows 2000, so the default version numbering is
  15. // used and "(Microsoft Build)" appears in product version string.
  16. // To use, do the following in the package's resource file,
  17. // 1. define the macros as described below
  18. // 2. include this file
  19. // 3. include <common.ver> provided by Microsoft
  20. //
  21. // Then the version resource information should be created as desired
  22. // when compiling.
  23. //
  24. // When Schlumberger is building, the following must be defined:
  25. // VER_PRODUCT_MAJOR - major version number
  26. // VER_PRODUCT_MINOR - minor version number, less than 1,000.
  27. // SLBSCU_BUILDCOUNT_NUM - build number, less than 10,000.
  28. //
  29. // SLBSCU_BUILDCOUNT_NUM could be defined in terms of BUILDCOUNT_NUM
  30. // defined by AutoBuildCount.h. In which case, AutoBuildCount.h would be
  31. // included before this file.
  32. // To build on all platforms, the following must be defined:
  33. // VER_INTERNALNAME_STR - name of the DLL, LIB, or EXE
  34. // VER_FILETYPE - file type
  35. // VER_FILEDESCRIPTION_STR - full product description.
  36. // SLBSCU_ROOT_PRODUCTNAME_STR - product name description which
  37. // will have the platform
  38. // description appended by this module.
  39. // VER_LEGALCOPYRIGHT_YEARS - string of the copyright years,
  40. // e.g. "1997-2000"
  41. //
  42. // The following defintions are optional:
  43. // VER_FILESUBTYPE - defaults to VFT2_UNKNOWN
  44. // VER_PRODUCTNAME_STR - defaults to VER_FILEDESCRIPTION_STR
  45. // with the platform.
  46. // _DEBUG - when defined, VER_DEBUG is set to
  47. // VS_FF_DEBUG, otherwise it's set to 0
  48. //
  49. //
  50. // The header file "scuOsVersion.h" is used to determine the
  51. // platform(s) the build is targeting. To restrict or override the
  52. // symbols defined in scuOsVersion.h, the following optional
  53. // definitions are recognized:
  54. // SLB_WIN95_BUILD - targeting Windows 95
  55. // SLB_WIN95SR2_BUILD - targeting Windows 95 Service Release 2
  56. // SLB_NOWIN95_BUILD - specifies that although the Platform SDK
  57. // macros may indicate Win95SR2,
  58. // neither Win95 nor Service Release 2
  59. // is being targeted.
  60. // SLB_WINNT_BUILD - targeting Windows NT
  61. // SLB_WIN2K_BUILD - targeting Windows 2000
  62. //
  63. // The following are defined by this header file:
  64. // VER_LEGALCOPYRIGHT_STR
  65. // VER_COMPANYNAME_STR
  66. // VER_LEGALTRADEMARKS_STR
  67. //
  68. // To override any of these, redefine them just after including this file.
  69. #ifndef SLBSCU_VERSION_H
  70. #define SLBSCU_VERSION_H
  71. #include <WinVer.h>
  72. #include <ntverp.h>
  73. #include "scuOsVersion.h"
  74. // If Schlumberger is building; otherwise Microsoft is building so don't
  75. // override their version numbers.
  76. #if defined(SLB_BUILD)
  77. #ifndef VER_PRODUCT_MAJOR
  78. #error VER_PRODUCT_MAJOR must be defined.
  79. #endif
  80. #ifndef VER_PRODUCT_MINOR
  81. #error VER_PRODUCT_MINOR must be defined.
  82. #endif
  83. #ifndef SLBSCU_BUILDCOUNT_NUM
  84. #error SLBSCU_BUILDCOUNT_NUM must be defined.
  85. #endif
  86. #ifdef VER_DEBUG
  87. #undef VER_DEBUG
  88. #endif
  89. #if _DEBUG
  90. #define VER_DEBUG VS_FF_DEBUG
  91. #else
  92. #define VER_DEBUG 0
  93. #endif
  94. #if (VER_PRODUCT_MINOR < 10)
  95. #define VER_PMNR_PAD "00"
  96. #elif (VER_PRODUCT_MINOR < 100)
  97. #define VER_PMNR_PAD "0"
  98. #elif
  99. #define VER_PMNR_PAD
  100. #endif
  101. #ifdef VER_PRODUCTBUILD
  102. #undef VER_PRODUCTBUILD
  103. #endif
  104. #define VER_PRODUCTBUILD SLBSCU_BUILDCOUNT_NUM
  105. #ifdef VER_BPAD
  106. #undef VER_BPAD
  107. #endif
  108. #if (VER_PRODUCTBUILD < 10)
  109. #define VER_BPAD "000"
  110. #elif (VER_PRODUCTBUILD < 100)
  111. #define VER_BPAD "00"
  112. #elif (VER_PRODUCTBUILD < 1000)
  113. #define VER_BPAD "0"
  114. #else
  115. #define VER_BPAD
  116. #endif
  117. #ifdef VER_PRODUCTVERSION_STRING
  118. #undef VER_PRODUCTVERSION_STRING
  119. #endif
  120. #define VER_PRODUCTVERSION_STRING2(x,y) #x "." VER_PMNR_PAD #y
  121. #define VER_PRODUCTVERSION_STRING1(x,y) VER_PRODUCTVERSION_STRING2(x, y)
  122. #define VER_PRODUCTVERSION_STRING VER_PRODUCTVERSION_STRING1(VER_PRODUCT_MAJOR, VER_PRODUCT_MINOR)
  123. #ifndef VER_FILESUBTYPE
  124. #define VER_FILESUBTYPE VFT2_UNKNOWN
  125. #endif
  126. // Force to use VER_PRODUCTVERSION
  127. #ifdef VER_FILEVERSION
  128. #undef VER_FILEVERSION
  129. #endif
  130. #ifdef VER_PRODUCTVERSION_STR
  131. #undef VER_PRODUCTVERSION_STR
  132. #endif
  133. #define VER_PRODUCTVERSION_STR VER_PRODUCTVERSION_STR1(VER_PRODUCTBUILD, VER_PRODUCTBUILD_QFE)
  134. #ifdef VER_PRODUCTVERSION
  135. #undef VER_PRODUCTVERSION
  136. #endif
  137. #define VER_PRODUCTVERSION VER_PRODUCT_MAJOR,VER_PRODUCT_MINOR,VER_PRODUCTBUILD,VER_PRODUCTBUILD_QFE
  138. #ifdef VER_PRODUCTVERSION_W
  139. #undef VER_PRODUCTVERSION_W
  140. #endif
  141. #define VER_PRODUCTVERSION_W (VER_PRODUCT_MAJOR##u)
  142. #ifdef VER_PRODUCTVERSION_DW
  143. #undef VER_PRODUCTVERSION_DW
  144. #endif
  145. #define VER_PRODUCTVERSION_DW (((VER_PRODUCT_MAJOR##ul) << 32) | (VER_PRODUCT_MINOR##ul))
  146. #ifdef VER_FILEVERSION_STR
  147. #undef VER_FILEVERSION_STR
  148. #endif
  149. #define VER_FILEVERSION_STR VER_PRODUCTVERSION_STR
  150. #endif // defined(SLB_BUILD)
  151. //
  152. // Common to both Schlumberger and Microsoft build procedures.
  153. //
  154. #ifndef VER_INTERNALNAME_STR
  155. #error VER_INTERNALNAME_STR must be defined.
  156. #endif
  157. #ifndef VER_FILETYPE
  158. #error VER_FILETYPE must be defined.
  159. #endif
  160. #ifndef VER_FILEDESCRIPTION_STR
  161. #error VER_FILEDESCRIPTION_STR must be defined.
  162. #endif
  163. #ifndef VER_LEGALCOPYRIGHT_YEARS
  164. #error VER_LEGALCOPYRIGHT_YEARS must be defined.
  165. #endif
  166. #ifdef VER_LEGALCOPYRIGHT_STR
  167. #undef VER_LEGALCOPYRIGHT_STR
  168. #endif
  169. #define VER_LEGALCOPYRIGHT_STR "� Copyright Schlumberger Technology Corp. "\
  170. VER_LEGALCOPYRIGHT_YEARS ". All Rights Reserved. "
  171. #ifdef VER_COMPANYNAME_STR
  172. #undef VER_COMPANYNAME_STR
  173. #endif
  174. #define VER_COMPANYNAME_STR "Schlumberger Technology Corporation"
  175. // Define the platform suffix to the product name description
  176. #if defined(SLB_WIN2K_BUILD)
  177. #define SLBSCU_WIN2K_PRODUCT_STR "2000"
  178. #endif
  179. #if defined(SLB_WINNT_BUILD)
  180. #if defined(SLBSCU_WIN2K_PRODUCT_STR)
  181. #define SLBSCU_WINNT_PRODUCT_STR "NT, "
  182. #else
  183. #define SLBSCU_WINNT_PRODUCT_STR "NT"
  184. #endif
  185. #endif
  186. #if defined(SLB_WIN98_BUILD)
  187. #if defined(SLBSCU_WINNT_PRODUCT_STR) || defined(SLBSCU_WIN2K_PRODUCT_STR)
  188. #define SLBSCU_WIN98_PRODUCT_STR "98, "
  189. #else
  190. #define SLBSCU_WIN98_PRODUCT_STR "98"
  191. #endif
  192. #endif
  193. #if defined(SLB_WIN95_BUILD) && SLBSCU_WIN95SR2_SERIES
  194. #if defined(SLBSCU_WIN98_PRODUCT_STR) || defined(SLBSCU_WINNT_PRODUCT_STR) || defined(SLBSCU_WIN2K_PRODUCT_STR)
  195. #define SLBSCU_WIN95_PRODUCT_STR "95SR2, "
  196. #else
  197. #define SLBSCU_WIN95_PRODUCT_STR "95SR2"
  198. #endif
  199. #endif
  200. #if defined(SLB_WIN95_BUILD) && SLBSCU_WIN95SIMPLE_SERIES
  201. #if defined(SLBSCU_WIN98_PRODUCT_STR) || defined(SLBSCU_WINNT_PRODUCT_STR) || defined(SLBSCU_WIN2K_PRODUCT_STR) || defined(SLBSCU_WIN95_PRODUCT_STR)
  202. #define SLBSCU_WIN95_PRODUCT_STR "95, "
  203. #else
  204. #define SLBSCU_WIN95_PRODUCT_STR "95"
  205. #endif
  206. #endif
  207. #ifndef SLBSCU_WIN2K_PRODUCT_STR
  208. #define SLBSCU_WIN2K_PRODUCT_STR ""
  209. #endif
  210. #ifndef SLBSCU_WINNT_PRODUCT_STR
  211. #define SLBSCU_WINNT_PRODUCT_STR ""
  212. #endif
  213. #ifndef SLBSCU_WIN98_PRODUCT_STR
  214. #define SLBSCU_WIN98_PRODUCT_STR ""
  215. #endif
  216. #ifndef SLBSCU_WIN95_PRODUCT_STR
  217. #define SLBSCU_WIN95_PRODUCT_STR ""
  218. #endif
  219. #if defined(VER_PRODUCTNAME_STR)
  220. #undef VER_PRODUCTNAME_STR
  221. #endif
  222. #if !defined(SLBSCU_ROOT_PRODUCTNAME_STR)
  223. #error SLBSCU_ROOT_PRODUCTNAME_STR must be defined.
  224. #else
  225. #if !defined(SLB_BUILD)
  226. #define SLBSCU_BUILD_SYSTEM_STR "(Microsoft Build)"
  227. #else
  228. #define SLBSCU_BUILD_SYSTEM_STR ""
  229. #endif
  230. #define SLBSCU_PLATFORM_STR " for Windows " \
  231. SLBSCU_WIN95_PRODUCT_STR \
  232. SLBSCU_WIN98_PRODUCT_STR \
  233. SLBSCU_WINNT_PRODUCT_STR \
  234. SLBSCU_WIN2K_PRODUCT_STR \
  235. SLBSCU_BUILD_SYSTEM_STR
  236. #define VER_PRODUCTNAME_STR SLBSCU_ROOT_PRODUCTNAME_STR \
  237. SLBSCU_PLATFORM_STR
  238. #endif // !defined(SLBSCU_ROOT_PRODUCTNAME_STR)
  239. #ifdef VER_LEGALTRADEMARKS_STR
  240. #undef VER_LEGALTRADEMARKS_STR
  241. #endif
  242. #define VER_LEGALTRADEMARKS_STR "Cyberflex Access, Cryptoflex and Cryptoflex e-gate are registered trademarks of Schlumberger Technology Corporation."
  243. #endif // SLBSCU_VERSION_H