The last parameter of CreateFile should be 0 (aka NULL), not -1.
CreateFile returns INVALID_HANDLE_VALUE when it fails, not
HFILE_ERROR.
Added comments.

diff --git a/files/file.c b/files/file.c
index b1b5a98..c967d48 100644
--- a/files/file.c
+++ b/files/file.c
@@ -180,6 +180,7 @@
  *           FILE_DupUnixHandle
  *
  * Duplicate a Unix handle into a task handle.
+ * Returns 0 on failure.
  */
 HANDLE FILE_DupUnixHandle( int fd, DWORD access )
 {
@@ -194,6 +195,7 @@
  *           FILE_GetUnixHandle
  *
  * Retrieve the Unix handle corresponding to a file handle.
+ * Returns -1 on failure.
  */
 int FILE_GetUnixHandle( HANDLE handle, DWORD access )
 {
@@ -677,7 +679,7 @@
         do
         {
             HFILE handle = CreateFileA( buffer, GENERIC_WRITE, 0, NULL,
-                                            CREATE_NEW, FILE_ATTRIBUTE_NORMAL, -1 );
+                                            CREATE_NEW, FILE_ATTRIBUTE_NORMAL, 0 );
             if (handle != INVALID_HANDLE_VALUE)
             {  /* We created it */
                 TRACE("created %s\n",
@@ -836,7 +838,7 @@
     {
         if ((hFileRet = CreateFileA( name, GENERIC_READ | GENERIC_WRITE,
                                        sharing, NULL, CREATE_ALWAYS,
-                                       FILE_ATTRIBUTE_NORMAL, -1 ))== INVALID_HANDLE_VALUE)
+                                       FILE_ATTRIBUTE_NORMAL, 0 ))== INVALID_HANDLE_VALUE)
             goto error;
         goto success;
     }
@@ -1304,7 +1306,7 @@
     TRACE("%s %02x\n", path, attr );
     return CreateFileA( path, GENERIC_READ | GENERIC_WRITE,
                         FILE_SHARE_READ | FILE_SHARE_WRITE, NULL,
-                        CREATE_ALWAYS, attr, -1 );
+                        CREATE_ALWAYS, attr, 0 );
 }
 
 
@@ -1389,7 +1391,7 @@
 
     TRACE("('%s',%04x)\n", path, mode );
     FILE_ConvertOFMode( mode, &access, &sharing );
-    return CreateFileA( path, access, sharing, NULL, OPEN_EXISTING, 0, -1 );
+    return CreateFileA( path, access, sharing, NULL, OPEN_EXISTING, 0, 0 );
 }
 
 
@@ -1808,7 +1810,7 @@
     mode = (info.dwFileAttributes & FILE_ATTRIBUTE_READONLY) ? 0444 : 0666;
     if ((h2 = CreateFileA( dest, GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL,
                              fail_if_exists ? CREATE_NEW : CREATE_ALWAYS,
-                             info.dwFileAttributes, h1 )) == HFILE_ERROR)
+                             info.dwFileAttributes, h1 )) == INVALID_HANDLE_VALUE)
     {
         CloseHandle( h1 );
         return FALSE;