In the process of program development, the conversion between different data is constantly encountered. Here is a summary:
I. Conversion between time types:
1. Convert time_t to FILETIME
FILETIME ft;
LONGLONG ll = Int32x32To64 (t, 10000000) + 116444736000000000;
Ft. dwLowDateTime = (DWORD) ll;
Ft. dwHighDateTime = (DWORD) (ll> 32 );
2. Convert FILETIME to time_t
FILETIME ft;
LONGLONG llTime;
Time_t t;
LlTime = (ft. dwHighDateTime <32) + ft. dwLowDateTime;
T = (DWORD) (LONGLONG) (Fig-116444736000000000)/10000000 );
3. SYSTEMTIME to FILETIME
FILETIME ft;
SYSTEMTIME st;
SystemTimeToFileTime (& st, & ft );
4. FILETIME to SYSTEMTIME
FILETIME ft;
SYSTEMTIME st;
FileTimeToSystemTime (& ft, & st );
5. Convert DATE to SYSTEMTIME
DATE pst;
SYSTEMTIME st;
VariantTimeToSystemTime (pst, & st );
6. Convert SYSTEMTIME to DATE
DATE pst;
SYSTEMTIME st;
SystemTimeToVariantTime (st, & pst );
7. BYTE to DWORD
# Define MAKEB2W (c0, c1, c2, c3) (DWORD) (BYTE) (c0) | (WORD) (BYTE) (c1 )) <8) | (DWORD) (BYTE) (c2) <16) | (DWORD) (BYTE) (c3 )) <24 )))