| 1212 | } |
| 1213 | |
| 1214 | HRESULT DropHandler::CopyTextToFile(const TCHAR *pszDestDirectory, |
| 1215 | const WCHAR *pszText,TCHAR *pszFullFileNameOut, size_t outLen) |
| 1216 | { |
| 1217 | SYSTEMTIME st; |
| 1218 | FILETIME ft; |
| 1219 | FILETIME lft; |
| 1220 | HRESULT hr = E_FAIL; |
| 1221 | TCHAR szTime[512]; |
| 1222 | |
| 1223 | GetLocalTime(&st); |
| 1224 | SystemTimeToFileTime(&st,&ft); |
| 1225 | LocalFileTimeToFileTime(&ft,&lft); |
| 1226 | CreateFileTimeString(&lft,szTime,SIZEOF_ARRAY(szTime),FALSE); |
| 1227 | |
| 1228 | for(int i = 0;i < lstrlen(szTime);i++) |
| 1229 | { |
| 1230 | if(szTime[i] == '/') |
| 1231 | { |
| 1232 | szTime[i] = '-'; |
| 1233 | } |
| 1234 | else if(szTime[i] == ':') |
| 1235 | { |
| 1236 | szTime[i] = '.'; |
| 1237 | } |
| 1238 | } |
| 1239 | |
| 1240 | TCHAR szFullFileName[MAX_PATH]; |
| 1241 | TCHAR szFileName[MAX_PATH]; |
| 1242 | |
| 1243 | /* TODO: Move text into string table. */ |
| 1244 | StringCchPrintf(szFileName,SIZEOF_ARRAY(szFileName), |
| 1245 | _T("Clipboard Text (%s).txt"),szTime); |
| 1246 | |
| 1247 | PathCombine(szFullFileName,pszDestDirectory, |
| 1248 | szFileName); |
| 1249 | |
| 1250 | HANDLE hFile = CreateFile(szFullFileName, |
| 1251 | GENERIC_WRITE,0,NULL,CREATE_NEW, |
| 1252 | FILE_ATTRIBUTE_NORMAL,NULL); |
| 1253 | |
| 1254 | if(hFile != INVALID_HANDLE_VALUE) |
| 1255 | { |
| 1256 | DWORD nBytesWritten; |
| 1257 | |
| 1258 | /* UTF-16 LE BOM. */ |
| 1259 | WriteFile(hFile,reinterpret_cast<LPCVOID>("\xFF\xFE"),2, |
| 1260 | &nBytesWritten,NULL); |
| 1261 | |
| 1262 | WriteFile(hFile,(LPCVOID)pszText, |
| 1263 | lstrlen(pszText) * sizeof(WCHAR), |
| 1264 | &nBytesWritten,NULL); |
| 1265 | |
| 1266 | CloseHandle(hFile); |
| 1267 | |
| 1268 | StringCchCopy(pszFullFileNameOut,outLen,szFullFileName); |
| 1269 | |
| 1270 | hr = S_OK; |
| 1271 | } |
nothing calls this directly
no test coverage detected