/* \internal */ bool QFSFileEnginePrivate::nativeSeek(qint64 pos) { Q_Q(QFSFileEngine); if (fh || fd != -1) { // stdlib / stdio mode. return seekFdFh(pos); } #if !defined(Q_OS_WINCE) LARGE_INTEGER currentFilePos; LARGE_INTEGER offset; offset.QuadPart = pos; if (!::SetFilePointerEx(fileHandle, offset, ¤tFilePos, FILE_BEGIN)) { q->setError(QFile::UnspecifiedError, qt_error_string()); return false; } return true; #else DWORD newFilePointer; LARGE_INTEGER *li = reinterpret_cast<LARGE_INTEGER*>(&pos); newFilePointer = SetFilePointer(fileHandle, li->LowPart, &li->HighPart, FILE_BEGIN); if (newFilePointer == 0xFFFFFFFF && GetLastError() != NO_ERROR) { q->setError(QFile::PositionError, qt_error_string()); return false; } return true; #endif }
/*! \internal */ bool QFSFileEnginePrivate::nativeSeek(qint64 pos) { #ifdef Q_OS_SYMBIAN Q_Q(QFSFileEngine); if (symbianFile.SubSessionHandle()) { #ifndef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API if(pos > KMaxTInt) { q->setError(QFile::PositionError, QLatin1String("Maximum 2GB file position on this platform")); return false; } #endif symbianFilePos = pos; return true; } #endif return seekFdFh(pos); }
/*! \internal */ bool QFSFileEnginePrivate::nativeSeek(qint64 pos) { return seekFdFh(pos); }