| 642 | // --------------------------------------------------------------------------- |
| 643 | |
| 644 | bool FileWin32::seek(unsigned long long offset, int whence) { |
| 645 | LONG dwMoveMethod, dwMoveHigh; |
| 646 | uint32_t nMoveLow; |
| 647 | LARGE_INTEGER li; |
| 648 | |
| 649 | switch (whence) { |
| 650 | case SEEK_CUR: |
| 651 | dwMoveMethod = FILE_CURRENT; |
| 652 | break; |
| 653 | case SEEK_END: |
| 654 | dwMoveMethod = FILE_END; |
| 655 | break; |
| 656 | case SEEK_SET: |
| 657 | default: |
| 658 | dwMoveMethod = FILE_BEGIN; |
| 659 | break; |
| 660 | } |
| 661 | |
| 662 | li.QuadPart = offset; |
| 663 | nMoveLow = li.LowPart; |
| 664 | dwMoveHigh = li.HighPart; |
| 665 | |
| 666 | SetLastError(0); |
| 667 | SetFilePointer(m_handle, nMoveLow, &dwMoveHigh, dwMoveMethod); |
| 668 | |
| 669 | return GetLastError() == NO_ERROR; |
| 670 | } |
| 671 | |
| 672 | // --------------------------------------------------------------------------- |
| 673 |
no test coverage detected