static void SetSystemTime(System::DateTime dateTime) { LARGE_INTEGER largeInteger; largeInteger.QuadPart = dateTime.ToFileTimeUtc(); // "If your compiler has built-in support for 64-bit integers, use the QuadPart member to store the 64-bit integer." FILETIME fileTime; // "...copy the LowPart and HighPart members [of LARGE_INTEGER] into the FILETIME structure." fileTime.dwHighDateTime = largeInteger.HighPart; fileTime.dwLowDateTime = largeInteger.LowPart; SYSTEMTIME systemTime; if (FileTimeToSystemTime(&fileTime, &systemTime)) { if (::SetSystemTime(&systemTime)) { return; } } HRESULT hr = HRESULT_FROM_WIN32(GetLastError()); throw System::Runtime::InteropServices::Marshal::GetExceptionForHR(hr); }
CppClassWithMembers() : CreateDateTime(System::DateTime::Now) { }