Changeset 3714 for trunk/src/kernel32


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

some fixes

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 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}
  • trunk/src/kernel32/lfile.cpp

    r2802 r3714  
    1 /* $Id: lfile.cpp,v 1.6 2000-02-16 14:25:41 sandervl Exp $ */
     1/* $Id: lfile.cpp,v 1.7 2000-06-16 00:04:30 phaller Exp $ */
    22
    33/*
     
    226226      return -1;
    227227   }
    228 
     228 
    229229   rc = SetFilePointer(arg1,
    230230                       arg2,
    231231                       NULL,
    232                        arg3);   //returns -1 on error (-1 == 0xffffffff)
     232                       arg3);   
     233  //returns -1 on error (-1 == 0xffffffff)
    233234
    234235   dprintf(("KERNEL32: _llseek returns %08xh", rc));
  • trunk/src/kernel32/oslibdos.cpp

    r3647 r3714  
    1 /* $Id: oslibdos.cpp,v 1.30 2000-06-01 14:01:43 sandervl Exp $ */
     1/* $Id: oslibdos.cpp,v 1.31 2000-06-16 00:04:30 phaller Exp $ */
    22/*
    33 * Wrappers for OS/2 Dos* API
     
    522522 APIRET rc;
    523523
    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 
    537539  rc = DosSetFilePtr(hFile, offset, os2method, &newoffset);
    538   if(rc) {
    539         return -1;
     540  if(rc)
     541  {
     542    SetLastError(error2WinError(rc));
     543    return -1;
    540544  }
    541545  else  return newoffset;
     
    10211025DWORD OSLibDosSetFilePointer(DWORD hFile, DWORD OffsetLow, DWORD *OffsetHigh, DWORD method)
    10221026{
    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  {
    10421051        offsetL.ulLo = OffsetLow;
    10431052        offsetL.ulHi = (OffsetHigh) ? *OffsetHigh : 0;
     
    10481057        newoffset = newoffsetL.ulLo;
    10491058   }
    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;
    10571069}
    10581070//******************************************************************************
  • trunk/src/kernel32/oslibdos.h

    r3647 r3714  
    1 /* $Id: oslibdos.h,v 1.17 2000-06-01 14:01:44 sandervl Exp $ */
     1/* $Id: oslibdos.h,v 1.18 2000-06-16 00:04:31 phaller Exp $ */
    22
    33/*
     
    7272BOOL OSLibDosDelete(char *lpszFileName);
    7373
    74 #define OSLIB_SETPTR_FILE_CURRENT       1
    75 #define OSLIB_SETPTR_FILE_BEGIN         2
    76 #define OSLIB_SETPTR_FILE_END           3
     74#define OSLIB_SETPTR_FILE_CURRENT       0
     75#define OSLIB_SETPTR_FILE_BEGIN         1
     76#define OSLIB_SETPTR_FILE_END           2
    7777
    7878DWORD OSLibDosSetFilePtr(DWORD hFile, DWORD offset, DWORD method);
Note: See TracChangeset for help on using the changeset viewer.