| 627 | char mBuffer[0x10000]; |
| 628 | |
| 629 | void Monitor() |
| 630 | { |
| 631 | mOverlapped = { 0 }; |
| 632 | |
| 633 | DWORD filter = FILE_NOTIFY_CHANGE_LAST_WRITE | FILE_NOTIFY_CHANGE_FILE_NAME | FILE_NOTIFY_CHANGE_DIR_NAME | FILE_NOTIFY_CHANGE_ATTRIBUTES | FILE_NOTIFY_CHANGE_SECURITY; |
| 634 | |
| 635 | DWORD size; |
| 636 | DWORD success = ::ReadDirectoryChangesW(mHandle, |
| 637 | mBuffer, 0x10000, |
| 638 | (mFlags & BfpFileWatcherFlag_IncludeSubdirectories) != 0, |
| 639 | filter, |
| 640 | &size, |
| 641 | &mOverlapped, |
| 642 | NULL); |
| 643 | if (!success) |
| 644 | { |
| 645 | mDirectoryChangeFunc(this, mUserData, BfpFileChangeKind_Failed, mPath.c_str(), NULL, NULL); |
| 646 | } |
| 647 | } |
| 648 | |
| 649 | void Restart() |
| 650 | { |
no test coverage detected