| 478 | |
| 479 | #if defined(_WIN_ALL) && !defined(SFX_MODULE) |
| 480 | bool SetFileCompression(const wchar *Name,bool State) |
| 481 | { |
| 482 | HANDLE hFile=CreateFile(Name,FILE_READ_DATA|FILE_WRITE_DATA, |
| 483 | FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_EXISTING, |
| 484 | FILE_FLAG_BACKUP_SEMANTICS|FILE_FLAG_SEQUENTIAL_SCAN,NULL); |
| 485 | if (hFile==INVALID_HANDLE_VALUE) |
| 486 | { |
| 487 | wchar LongName[NM]; |
| 488 | if (GetWinLongPath(Name,LongName,ASIZE(LongName))) |
| 489 | hFile=CreateFile(LongName,FILE_READ_DATA|FILE_WRITE_DATA, |
| 490 | FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_EXISTING, |
| 491 | FILE_FLAG_BACKUP_SEMANTICS|FILE_FLAG_SEQUENTIAL_SCAN,NULL); |
| 492 | } |
| 493 | if (hFile==INVALID_HANDLE_VALUE) |
| 494 | return false; |
| 495 | SHORT NewState=State ? COMPRESSION_FORMAT_DEFAULT:COMPRESSION_FORMAT_NONE; |
| 496 | DWORD Result; |
| 497 | int RetCode=DeviceIoControl(hFile,FSCTL_SET_COMPRESSION,&NewState, |
| 498 | sizeof(NewState),NULL,0,&Result,NULL); |
| 499 | CloseHandle(hFile); |
| 500 | return RetCode!=0; |
| 501 | } |
| 502 | #endif |
| 503 | |
| 504 |
no test coverage detected