From 4cda16e03b096483fc05c51e43a2286bf6245080 Mon Sep 17 00:00:00 2001 From: Ryan Cumming Date: Fri, 15 Nov 2002 04:12:10 +0000 Subject: [PATCH] Implemented GetFileSizeEx (based on a patch by Steve Lustbader). --- dlls/kernel/kernel32.spec | 1 + files/file.c | 25 +++++++++++++++++++++++++ include/winbase.h | 1 + 3 files changed, 27 insertions(+) diff --git a/dlls/kernel/kernel32.spec b/dlls/kernel/kernel32.spec index a782603310f..b63fbfe0d28 100644 --- a/dlls/kernel/kernel32.spec +++ b/dlls/kernel/kernel32.spec @@ -366,6 +366,7 @@ @ stdcall GetFileAttributesW(wstr) GetFileAttributesW @ stdcall GetFileInformationByHandle(long ptr) GetFileInformationByHandle @ stdcall GetFileSize(long ptr) GetFileSize +@ stdcall GetFileSizeEx(long ptr) GetFileSizeEx @ stdcall GetFileTime(long ptr ptr ptr) GetFileTime @ stdcall GetFileType(long) GetFileType @ stdcall GetFullPathNameA(str long ptr ptr) GetFullPathNameA diff --git a/files/file.c b/files/file.c index b178db48155..ae4f73ff5e7 100644 --- a/files/file.c +++ b/files/file.c @@ -997,6 +997,31 @@ DWORD WINAPI GetFileSize( HANDLE hFile, LPDWORD filesizehigh ) } +/*********************************************************************** + * GetFileSizeEx (KERNEL32.@) + */ +BOOL WINAPI GetFileSizeEx( HANDLE hFile, PLARGE_INTEGER lpFileSize ) +{ + BY_HANDLE_FILE_INFORMATION info; + + if (!lpFileSize) + { + SetLastError( ERROR_INVALID_PARAMETER ); + return FALSE; + } + + if (!GetFileInformationByHandle( hFile, &info )) + { + return FALSE; + } + + lpFileSize->s.LowPart = info.nFileSizeLow; + lpFileSize->s.HighPart = info.nFileSizeHigh; + + return TRUE; +} + + /*********************************************************************** * GetFileTime (KERNEL32.@) */ diff --git a/include/winbase.h b/include/winbase.h index 90ee9968f1d..2a78a473045 100644 --- a/include/winbase.h +++ b/include/winbase.h @@ -1304,6 +1304,7 @@ BOOL WINAPI GetFileSecurityA(LPCSTR,SECURITY_INFORMATION,PSECURITY_DESCRI BOOL WINAPI GetFileSecurityW(LPCWSTR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,DWORD,LPDWORD); #define GetFileSecurity WINELIB_NAME_AW(GetFileSecurity) DWORD WINAPI GetFileSize(HANDLE,LPDWORD); +BOOL WINAPI GetFileSizeEx(HANDLE,PLARGE_INTEGER); BOOL WINAPI GetFileTime(HANDLE,LPFILETIME,LPFILETIME,LPFILETIME); DWORD WINAPI GetFileType(HANDLE); DWORD WINAPI GetFullPathNameA(LPCSTR,DWORD,LPSTR,LPSTR*);