// The function that returns the file size. If true is returned, the result is obtained successfully. The unit of i64FileSize is KBbool GetFileSize (std: wstring wstrFilePath, LONGLONG & i64FileSize) {DWORD dwFileLengthLowWord = 0; DWORD dwFileLengthHighWord = 0; HANDLE hFile = CreateFile (wstrFilePath. c_str (), GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_READONLY, NULL); if (hFile) {dwFileLengthLowWord =: GetFileSize (hFile, & dwFileLengthHighWord ); // close the file handle CloseHandle (hFile); if (dw FileLengthLowWord! = INVALID_FILE_SIZE) & (GetLastError ()! = NO_ERROR) {MessageBox (_ T ("An error occurred while obtaining the file size! "), _ T (" prompt "), MB_ OK); return false;} else {i64FileSize = (LONGLONG) dwFileLengthHighWord <32) | (LONGLONG) dwFileLengthLowWord ); i64FileSize = i64FileSize/1024;} else {MessageBox (_ T ("failed to open the file! "), _ T (" prompt "), MB_ OK); return false;} return true ;}