windows-nt/Source/XPSP1/NT/ds/security/csps/cryptoflex/slbscu/scurcversion.h
2020-09-26 16:20:57 +08:00

290 lines
9 KiB
C
Raw Blame History

// scuRcVersion.h -- Schlumberger Resource Versioning
// (c) Copyright Schlumberger Technology Corp., unpublished work, created
// 1998. This computer program includes Confidential, Proprietary
// Information and is a Trade Secret of Schlumberger Technology Corp. All
// use, disclosure, and/or reproduction is prohibited unless authorized
// in writing. All Rights Reserved.
// Common header file to include in resource (.rc) files for version
// definitions. This header file defines the product version, name,
// company information, etc. and supports components built in the
// Schlumberger Smart Card and Microsoft build environment
// If SLB_BUILD is defined, then it's assumed the package is being
// built by Schlumberger in which case a custom set of versioning
// information is (re)defined. Otherwise it's being built by
// Microsoft for Windows 2000, so the default version numbering is
// used and "(Microsoft Build)" appears in product version string.
// To use, do the following in the package's resource file,
// 1. define the macros as described below
// 2. include this file
// 3. include <common.ver> provided by Microsoft
//
// Then the version resource information should be created as desired
// when compiling.
//
// When Schlumberger is building, the following must be defined:
// VER_PRODUCT_MAJOR - major version number
// VER_PRODUCT_MINOR - minor version number, less than 1,000.
// SLBSCU_BUILDCOUNT_NUM - build number, less than 10,000.
//
// SLBSCU_BUILDCOUNT_NUM could be defined in terms of BUILDCOUNT_NUM
// defined by AutoBuildCount.h. In which case, AutoBuildCount.h would be
// included before this file.
// To build on all platforms, the following must be defined:
// VER_INTERNALNAME_STR - name of the DLL, LIB, or EXE
// VER_FILETYPE - file type
// VER_FILEDESCRIPTION_STR - full product description.
// SLBSCU_ROOT_PRODUCTNAME_STR - product name description which
// will have the platform
// description appended by this module.
// VER_LEGALCOPYRIGHT_YEARS - string of the copyright years,
// e.g. "1997-2000"
//
// The following defintions are optional:
// VER_FILESUBTYPE - defaults to VFT2_UNKNOWN
// VER_PRODUCTNAME_STR - defaults to VER_FILEDESCRIPTION_STR
// with the platform.
// _DEBUG - when defined, VER_DEBUG is set to
// VS_FF_DEBUG, otherwise it's set to 0
//
//
// The header file "scuOsVersion.h" is used to determine the
// platform(s) the build is targeting. To restrict or override the
// symbols defined in scuOsVersion.h, the following optional
// definitions are recognized:
// SLB_WIN95_BUILD - targeting Windows 95
// SLB_WIN95SR2_BUILD - targeting Windows 95 Service Release 2
// SLB_NOWIN95_BUILD - specifies that although the Platform SDK
// macros may indicate Win95SR2,
// neither Win95 nor Service Release 2
// is being targeted.
// SLB_WINNT_BUILD - targeting Windows NT
// SLB_WIN2K_BUILD - targeting Windows 2000
//
// The following are defined by this header file:
// VER_LEGALCOPYRIGHT_STR
// VER_COMPANYNAME_STR
// VER_LEGALTRADEMARKS_STR
//
// To override any of these, redefine them just after including this file.
#ifndef SLBSCU_VERSION_H
#define SLBSCU_VERSION_H
#include <WinVer.h>
#include <ntverp.h>
#include "scuOsVersion.h"
// If Schlumberger is building; otherwise Microsoft is building so don't
// override their version numbers.
#if defined(SLB_BUILD)
#ifndef VER_PRODUCT_MAJOR
#error VER_PRODUCT_MAJOR must be defined.
#endif
#ifndef VER_PRODUCT_MINOR
#error VER_PRODUCT_MINOR must be defined.
#endif
#ifndef SLBSCU_BUILDCOUNT_NUM
#error SLBSCU_BUILDCOUNT_NUM must be defined.
#endif
#ifdef VER_DEBUG
#undef VER_DEBUG
#endif
#if _DEBUG
#define VER_DEBUG VS_FF_DEBUG
#else
#define VER_DEBUG 0
#endif
#if (VER_PRODUCT_MINOR < 10)
#define VER_PMNR_PAD "00"
#elif (VER_PRODUCT_MINOR < 100)
#define VER_PMNR_PAD "0"
#elif
#define VER_PMNR_PAD
#endif
#ifdef VER_PRODUCTBUILD
#undef VER_PRODUCTBUILD
#endif
#define VER_PRODUCTBUILD SLBSCU_BUILDCOUNT_NUM
#ifdef VER_BPAD
#undef VER_BPAD
#endif
#if (VER_PRODUCTBUILD < 10)
#define VER_BPAD "000"
#elif (VER_PRODUCTBUILD < 100)
#define VER_BPAD "00"
#elif (VER_PRODUCTBUILD < 1000)
#define VER_BPAD "0"
#else
#define VER_BPAD
#endif
#ifdef VER_PRODUCTVERSION_STRING
#undef VER_PRODUCTVERSION_STRING
#endif
#define VER_PRODUCTVERSION_STRING2(x,y) #x "." VER_PMNR_PAD #y
#define VER_PRODUCTVERSION_STRING1(x,y) VER_PRODUCTVERSION_STRING2(x, y)
#define VER_PRODUCTVERSION_STRING VER_PRODUCTVERSION_STRING1(VER_PRODUCT_MAJOR, VER_PRODUCT_MINOR)
#ifndef VER_FILESUBTYPE
#define VER_FILESUBTYPE VFT2_UNKNOWN
#endif
// Force to use VER_PRODUCTVERSION
#ifdef VER_FILEVERSION
#undef VER_FILEVERSION
#endif
#ifdef VER_PRODUCTVERSION_STR
#undef VER_PRODUCTVERSION_STR
#endif
#define VER_PRODUCTVERSION_STR VER_PRODUCTVERSION_STR1(VER_PRODUCTBUILD, VER_PRODUCTBUILD_QFE)
#ifdef VER_PRODUCTVERSION
#undef VER_PRODUCTVERSION
#endif
#define VER_PRODUCTVERSION VER_PRODUCT_MAJOR,VER_PRODUCT_MINOR,VER_PRODUCTBUILD,VER_PRODUCTBUILD_QFE
#ifdef VER_PRODUCTVERSION_W
#undef VER_PRODUCTVERSION_W
#endif
#define VER_PRODUCTVERSION_W (VER_PRODUCT_MAJOR##u)
#ifdef VER_PRODUCTVERSION_DW
#undef VER_PRODUCTVERSION_DW
#endif
#define VER_PRODUCTVERSION_DW (((VER_PRODUCT_MAJOR##ul) << 32) | (VER_PRODUCT_MINOR##ul))
#ifdef VER_FILEVERSION_STR
#undef VER_FILEVERSION_STR
#endif
#define VER_FILEVERSION_STR VER_PRODUCTVERSION_STR
#endif // defined(SLB_BUILD)
//
// Common to both Schlumberger and Microsoft build procedures.
//
#ifndef VER_INTERNALNAME_STR
#error VER_INTERNALNAME_STR must be defined.
#endif
#ifndef VER_FILETYPE
#error VER_FILETYPE must be defined.
#endif
#ifndef VER_FILEDESCRIPTION_STR
#error VER_FILEDESCRIPTION_STR must be defined.
#endif
#ifndef VER_LEGALCOPYRIGHT_YEARS
#error VER_LEGALCOPYRIGHT_YEARS must be defined.
#endif
#ifdef VER_LEGALCOPYRIGHT_STR
#undef VER_LEGALCOPYRIGHT_STR
#endif
#define VER_LEGALCOPYRIGHT_STR "<22> Copyright Schlumberger Technology Corp. "\
VER_LEGALCOPYRIGHT_YEARS ". All Rights Reserved. "
#ifdef VER_COMPANYNAME_STR
#undef VER_COMPANYNAME_STR
#endif
#define VER_COMPANYNAME_STR "Schlumberger Technology Corporation"
// Define the platform suffix to the product name description
#if defined(SLB_WIN2K_BUILD)
#define SLBSCU_WIN2K_PRODUCT_STR "2000"
#endif
#if defined(SLB_WINNT_BUILD)
#if defined(SLBSCU_WIN2K_PRODUCT_STR)
#define SLBSCU_WINNT_PRODUCT_STR "NT, "
#else
#define SLBSCU_WINNT_PRODUCT_STR "NT"
#endif
#endif
#if defined(SLB_WIN98_BUILD)
#if defined(SLBSCU_WINNT_PRODUCT_STR) || defined(SLBSCU_WIN2K_PRODUCT_STR)
#define SLBSCU_WIN98_PRODUCT_STR "98, "
#else
#define SLBSCU_WIN98_PRODUCT_STR "98"
#endif
#endif
#if defined(SLB_WIN95_BUILD) && SLBSCU_WIN95SR2_SERIES
#if defined(SLBSCU_WIN98_PRODUCT_STR) || defined(SLBSCU_WINNT_PRODUCT_STR) || defined(SLBSCU_WIN2K_PRODUCT_STR)
#define SLBSCU_WIN95_PRODUCT_STR "95SR2, "
#else
#define SLBSCU_WIN95_PRODUCT_STR "95SR2"
#endif
#endif
#if defined(SLB_WIN95_BUILD) && SLBSCU_WIN95SIMPLE_SERIES
#if defined(SLBSCU_WIN98_PRODUCT_STR) || defined(SLBSCU_WINNT_PRODUCT_STR) || defined(SLBSCU_WIN2K_PRODUCT_STR) || defined(SLBSCU_WIN95_PRODUCT_STR)
#define SLBSCU_WIN95_PRODUCT_STR "95, "
#else
#define SLBSCU_WIN95_PRODUCT_STR "95"
#endif
#endif
#ifndef SLBSCU_WIN2K_PRODUCT_STR
#define SLBSCU_WIN2K_PRODUCT_STR ""
#endif
#ifndef SLBSCU_WINNT_PRODUCT_STR
#define SLBSCU_WINNT_PRODUCT_STR ""
#endif
#ifndef SLBSCU_WIN98_PRODUCT_STR
#define SLBSCU_WIN98_PRODUCT_STR ""
#endif
#ifndef SLBSCU_WIN95_PRODUCT_STR
#define SLBSCU_WIN95_PRODUCT_STR ""
#endif
#if defined(VER_PRODUCTNAME_STR)
#undef VER_PRODUCTNAME_STR
#endif
#if !defined(SLBSCU_ROOT_PRODUCTNAME_STR)
#error SLBSCU_ROOT_PRODUCTNAME_STR must be defined.
#else
#if !defined(SLB_BUILD)
#define SLBSCU_BUILD_SYSTEM_STR "(Microsoft Build)"
#else
#define SLBSCU_BUILD_SYSTEM_STR ""
#endif
#define SLBSCU_PLATFORM_STR " for Windows " \
SLBSCU_WIN95_PRODUCT_STR \
SLBSCU_WIN98_PRODUCT_STR \
SLBSCU_WINNT_PRODUCT_STR \
SLBSCU_WIN2K_PRODUCT_STR \
SLBSCU_BUILD_SYSTEM_STR
#define VER_PRODUCTNAME_STR SLBSCU_ROOT_PRODUCTNAME_STR \
SLBSCU_PLATFORM_STR
#endif // !defined(SLBSCU_ROOT_PRODUCTNAME_STR)
#ifdef VER_LEGALTRADEMARKS_STR
#undef VER_LEGALTRADEMARKS_STR
#endif
#define VER_LEGALTRADEMARKS_STR "Cyberflex Access, Cryptoflex and Cryptoflex e-gate are registered trademarks of Schlumberger Technology Corporation."
#endif // SLBSCU_VERSION_H