static BOOL IniEncodingFix(LPWSTR aFilespec, LPWSTR aSection) { BOOL result = TRUE; if (!DoesFilePatternExist(aFilespec)) { HANDLE hFile; DWORD dwWritten; // Create a Unicode file. (UTF-16LE BOM) hFile = CreateFile(aFilespec, GENERIC_WRITE, 0, NULL, CREATE_NEW, 0, NULL); if (hFile != INVALID_HANDLE_VALUE) { DWORD cc = (DWORD)wcslen(aSection); DWORD cb = (cc + 1) * sizeof(WCHAR); aSection[cc] = ']'; // Temporarily replace the null-terminator. // Write a UTF-16LE BOM to identify this as a Unicode file. // Write [%aSection%] to prevent WritePrivateProfileString from inserting an empty line (for consistency and style). if ( !WriteFile(hFile, L"\xFEFF[", 4, &dwWritten, NULL) || dwWritten != 4 || !WriteFile(hFile, aSection, cb, &dwWritten, NULL) || dwWritten != cb ) result = FALSE; if (!CloseHandle(hFile)) result = FALSE; aSection[cc] = '\0'; // Re-terminate. } } return result; }
static BOOL IniEncodingFix(LPTSTR aFilespec){ if(!DoesFilePatternExist(aFilespec)){ HANDLE hFile; DWORD dwWritten; // Create an Unicode file. (UTF-16LE BOM) hFile = CreateFile(aFilespec, GENERIC_WRITE, 0, NULL, CREATE_NEW, 0, NULL); if(hFile == INVALID_HANDLE_VALUE) return FALSE; if(!WriteFile(hFile, "\xFF\xFE", 2, &dwWritten, NULL) || dwWritten != 2){ CloseHandle(hFile); return FALSE; } if(!CloseHandle(hFile)){ return FALSE; } } return TRUE; }