Здравствуйте! Я перехватываю перемещение файла, в файле permission.txt через \n записаны пути до файлов, которые перемещать нельзя
Сейчас сильно остановился на больной для меня теме - кодировки. Не могу понять как взять строку из файла и сравнить ее с LPCWSTR:
BOOL WINAPI MyMoveFileExW(LPCWSTR lpExistingFileName, LPCWSTR lpNewFileName, DWORD dwFlags)
{
std::wstring lpEx(lpExistingFileName);
std::wifstream wif("C:\\cpp\\permission.txt", std::ios::binary);
if (wif.is_open())
{
wif.imbue(std::locale(wif.getloc(), new std::codecvt_utf8<wchar_t, 0x10ffff, std::consume_header>));
std::wstring wline;
while (std::getline(wif, wline))
{
if(wline == lpEx){
return FALSE;
}
}
wif.close();
}
BOOL retValue;
VirtualProtect((LPVOID)pOrigMBAddress_2, SIZE, myProtect_2, NULL); // assign read write protection
memcpy((LPVOID)pOrigMBAddress_2, oldBytes_2, SIZE); // restore backup
retValue = pOrigMBAddress_2(lpExistingFileName, lpNewFileName, dwFlags);
memcpy((LPVOID)pOrigMBAddress_2, JMP_2, SIZE); // set the jump instruction again
VirtualProtect((LPVOID)pOrigMBAddress_2, SIZE, oldProtect_2, NULL); // reset protection
return retValue;
}
Подскажите, пожалуйста, какой-нибудь вариант