/*--------------------------------------------------------------------------- | WINVER.C - Windows Version program | | History: | 03/08/89 Toddla Created | *--------------------------------------------------------------------------*/ #include #include #include #include #include #include #include "winverp.h" #include #include #ifndef ARRAYSIZE #define ARRAYSIZE(x) (sizeof(x) / sizeof(x[0])) #endif BOOL FileTimeToDateTimeString( LPFILETIME pft, LPTSTR pszBuf, UINT cchBuf) { SYSTEMTIME st; int cch; FileTimeToLocalFileTime(pft, pft); if (FileTimeToSystemTime(pft, &st)) { cch = GetDateFormat(LOCALE_USER_DEFAULT, DATE_SHORTDATE, &st, NULL, pszBuf, cchBuf); if (cch > 0) { cchBuf -= cch; pszBuf += cch - 1; *pszBuf++ = TEXT(' '); *pszBuf = 0; // (in case GetTimeFormat doesn't add anything) cchBuf--; GetTimeFormat(LOCALE_USER_DEFAULT, TIME_NOSECONDS, &st, NULL, pszBuf, cchBuf); return TRUE; } } return FALSE; } /*----------------------------------------------------------------------------*\ | WinMain( hInst, hPrev, lpszCmdLine, cmdShow ) | | | | Description: | | The main procedure for the App. After initializing, it just goes | | into a message-processing loop until it gets a WM_QUIT message | | (meaning the app was closed). | | | | Arguments: | | hInst instance handle of this instance of the app | | hPrev instance handle of previous instance, NULL if first | | lpszCmdLine ->null-terminated command line | | cmdShow specifies how the window is initially displayed | | | | Returns: | | The exit code as specified in the WM_QUIT message. | | | \*----------------------------------------------------------------------------*/ INT __cdecl ModuleEntry() { TCHAR szTitle[32]; LARGE_INTEGER Time = USER_SHARED_DATA->SystemExpirationDate; if (LoadString(GetModuleHandle(NULL), IDS_APPTITLE, szTitle, ARRAYSIZE(szTitle))) { if (Time.QuadPart) { TCHAR szExtra[128]; TCHAR szTime[128]; if (FileTimeToDateTimeString((PFILETIME)&Time, szTime, ARRAYSIZE(szTime)) && LoadString(GetModuleHandle(NULL), IDS_EVALUATION, szExtra, ARRAYSIZE(szExtra))) { StringCchCat(szExtra, ARRAYSIZE(szExtra), szTime); ShellAbout(NULL, szTitle, szExtra, NULL); } } else { ShellAbout(NULL, szTitle, NULL, NULL); } } return 0; }