Code/Resource
Windows Develop
Linux-Unix program
Internet-Socket-Network
Web Server
Browser Client
Ftp Server
Ftp Client
Browser Plugins
Proxy Server
Email Server
Email Client
WEB Mail
Firewall-Security
Telnet Server
Telnet Client
ICQ-IM-Chat
Search Engine
Sniffer Package capture
Remote Control
xml-soap-webservice
P2P
WEB(ASP,PHP,...)
TCP/IP Stack
SNMP
Grid Computing
SilverLight
DNS
Cluster Service
Network Security
Communication-Mobile
Game Program
Editor
Multimedia program
Graph program
Compiler program
Compress-Decompress algrithms
Crypt_Decrypt algrithms
Mathimatics-Numerical algorithms
MultiLanguage
Disk/Storage
Java Develop
assembly language
Applications
Other systems
Database system
Embeded-SCM Develop
FlashMX/Flex
source in ebook
Delphi VCL
OS Develop
MiddleWare
MPI
MacOS develop
LabView
ELanguage
Software/Tools
E-Books
Artical/Document
filetime.h
Package: shell.rar [view]
Upload User: xhy777
Upload Date: 2007-02-14
Package Size: 24088k
Code Size: 5k
Category:
Windows Kernel
Development Platform:
Visual C++
- #ifndef _FILETIME_H_
- #define _FILETIME_H_
- //**************************************************************************
- // NOTE: This file is duplicated in urlmon and webcheck. If you make
- // changes please sync them!
- //**************************************************************************
- #define MAKEINT64(lo, hi) ((__int64)(((DWORD)(lo)) | ((__int64)((DWORD)(hi))) << 32))
- #ifndef LODWORD
- #define LODWORD(i) ((DWORD)(i))
- #endif
- #ifndef HIDWORD
- #define HIDWORD(i) ((DWORD)(((__int64)(i) >> 32) & 0xFFFFFFFF))
- #endif
- // This is Monday, January 1, 1601 at 12:00:00 am
- #define MIN_FILETIME 0i64
- // This is Thursday, September 14, 30828 at 2:48:05 am
- #define MAX_FILETIME 0x7FFFFFFFFFFFFFFFi64
- // For clarity since FILETIME is expressed as 100-nanosecond intervals
- #define ONE_SECOND_IN_FILETIME 10000000i64
- #define ONE_MSEC_IN_FILEITME 10000i64
- #define ONE_MINUTE_IN_FILETIME (ONE_SECOND_IN_FILETIME * 60i64)
- struct CFileTime : public FILETIME
- {
- // Constructors
- CFileTime() { *this = 0; }
- CFileTime(const FILETIME& f) { *this = f; }
- CFileTime(const CFileTime& f) { *this = f; }
- CFileTime(__int64 i) { *this = i; }
- // Assignment operators
- inline CFileTime& operator = (const FILETIME& f)
- {
- dwLowDateTime = f.dwLowDateTime;
- dwHighDateTime = f.dwHighDateTime;
- return *this;
- }
- inline CFileTime& operator = (const CFileTime& f)
- {
- dwLowDateTime = f.dwLowDateTime;
- dwHighDateTime = f.dwHighDateTime;
- return *this;
- }
- inline CFileTime& operator = (__int64 i)
- {
- dwLowDateTime = LODWORD(i);
- dwHighDateTime = HIDWORD(i);
- return *this;
- }
- // Comparison operators
- inline BOOL operator == (__int64 i)
- {
- return MAKEINT64(dwLowDateTime, dwHighDateTime) == i;
- }
- inline BOOL operator > (__int64 i)
- {
- return MAKEINT64(dwLowDateTime, dwHighDateTime) > i;
- }
- inline BOOL operator < (__int64 i)
- {
- return MAKEINT64(dwLowDateTime, dwHighDateTime) < i;
- }
- inline BOOL operator != (__int64 i)
- {
- return !(*this == i);
- }
- inline BOOL operator >= (__int64 i)
- {
- return !(*this < i);
- }
- inline BOOL operator <= (__int64 i)
- {
- return !(*this > i);
- }
- inline BOOL operator == (const FILETIME& f)
- {
- return *this == MAKEINT64(f.dwLowDateTime, f.dwHighDateTime);
- }
- inline BOOL operator > (const FILETIME& f)
- {
- return *this > MAKEINT64(f.dwLowDateTime, f.dwHighDateTime);
- }
- inline BOOL operator < (const FILETIME& f)
- {
- return *this < MAKEINT64(f.dwLowDateTime, f.dwHighDateTime);
- }
- inline BOOL operator != (const FILETIME& f)
- {
- return !(*this == f);
- }
- inline BOOL operator >= (const FILETIME& f)
- {
- return !(*this < f);
- }
- inline BOOL operator <= (const FILETIME& f)
- {
- return !(*this > f);
- }
- // Arithemetic operators
- inline CFileTime operator + (__int64 i)
- {
- return CFileTime(MAKEINT64(dwLowDateTime, dwHighDateTime) + i);
- }
- inline CFileTime operator += (__int64 i)
- {
- *this = *this + i;
- return *this;
- }
- inline CFileTime operator - (__int64 i)
- {
- return CFileTime(MAKEINT64(dwLowDateTime, dwHighDateTime) - i);
- }
- inline CFileTime operator -= (__int64 i)
- {
- *this = *this - i;
- return *this;
- }
- inline CFileTime operator * (__int64 i)
- {
- return CFileTime(MAKEINT64(dwLowDateTime, dwHighDateTime) * i);
- }
- inline CFileTime operator *= (__int64 i)
- {
- *this = *this * i;
- return *this;
- }
- inline CFileTime operator / (__int64 i)
- {
- return CFileTime(MAKEINT64(dwLowDateTime, dwHighDateTime) / i);
- }
- inline CFileTime operator /= (__int64 i)
- {
- *this = *this / i;
- return *this;
- }
- inline CFileTime operator + (const FILETIME& f)
- {
- return *this + MAKEINT64(f.dwLowDateTime, f.dwHighDateTime);
- }
- inline CFileTime operator += (const FILETIME& f)
- {
- *this = *this + f;
- return *this;
- }
- inline CFileTime operator - (const FILETIME& f)
- {
- return *this - MAKEINT64(f.dwLowDateTime, f.dwHighDateTime);
- }
- inline CFileTime operator -= (const FILETIME& f)
- {
- *this = *this - f;
- return *this;
- }
- inline CFileTime operator * (const FILETIME& f)
- {
- return *this * MAKEINT64(f.dwLowDateTime, f.dwHighDateTime);
- }
- inline CFileTime operator *= (const FILETIME& f)
- {
- *this = *this * f;
- return *this;
- }
- inline CFileTime operator / (const FILETIME& f)
- {
- return *this / MAKEINT64(f.dwLowDateTime, f.dwHighDateTime);
- }
- inline CFileTime operator /= (const FILETIME& f)
- {
- *this = *this / f;
- return *this;
- }
- };
- //
- // Conversions
- // NOTE: We can't do want operator __int64() since what causes to many
- // ambiguous situations that the compiler just can't handle.
- //
- inline __int64 FileTimeToInt64(const FILETIME& f)
- {
- return MAKEINT64(f.dwLowDateTime, f.dwHighDateTime);
- }
- #endif