MCPcopy Create free account
hub / github.com/derceg/explorerplusplus / CopyTextToFile

Method CopyTextToFile

Explorer++/Helper/DropHandler.cpp:1214–1274  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1212}
1213
1214HRESULT 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 }

Callers

nothing calls this directly

Calls 1

CreateFileTimeStringFunction · 0.85

Tested by

no test coverage detected