Ignore:
Timestamp:
Jun 16, 2000, 2:06:51 AM (25 years ago)
Author:
phaller
Message:

some fixes

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 sandervl Exp $ */
     1/* $Id: hmfile.cpp,v 1.3 2000-06-16 00:04:29 phaller Exp $ */
    22
    33/*
     
    269269 * Author    : SvL
    270270 *****************************************************************************/
    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)
     271BOOL 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)
    278279{
    279280 HMFileInfo *srcfileinfo = (HMFileInfo *)pHMSrcHandle->dwUserData;
    280  BOOL rc;
     281 DWORD rc;
    281282
    282283  dprintf(("KERNEL32:HMDeviceFileClass::DuplicateHandle (%08x,%08x,%08x,%08x,%08x)",
    283284           pHMHandleData,
    284            srcprocess, pHMSrcHandle->hHMHandle, destprocess, desthandle));
     285           srcprocess,
     286           pHMSrcHandle->hHMHandle,
     287           destprocess,
     288           desthandle));
    285289
    286290  //TODO: Inheritance of file handles won't work!
    287291
    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;
    305330  }
    306331}
Note: See TracChangeset for help on using the changeset viewer.