Changeset 1839


Ignore:
Timestamp:
Aug 12, 2015, 6:49:46 AM (10 years ago)
Author:
Steven Levine
Message:

xDosGetInfoBlocks

Location:
trunk/dll
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/dll/wrappers.c

    r1639 r1839  
    66  Wrappers with error checking
    77
    8   Copyright (c) 2006, 2008 Steven H.Levine
     8  Copyright (c) 2006, 2015 Steven H.Levine
    99
    1010  22 Jul 06 SHL Baseline
     
    2020  15 Nov 09 GKY Rework xDosQueryAppType to remove HIMEM ifdefs
    2121  26 Aug 11 GKY Add a low mem version of xDosAlloc* wrappers; move error checking into all the
    22                 xDosAlloc* wrappers.
     22                xDosAlloc* wrappers.
    2323  09 Oct 11 GKY Modify xfsopen so it doesn't fail when called with r+ because the file doesn't exist.
    24                 We should be creating the file unless it is set to fail silently.
     24                We should be creating the file unless it is set to fail silently.
     25  09 Aug 15 SHL Add xDosGetInfoBlocks
    2526
    2627***********************************************************************/
     
    7778
    7879APIRET xDosAllocSharedMem(PPVOID ppb,
    79                           PSZ pszName,
    80                           ULONG cb,
    81                           PCSZ pszSrcFile,
    82                           UINT uiLineNumber)
     80                          PSZ pszName,
     81                          ULONG cb,
     82                          PCSZ pszSrcFile,
     83                          UINT uiLineNumber)
    8384{
    8485  APIRET rc; ;
    8586
    8687  rc = DosAllocSharedMem(ppb, pszName, cb,
    87                         PAG_COMMIT | OBJ_GIVEABLE | PAG_READ | PAG_WRITE | OBJ_ANY);
     88                        PAG_COMMIT | OBJ_GIVEABLE | PAG_READ | PAG_WRITE | OBJ_ANY);
    8889  //DbgMsg(pszSrcFile, __LINE__, "ppb %p", *ppb);
    8990  if (rc)
     
    102103
    103104APIRET xDosAllocMem(PPVOID ppb,
    104                     ULONG cb,
    105                     PCSZ pszSrcFile,
    106                     UINT uiLineNumber)
     105                    ULONG cb,
     106                    PCSZ pszSrcFile,
     107                    UINT uiLineNumber)
    107108{
    108109  APIRET rc;
     
    127128
    128129APIRET xDosAllocMemLow(PPVOID ppb,
    129                        ULONG cb,
    130                        PCSZ pszSrcFile,
    131                        UINT uiLineNumber)
     130                       ULONG cb,
     131                       PCSZ pszSrcFile,
     132                       UINT uiLineNumber)
    132133{
    133134  APIRET rc;
     
    138139  //DbgMsg(pszSrcFile, uiLineNumber, "ppb %p", *ppb);
    139140  return rc;
     141}
     142
     143APIRET xDosGetInfoBlocks(PTIB *pptib,
     144                         PPIB *pppib)
     145{
     146  APIRET apiret = DosGetInfoBlocks(pptib, pppib);
     147
     148  if (apiret) {
     149    Dos_Error(MB_CANCEL, apiret, HWND_DESKTOP, pszSrcFile, __LINE__,
     150              PCSZ_DOSGETINFOBLOCKS);
     151    *pppib = 0;
     152    *pptib = 0;
     153  }
     154  return apiret;
    140155}
    141156
     
    319334    APIRET rc;
    320335    BOOL crosses = ((ULONG)pInfoBuf ^
    321                     ((ULONG)pInfoBuf + cbInfoBuf - 1)) & ~0xffff;
     336                    ((ULONG)pInfoBuf + cbInfoBuf - 1)) & ~0xffff;
    322337    BOOL fResetVerify = FALSE;
    323338
     
    328343    switch (ulInfoLevel) {
    329344      case FIL_STANDARD:
    330         if (crosses) {
     345        if (crosses) {
    331346          fs3 = *(PFILESTATUS3)pInfoBuf;        // Copy to buffer that does not cross 64K boundary
    332           rc = DosSetPathInfo(pszPathName, ulInfoLevel, &fs3, cbInfoBuf, flOptions);
    333         }
    334         else
    335           rc = DosSetPathInfo(pszPathName, ulInfoLevel, pInfoBuf, cbInfoBuf, flOptions);
     347          rc = DosSetPathInfo(pszPathName, ulInfoLevel, &fs3, cbInfoBuf, flOptions);
     348        }
     349        else
     350          rc = DosSetPathInfo(pszPathName, ulInfoLevel, pInfoBuf, cbInfoBuf, flOptions);
    336351        break;
    337352
     
    372387          eaop2 = *(PEAOP2)pInfoBuf;    // Copy to buffer that does not cross
    373388          rc = DosSetPathInfo(pszPathName, ulInfoLevel, &eaop2, sizeof(eaop2), flOptions);
    374         }
    375         break;
     389        }
     390        break;
    376391      default:
    377392        Runtime_Error(pszSrcFile, __LINE__, "ulInfoLevel %u unexpected", ulInfoLevel);
     
    448463
    449464FILE *xfsopen(PCSZ pszFileName, PCSZ pszMode, INT fSharemode, PCSZ pszSrcFile,
    450               UINT uiLineNumber, BOOL fSilent)
     465              UINT uiLineNumber, BOOL fSilent)
    451466{
    452467  CHAR FileName[CCHMAXPATH];
  • trunk/dll/wrappers.h

    r1628 r1839  
    77
    88  Copyright (c) 1993-98 M. Kimes
    9   Copyright (c) 2008 Steven H. Levine
     9  Copyright (c) 2008, 2015 Steven H. Levine
    1010
    1111  08 Dec 08 SHL Add missing OS2_INCLUDED check
    1212  12 Jul 09 GKY Add xDosQueryAppType and xDoxAlloc... to allow FM/2 to load in high memory
    1313  26 Aug 11 GKY Add a low mem version of xDosAlloc* wrappers; move error checking into all the
    14                 xDosAlloc* wrappers.
     14                xDosAlloc* wrappers.
     15  09 Aug 15 SHL Add xDosGetInfoBlocks
    1516
    1617***********************************************************************/
     
    2627
    2728APIRET xDosAllocSharedMem(PPVOID ppb,
    28                           PSZ pszName,
    29                           ULONG cb,
    30                           PCSZ pszSrcFile,
    31                           UINT uiLineNumber);
     29                          PSZ pszName,
     30                          ULONG cb,
     31                          PCSZ pszSrcFile,
     32                          UINT uiLineNumber);
    3233
    3334APIRET xDosAllocMem(PPVOID ppb,
    34                     ULONG cb,
    35                     PCSZ pszSrcFile,
    36                     UINT uiLineNumber);
     35                    ULONG cb,
     36                    PCSZ pszSrcFile,
     37                    UINT uiLineNumber);
    3738
    3839APIRET xDosAllocMemLow(PPVOID ppb,
    39                        ULONG cb,
    40                        PCSZ pszSrcFile,
    41                        UINT uiLineNumber);
     40                       ULONG cb,
     41                       PCSZ pszSrcFile,
     42                       UINT uiLineNumber);
    4243
    4344APIRET xDosFindFirst(PSZ pszFileSpec,
    4445                     PHDIR phdir,
    45                      ULONG  flAttribute,
    46                      PVOID  pfindbuf,
    47                      ULONG  cbBuf,
     46                     ULONG flAttribute,
     47                     PVOID pfindbuf,
     48                     ULONG cbBuf,
    4849                     PULONG pcFileNames,
    49                      ULONG  ulInfoLevel);
    50 APIRET xDosFindNext(HDIR   hDir,
    51                     PVOID  pfindbuf,
    52                     ULONG  cbfindbuf,
     50                     ULONG ulInfoLevel);
     51APIRET xDosFindNext(HDIR hDir,
     52                    PVOID pfindbuf,
     53                    ULONG cbfindbuf,
    5354                    PULONG pcFilenames,
    54                     ULONG  ulInfoLevel);        // 06 Oct 07 SHL Added
    55 APIRET xDosSetPathInfo(PSZ   pszPathName,
     55                    ULONG ulInfoLevel); // 06 Oct 07 SHL Added
     56
     57#ifdef INCL_DOSPROCESS  // // PPIB PTIB
     58APIRET xDosGetInfoBlocks(PTIB *pptib,
     59                         PPIB *pppib);  // 2015-08-09 SHL added
     60#endif
     61
     62APIRET xDosSetPathInfo(PSZ pszPathName,
    5663                       ULONG ulInfoLevel,
    5764                       PVOID pInfoBuf,
Note: See TracChangeset for help on using the changeset viewer.