windows-nt/Source/XPSP1/NT/admin/admt/setdtct/common.hpp
2020-09-26 16:20:57 +08:00

109 lines
3.5 KiB
C++

//#pragma title( "Common.hpp - Common classes of general utility" )
/*
Copyright (c) 1995-1998, Mission Critical Software, Inc. All rights reserved.
===============================================================================
Module - Common.hpp
System - Common
Author - Tom Bernhardt, Rich Denham
Created - 1994-08-22
Description - Common classes of general utility.
Updates - 1997-09-12 RED replace TTime class
===============================================================================
*/
#ifndef MCSINC_Common_hpp
#define MCSINC_Common_hpp
// Start of header file dependencies
#ifndef _INC_LIMITS
#include <limits.h>
#endif
#ifndef _INC_STDIO
#include <stdio.h>
#endif
#ifndef _INC_TIME
#include <time.h>
#endif
#ifndef MCSINC_Mcs_h
#include "Mcs.h"
#endif
// End of header file dependencies
#define SECS(n) (n * 1000)
#define DIM(array) (sizeof (array) / sizeof (array[0]))
#ifdef UNICODE
typedef unsigned short UTCHAR;
#define UTEXT(quote) ((unsigned short *) (L##quote))
#else
typedef unsigned char UTCHAR;
#define UTEXT(quote) ((unsigned char *) (quote))
#endif // UNICODE
#define UnNull(ptr) ( (ptr) ? (ptr) : (UCHAR *) "" )
#define DAYSECS (24*60*60)
class TTime
{
private:
protected:
public:
time_t Now( // ret-current time
time_t * pTime // out-optional current time
) const;
#ifndef WIN16_VERSION
__int64 NowAsFiletime( // ret-current time
__int64 * pTime // out-optional current time
) const;
time_t ConvertFiletimeToTimet( // ret-time_t representation
__int64 fileTime // in -filetime representation
) const;
#endif // WIN16_VERSION
WCHAR * FormatIsoUtc( // ret-YYYY-MM-DD HH:MM:SS string
time_t tTime ,// in -time_t representation
WCHAR * sTime // out-YYYY-MM-DD HH:MM:SS string
) const;
WCHAR * FormatIsoLcl( // ret-YYYY-MM-DD HH:MM:SS string
time_t tTime ,// in -time_t representation
WCHAR * sTime // out-YYYY-MM-DD HH:MM:SS string
) const;
};
extern
TTime gTTime; // global instance of TTime
#ifndef WIN16_VERSION
__int64 // ret-numeric value of string
TextToInt64(
TCHAR const * str ,// in-string value to parse
__int64 minVal ,// in -min allowed value for result
__int64 maxVal ,// in -max allowed value for result
char const ** errMsg // out-error message pointer or NULL
);
#endif // WIN16_VERSION
typedef struct EaTimeZoneInfo
{ // all values are in seconds
long bias; // time zone bias
long dst; // daylight savings time bias
long biasdst; // time zone bias including possible DST
} EaTimeZoneInfo;
// Return time zone information
// If the returned value is TRUE, the EaTimeZoneInfo structure is filled in
// If the returned value is FALSE, the EaTimeZoneInfo structure is all zeroes
// Note: UTC (gTTime.Now( NULL )) minus pTimeZoneInfo->biasdst is the local date/time
BOOL
EaGetTimeZoneInfo(
EaTimeZoneInfo * pTimeZoneInfo // in -time zone information
);
#endif // MCSINC_Common_hpp
// Common.hpp - end of file