- Timestamp:
- Sep 21, 1999, 1:01:43 PM (26 years ago)
- Location:
- trunk/src/kernel32
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/kernel32/Fileio.cpp
r671 r998 1 /* $Id: Fileio.cpp,v 1. 8 1999-08-24 23:46:36phaller Exp $ */1 /* $Id: Fileio.cpp,v 1.9 1999-09-21 11:00:23 phaller Exp $ */ 2 2 3 3 /* … … 20 20 #include "handlemanager.h" 21 21 #include "devio.h" 22 #include "oslibdos.h" 22 23 23 24 //****************************************************************************** … … 786 787 787 788 DWORD WIN32API GetCompressedFileSizeW(LPCWSTR lpFileName, 788 789 LPDWORD lpFileSizeHigh) 789 790 { 790 791 LPCTSTR lpAsciiFileName; /* converted filename */ … … 804 805 return (rc); /* return result */ 805 806 } 807 808 809 /***************************************************************************** 810 * Name : BOOL GetFileAttributesExA 811 * Purpose : 812 * Parameters: 813 * Variables : 814 * Result : 815 * Remark : KERNEL32.874 816 * Status : UNTESTED 817 * 818 * Author : Patrick Haller [Mon, 1998/06/15 08:00] 819 *****************************************************************************/ 820 821 BOOL WIN32API GetFileAttributesExA(LPCSTR lpFileName, 822 GET_FILEEX_INFO_LEVELS fInfoLevelId, 823 LPVOID lpFileInformation) 824 { 825 BOOL rc; 826 827 dprintf(("KERNEL32: GetFileAttributesExA(%s,%08xh,%08xh) mostly implemented.\n", 828 lpFileName, 829 fInfoLevelId, 830 lpFileInformation)); 831 832 if (lpFileName == NULL) return FALSE; 833 if (lpFileInformation == NULL) return FALSE; 834 835 if (fInfoLevelId == GetFileExInfoStandard) 836 { 837 LPWIN32_FILE_ATTRIBUTE_DATA lpFad = (LPWIN32_FILE_ATTRIBUTE_DATA) lpFileInformation; 838 839 rc = OSLibDosGetFileAttributesEx((LPSTR)lpFileName, 840 fInfoLevelId, 841 lpFileInformation); 842 return (rc); 843 } 844 else 845 { 846 dprintf(("KERNEL32: GetFileAttributesExA - invalid info level %d!\n", 847 fInfoLevelId)); 848 return FALSE; 849 } 850 } 851 852 853 /***************************************************************************** 854 * Name : BOOL GetFileAttributesExW 855 * Purpose : 856 * Parameters: 857 * Variables : 858 * Result : 859 * Remark : KERNEL32.875 860 * Status : UNTESTED 861 * 862 * Author : Patrick Haller [Mon, 1998/06/15 08:00] 863 *****************************************************************************/ 864 865 BOOL WINAPI GetFileAttributesExW(LPCWSTR lpFileName, 866 GET_FILEEX_INFO_LEVELS fInfoLevelId, 867 LPVOID lpFileInformation) 868 { 869 LPSTR nameA = HEAP_strdupWtoA( GetProcessHeap(), 0, lpFileName ); 870 BOOL res = GetFileAttributesExA( nameA, fInfoLevelId, lpFileInformation); 871 HeapFree( GetProcessHeap(), 0, nameA ); 872 return res; 873 } 874 -
trunk/src/kernel32/KERNEL32.DEF
r974 r998 1 ; $Id: KERNEL32.DEF,v 1. 39 1999-09-18 15:59:29 sandervlExp $1 ; $Id: KERNEL32.DEF,v 1.40 1999-09-21 11:00:23 phaller Exp $ 2 2 3 3 ;Created by BLAST for IBM's compiler … … 933 933 lstrncmpA = _lstrncmpA@12 @785 934 934 lstrncmpW = _lstrncmpW@12 @786 935 lstrncmpiA = _lstrncmpiA@12 @887 936 937 935 936 GetFileAttributesExA = _GetFileAttributesExA@12 @874 937 GetFileAttributesExW = _GetFileAttributesExW@12 @875 938 939 lstrncmpiA = _lstrncmpiA@12 @887 938 940 939 941 ; ---------------------------------------------------------------------------- -
trunk/src/kernel32/oslibdos.cpp
r712 r998 1 /* $Id: oslibdos.cpp,v 1. 3 1999-08-27 16:51:00 sandervlExp $ */1 /* $Id: oslibdos.cpp,v 1.4 1999-09-21 11:00:22 phaller Exp $ */ 2 2 3 3 /* … … 163 163 //****************************************************************************** 164 164 //****************************************************************************** 165 //@@@PH Note: this routine is nothing but a QUICK'N'DIRTY HACK! 166 //@@@PH this function should be implemented accordingly to NTDLL's 167 // RtlSecondsSince1980ToTime 168 // RtlTimeToSecondsSince1980 169 static void iFDATEFTIME2FILETIME(FDATE fdOS2, FTIME ftOS2, LPFILETIME pftWin32) 170 { 171 float f; 172 #define facSECOND 2 // as encoded in OS/2 173 #define facMINUTE 60 174 #define facHOUR 3600 175 #define facDAY 86400 176 #define facMONTH facDAY * 30 // cough, cough :) 177 #define facYEAR facDAY * 365 178 179 /* pftWin32 is 100ns based from 01.01.1601 00:00:00 */ 180 f = (fdOS2.year + 379) * facYEAR // 1980 - 1601 181 + (fdOS2.month - 0 ) * facMONTH 182 + (fdOS2.day - 1 ) * facDAY 183 + (ftOS2.hours ) * facHOUR 184 + (ftOS2.minutes ) * facMINUTE 185 + (ftOS2.twosecs ) * facSECOND; 186 187 f *= 10000; // convert to 100ns base 188 pftWin32->dwHighDateTime = (f / (float)(0xffffffff) ); 189 pftWin32->dwLowDateTime = (f - (float)((float)pftWin32->dwHighDateTime * 190 (float)0xffffffff) ); 191 } 192 193 BOOL OSLibDosGetFileAttributesEx(PSZ pszName, 194 ULONG ulDummy, 195 PVOID pBuffer) 196 { 197 APIRET rc; /* API return code */ 198 FILESTATUS3 fs3; /* file information structure */ 199 LPWIN32_FILE_ATTRIBUTE_DATA lpFad = (LPWIN32_FILE_ATTRIBUTE_DATA) pBuffer; 200 201 // Note: we only handle standard "GetFileExInfoStandard" requests 202 rc = DosQueryPathInfo(pszName, /* query the file information */ 203 FIL_STANDARD, 204 &fs3, 205 sizeof(fs3)); 206 if (rc != NO_ERROR) /* check for errors */ 207 return FALSE; /* raise error condition */ 208 209 // convert structure 210 lpFad->dwFileAttributes = fs3.attrFile; // directly interchangeable 211 iFDATEFTIME2FILETIME(fs3.fdateCreation, fs3.ftimeCreation, &lpFad->ftCreationTime); 212 iFDATEFTIME2FILETIME(fs3.fdateLastAccess, fs3.ftimeLastAccess, &lpFad->ftLastAccessTime); 213 iFDATEFTIME2FILETIME(fs3.fdateLastWrite, fs3.ftimeLastWrite, &lpFad->ftLastWriteTime); 214 215 /* @@@PH we might add Aurora support ... 216 lpFad->nFileSizeHigh = info.nFileSizeHigh; 217 */ 218 lpFad->nFileSizeHigh = 0; 219 lpFad->nFileSizeLow = fs3.cbFile; 220 221 return TRUE; 222 } -
trunk/src/kernel32/oslibdos.h
r712 r998 1 /* $Id: oslibdos.h,v 1. 3 1999-08-27 16:51:00 sandervlExp $ */1 /* $Id: oslibdos.h,v 1.4 1999-09-21 11:00:23 phaller Exp $ */ 2 2 3 3 /* … … 19 19 DWORD OSLibDosQueryMem(LPVOID lpMemAddr, DWORD *lpRangeSize, DWORD *lpAttr); 20 20 DWORD OSLibDosSetMem(LPVOID lpMemAddr, DWORD size, DWORD flags); 21 22 BOOL OSLibDosGetFileAttributesEx(PSZ pszName, ULONG ulDummy, PVOID pBuffer); 21 23 22 24 #define OSLIB_NOERROR 0
Note:
See TracChangeset
for help on using the changeset viewer.