Changeset 3714 for trunk/src/kernel32/hmfile.cpp
- Timestamp:
- Jun 16, 2000, 2:06:51 AM (25 years ago)
- File:
-
- 1 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 }
Note:
See TracChangeset
for help on using the changeset viewer.