Changeset 3714 for trunk/src/kernel32
- Timestamp:
- Jun 16, 2000, 2:06:51 AM (25 years ago)
- Location:
- trunk/src/kernel32
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/kernel32/hmfile.cpp
r3678 r3714 1 /* $Id: hmfile.cpp,v 1. 2 2000-06-08 18:08:56 sandervlExp $ */1 /* $Id: hmfile.cpp,v 1.3 2000-06-16 00:04:29 phaller Exp $ */ 2 2 3 3 /* … … 269 269 * Author : SvL 270 270 *****************************************************************************/ 271 BOOL HMDeviceFileClass::DuplicateHandle(PHMHANDLEDATA pHMHandleData, HANDLE srcprocess, 272 PHMHANDLEDATA pHMSrcHandle, 273 HANDLE destprocess, 274 PHANDLE desthandle, 275 DWORD fdwAccess, 276 BOOL fInherit, 277 DWORD fdwOptions) 271 BOOL HMDeviceFileClass::DuplicateHandle(PHMHANDLEDATA pHMHandleData, 272 HANDLE srcprocess, 273 PHMHANDLEDATA pHMSrcHandle, 274 HANDLE destprocess, 275 PHANDLE desthandle, 276 DWORD fdwAccess, 277 BOOL fInherit, 278 DWORD fdwOptions) 278 279 { 279 280 HMFileInfo *srcfileinfo = (HMFileInfo *)pHMSrcHandle->dwUserData; 280 BOOLrc;281 DWORD rc; 281 282 282 283 dprintf(("KERNEL32:HMDeviceFileClass::DuplicateHandle (%08x,%08x,%08x,%08x,%08x)", 283 284 pHMHandleData, 284 srcprocess, pHMSrcHandle->hHMHandle, destprocess, desthandle)); 285 srcprocess, 286 pHMSrcHandle->hHMHandle, 287 destprocess, 288 desthandle)); 285 289 286 290 //TODO: Inheritance of file handles won't work! 287 291 288 if(destprocess != srcprocess) { 289 //TODO:!!!! 290 dprintf(("ERROR: DuplicateHandle; different processes not yet supported!!")); 291 return FALSE; 292 } 293 294 if(srcfileinfo) { 295 if(CreateFile(srcfileinfo->lpszFileName, pHMHandleData, 296 srcfileinfo->lpSecurityAttributes, NULL) == NO_ERROR) { 297 return TRUE; 298 } 299 dprintf(("ERROR: DuplicateHandle; CreateFile %s failed!", srcfileinfo->lpszFileName)); 300 return FALSE; 301 } 302 else { 303 SetLastError(ERROR_INVALID_PARAMETER); 304 return FALSE; 292 if(destprocess != srcprocess) 293 { 294 //TODO:!!!! 295 dprintf(("ERROR: DuplicateHandle; different processes not yet supported!!")); 296 return FALSE; 297 } 298 299 if(srcfileinfo) 300 { 301 #if 0 302 // @@@PH Why createfile here? Why not OSLibDupHandle() ? 303 if(CreateFile(srcfileinfo->lpszFileName, pHMHandleData, 304 srcfileinfo->lpSecurityAttributes, NULL) == NO_ERROR) 305 { 306 return TRUE; 307 } 308 dprintf(("ERROR: DuplicateHandle; CreateFile %s failed!", 309 srcfileinfo->lpszFileName)); 310 return FALSE; 311 #endif 312 313 rc = OSLibDosDupHandle(pHMSrcHandle->hHMHandle, 314 desthandle); 315 if (rc) 316 { 317 dprintf(("ERROR: DulicateHandle: OSLibDosDupHandle(%s) failed = %u\n", 318 rc, 319 srcfileinfo->lpszFileName)); 320 SetLastError(rc); 321 return FALSE; // ERROR 322 } 323 else 324 return TRUE; // OK 325 } 326 else 327 { 328 SetLastError(ERROR_INVALID_PARAMETER); 329 return FALSE; 305 330 } 306 331 } -
trunk/src/kernel32/lfile.cpp
r2802 r3714 1 /* $Id: lfile.cpp,v 1. 6 2000-02-16 14:25:41 sandervlExp $ */1 /* $Id: lfile.cpp,v 1.7 2000-06-16 00:04:30 phaller Exp $ */ 2 2 3 3 /* … … 226 226 return -1; 227 227 } 228 228 229 229 rc = SetFilePointer(arg1, 230 230 arg2, 231 231 NULL, 232 arg3); //returns -1 on error (-1 == 0xffffffff) 232 arg3); 233 //returns -1 on error (-1 == 0xffffffff) 233 234 234 235 dprintf(("KERNEL32: _llseek returns %08xh", rc)); -
trunk/src/kernel32/oslibdos.cpp
r3647 r3714 1 /* $Id: oslibdos.cpp,v 1.3 0 2000-06-01 14:01:43 sandervlExp $ */1 /* $Id: oslibdos.cpp,v 1.31 2000-06-16 00:04:30 phaller Exp $ */ 2 2 /* 3 3 * Wrappers for OS/2 Dos* API … … 522 522 APIRET rc; 523 523 524 switch(method) { 525 case OSLIB_SETPTR_FILE_CURRENT: 526 os2method = FILE_CURRENT; 527 break; 528 case OSLIB_SETPTR_FILE_BEGIN: 529 os2method = FILE_BEGIN ; 530 break; 531 case OSLIB_SETPTR_FILE_END: 532 os2method = FILE_END; 533 break; 534 default: 535 return OSLIB_ERROR_INVALID_PARAMETER; 536 } 524 switch(method) 525 { 526 case OSLIB_SETPTR_FILE_CURRENT: 527 os2method = FILE_CURRENT; 528 break; 529 case OSLIB_SETPTR_FILE_BEGIN: 530 os2method = FILE_BEGIN ; 531 break; 532 case OSLIB_SETPTR_FILE_END: 533 os2method = FILE_END; 534 break; 535 default: 536 return OSLIB_ERROR_INVALID_PARAMETER; 537 } 538 537 539 rc = DosSetFilePtr(hFile, offset, os2method, &newoffset); 538 if(rc) { 539 return -1; 540 if(rc) 541 { 542 SetLastError(error2WinError(rc)); 543 return -1; 540 544 } 541 545 else return newoffset; … … 1021 1025 DWORD OSLibDosSetFilePointer(DWORD hFile, DWORD OffsetLow, DWORD *OffsetHigh, DWORD method) 1022 1026 { 1023 LONGLONG offsetL; 1024 LONGLONG newoffsetL; 1025 APIRET rc; 1026 DWORD newoffset; 1027 1028 switch(method) { 1029 case FILE_BEGIN_W: 1030 method = FILE_BEGIN; 1031 break; 1032 1033 case FILE_CURRENT_W: 1034 method = FILE_CURRENT; 1035 break; 1036 1037 case FILE_END_W: 1038 method = FILE_END; 1039 break; 1040 } 1041 if(f64BitIO) { 1027 LONGLONG offsetL; 1028 LONGLONG newoffsetL; 1029 APIRET rc; 1030 DWORD newoffset; 1031 1032 switch(method) 1033 { 1034 case FILE_BEGIN_W: 1035 method = FILE_BEGIN; 1036 break; 1037 1038 case FILE_CURRENT_W: 1039 method = FILE_CURRENT; 1040 break; 1041 1042 case FILE_END_W: 1043 method = FILE_END; 1044 break; 1045 } 1046 1047 // PH Note: for a negative 32-bit seek, the OS/2 64-bit version 1048 // needs to be skipped. 1049 if( (f64BitIO) && (OffsetHigh) ) 1050 { 1042 1051 offsetL.ulLo = OffsetLow; 1043 1052 offsetL.ulHi = (OffsetHigh) ? *OffsetHigh : 0; … … 1048 1057 newoffset = newoffsetL.ulLo; 1049 1058 } 1050 else rc = DosSetFilePtr(hFile, OffsetLow, method, &newoffset); 1051 if(rc) { 1052 SetLastError(error2WinError(rc)); 1053 return -1; 1054 } 1055 SetLastError(ERROR_SUCCESS_W); 1056 return newoffset; 1059 else 1060 rc = DosSetFilePtr(hFile, OffsetLow, method, &newoffset); 1061 1062 if(rc) 1063 { 1064 SetLastError(error2WinError(rc)); 1065 return -1; 1066 } 1067 SetLastError(ERROR_SUCCESS_W); 1068 return newoffset; 1057 1069 } 1058 1070 //****************************************************************************** -
trunk/src/kernel32/oslibdos.h
r3647 r3714 1 /* $Id: oslibdos.h,v 1.1 7 2000-06-01 14:01:44 sandervlExp $ */1 /* $Id: oslibdos.h,v 1.18 2000-06-16 00:04:31 phaller Exp $ */ 2 2 3 3 /* … … 72 72 BOOL OSLibDosDelete(char *lpszFileName); 73 73 74 #define OSLIB_SETPTR_FILE_CURRENT 175 #define OSLIB_SETPTR_FILE_BEGIN 276 #define OSLIB_SETPTR_FILE_END 374 #define OSLIB_SETPTR_FILE_CURRENT 0 75 #define OSLIB_SETPTR_FILE_BEGIN 1 76 #define OSLIB_SETPTR_FILE_END 2 77 77 78 78 DWORD OSLibDosSetFilePtr(DWORD hFile, DWORD offset, DWORD method);
Note:
See TracChangeset
for help on using the changeset viewer.