GetFileSizeEx
Rob Crittenden <[email protected]> Wed, 28 Jun 2006 16:35:36 -0400
| Newsgroups | gmane.comp.emulators.winex.devel |
|---|---|
| Message-ID | <[email protected]> |
This is a multi-part message in MIME format.
--------------020803020806050709000101
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Another easy one, GetFileSizeEx(). I modified GetFileSize() to call this.
rob
--------------020803020806050709000101
Content-Type: text/x-diff;
name="getsize.diff"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="getsize.diff"
Index: dlls/kernel/kernel32.spec
===================================================================
RCS file: /cvsroot/winex/dlls/kernel/kernel32.spec,v
retrieving revision 1.8
diff -u -r1.8 kernel32.spec
--- dlls/kernel/kernel32.spec 15 Nov 2004 15:35:11 -0000 1.8
+++ dlls/kernel/kernel32.spec 28 Jun 2006 19:33:05 -0000
@@ -380,7 +380,7 @@
@ stdcall GetFileAttributesW(wstr) GetFileAttributesW
@ stdcall GetFileInformationByHandle(long ptr) GetFileInformationByHandle
@ stdcall GetFileSize(long ptr) GetFileSize
-@ stub GetFileSizeEx
+@ stdcall GetFileSizeEx(long ptr) GetFileSizeEx
@ stdcall GetFileTime(long ptr ptr ptr) GetFileTime
@ stdcall GetFileType(long) GetFileType
@ stdcall GetFullPathNameA(str long ptr ptr) GetFullPathNameA
Index: files/file.c
===================================================================
RCS file: /cvsroot/winex/files/file.c,v
retrieving revision 1.31
diff -u -r1.31 file.c
--- files/file.c 9 Jan 2006 18:26:25 -0000 1.31
+++ files/file.c 28 Jun 2006 19:33:08 -0000
@@ -894,14 +894,29 @@
/***********************************************************************
+ * GetFileSizeEx (KERNEL32.@)
+ */
+BOOL WINAPI GetFileSizeEx( HANDLE hFile, PLARGE_INTEGER lpFileSize )
+{
+ BY_HANDLE_FILE_INFORMATION info;
+ if (!GetFileInformationByHandle( hFile, &info )) return FALSE;
+ lpFileSize->u.HighPart = info.nFileSizeHigh;
+ lpFileSize->u.LowPart = info.nFileSizeLow;
+ return TRUE;
+}
+
+
+/***********************************************************************
* GetFileSize (KERNEL32.@)
*/
DWORD WINAPI GetFileSize( HANDLE hFile, LPDWORD filesizehigh )
{
- BY_HANDLE_FILE_INFORMATION info;
- if (!GetFileInformationByHandle( hFile, &info )) return -1;
- if (filesizehigh) *filesizehigh = info.nFileSizeHigh;
- return info.nFileSizeLow;
+ LARGE_INTEGER filesize;
+ if (GetFileSizeEx(hFile, &filesize) == FALSE)
+ return INVALID_FILE_SIZE;
+ if (filesizehigh)
+ *filesizehigh = filesize.u.HighPart;
+ return filesize.u.LowPart;
}
--------------020803020806050709000101--