Add stub for LockFileEx (KERNEL32.513).
diff --git a/files/file.c b/files/file.c
index 91b8da8..a53a5a3 100644
--- a/files/file.c
+++ b/files/file.c
@@ -1915,6 +1915,36 @@
return !CLIENT_WaitReply( NULL, NULL, 0 );
}
+/**************************************************************************
+ * LockFileEx [KERNEL32.512]
+ *
+ * Locks a byte range within an open file for shared or exclusive access.
+ *
+ * RETURNS
+ * success: TRUE
+ * failure: FALSE
+ * NOTES
+ *
+ * Per Microsoft docs, the third parameter (reserved) must be set to 0.
+ */
+BOOL WINAPI LockFileEx( HANDLE hFile, DWORD flags, DWORD reserved,
+ DWORD nNumberOfBytesToLockLow, DWORD nNumberOfBytesToLockHigh,
+ LPOVERLAPPED pOverlapped )
+{
+ FIXME(file, "hFile=%d,flags=%ld,reserved=%ld,lowbytes=%ld,highbytes=%ld,overlapped=%p: stub.\n",
+ hFile, flags, reserved, nNumberOfBytesToLockLow, nNumberOfBytesToLockHigh,
+ pOverlapped);
+ if (reserved == 0)
+ SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
+ else
+ {
+ ERR(file, "reserved == %ld: Supposed to be 0??\n", reserved);
+ SetLastError(ERROR_INVALID_PARAMETER);
+ }
+
+ return FALSE;
+}
+
/**************************************************************************
* UnlockFile (KERNEL32.703)
diff --git a/include/winbase.h b/include/winbase.h
index 2579ad7..282c2a9 100644
--- a/include/winbase.h
+++ b/include/winbase.h
@@ -1369,6 +1369,7 @@
BOOL WINAPI IsValidLocale(DWORD,DWORD);
BOOL WINAPI LocalFileTimeToFileTime(const FILETIME*,LPFILETIME);
BOOL WINAPI LockFile(HFILE,DWORD,DWORD,DWORD,DWORD);
+BOOL WINAPI LockFileEx(HANDLE, DWORD, DWORD, DWORD, DWORD, LPOVERLAPPED);
HMODULE WINAPI MapHModuleSL(HMODULE16);
HMODULE16 WINAPI MapHModuleLS(HMODULE);
SEGPTR WINAPI MapLS(LPVOID);
diff --git a/relay32/kernel32.spec b/relay32/kernel32.spec
index 7eeb4ce..058fbbf 100644
--- a/relay32/kernel32.spec
+++ b/relay32/kernel32.spec
@@ -530,7 +530,7 @@
510 stdcall LocalSize(long) LocalSize
511 stdcall LocalUnlock(long) LocalUnlock
512 stdcall LockFile(long long long long long) LockFile
-513 stub LockFileEx
+513 stdcall LockFileEx(long long long long long ptr) LockFileEx
514 stdcall LockResource(long) LockResource
515 stdcall MakeCriticalSectionGlobal(ptr) MakeCriticalSectionGlobal
516 register MapHInstLS() MapHInstLS