Generating a temporary file name on Windows.
bool GetTempFileName(std::wstring& ws ) { ws.clear();//out TCHAR szTempFileName[MAX_PATH]; TCHAR lpTempPathBuffer[MAX_PATH]; char chBuffer[BUFSIZE]; // Gets the temp path env string (no guarantee it's a valid path). auto dwRetVal = GetTempPath(MAX_PATH, // length of the buffer lpTempPathBuffer); // buffer for path if (dwRetVal > MAX_PATH || (dwRetVal == 0)) { return false; } // Generates a temporary file name. auto uRetVal = GetTempFileName(lpTempPathBuffer, // directory for tmp files TEXT("DEMO"), // temp file name prefix 0, // create unique name szTempFileName); // buffer for name if (uRetVal == 0) { return false; } ws = szTempFileName; return true; }