1 #include "qxtfilelock.h"
2 #include "qxtfilelock_p.h"
8 bool QxtFileLock::unlock()
10 if (file() && file()->isOpen() && isActive())
16 w32FileHandle = (HANDLE)_get_osfhandle(file()->handle());
17 if (w32FileHandle == INVALID_HANDLE_VALUE)
20 memset(&ov1,0, sizeof(ov1));
21 ov1.Offset = qxt_d().offset;
23 if (UnlockFileEx(w32FileHandle, 0, qxt_d().length, 0, &ov1))
25 qxt_d().isLocked = false;
32 bool QxtFileLock::lock ()
34 if (file() && file()->isOpen() && !isActive())
40 w32FileHandle = (HANDLE)_get_osfhandle(file()->handle());
41 if (w32FileHandle == INVALID_HANDLE_VALUE)
47 dwflags = LOCKFILE_FAIL_IMMEDIATELY;
55 dwflags = LOCKFILE_EXCLUSIVE_LOCK | LOCKFILE_FAIL_IMMEDIATELY;
59 dwflags = LOCKFILE_EXCLUSIVE_LOCK;
66 memset(&ov1, 0, sizeof(ov1));
67 ov1.Offset = qxt_d().offset;
69 if (LockFileEx(w32FileHandle,dwflags, 0, qxt_d().length, 0, &ov1))
71 qxt_d().isLocked = true;
79 bool QxtFileLock::unlock()
84 bool QxtFileLock::lock ()