home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / warphead.zip / H / DUALPATH.H < prev    next >
Text File  |  1997-02-28  |  4KB  |  96 lines

  1. /* @(#)Z 1.2 os2/src/utils/dualpath.h, odutils, od96os2, odos29646d 96/11/15 15:49:52 (96/08/23 01:44:24) */
  2. /*====START_GENERATED_PROLOG======================================
  3.  */
  4. /*
  5.  *   COMPONENT_NAME: odutils
  6.  *
  7.  *   CLASSES: none
  8.  *
  9.  *   ORIGINS: 82,27
  10.  *
  11.  *
  12.  *   (C) COPYRIGHT International Business Machines Corp. 1995,1996
  13.  *   All Rights Reserved
  14.  *   Licensed Materials - Property of IBM
  15.  *   US Government Users Restricted Rights - Use, duplication or
  16.  *   disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  17.  *       
  18.  *   IBM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
  19.  *   ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  20.  *   PURPOSE. IN NO EVENT SHALL IBM BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  21.  *   CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
  22.  *   USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
  23.  *   OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE
  24.  *   OR PERFORMANCE OF THIS SOFTWARE.
  25.  */
  26. /*====END_GENERATED_PROLOG========================================
  27.  */
  28. /* Include to aid dual-pathing of PM applications for 16/32-bit. */
  29. /* Assumes "B16" is defined for the 16-bit case.                 */
  30.  
  31. /* Specials:                                                     */
  32. /*                                                               */
  33. /*   USLONG  -- USHORT for 16-bit, ULONG for 32-bit              */
  34. /*   SLONG   -- SHORT for 16-bit,  LONG for 32-bit               */
  35. /*   PSLONG  -- PSHORT for 16-bit, PLONG for 32-bit              */
  36. /*                                                               */
  37. /*                                                               */
  38.  
  39. #if defined(B16)
  40.   /* 16-bit */
  41.   #define USLONG  USHORT
  42.   #define SLONG   SHORT
  43.   #define PSLONG  PSHORT
  44.   #define PUSLONG PUSHORT
  45.   /* Now let us use some 32-bit functions in the 16-bit version */
  46.   /* Event and Mutex semaphore stuff -- replaces RAM semaphores */
  47.   #define HEV unsigned long
  48.   #define DosCreateEventSem(x,y,z,f) if (f) *(y)=0; else *(y)=1;
  49.   #define DosPostEventSem(x)        DosSemClear(&x)
  50.   #define DosResetEventSem(x,y)     DosSemSet(&x)
  51.   #define DosWaitEventSem(x,y)      DosSemWait(&x,(signed long)(y))
  52.  
  53.   #define DosCreateMutexSem(x,y,z,f) if (f) *(y)=1; else *(y)=0;
  54.   #define DosRequestMutexSem(x,y)   DosSemRequest(&x,(signed long)(y))
  55.   #define DosReleaseMutexSem(x)     DosSemClear(&x)
  56.  
  57.   /* Misc */
  58.   #define DosDelete(x)              DosDelete(x,0L)
  59.   #define WinQueryWindow(x,y)       WinQueryWindow(x,y,NULL)
  60.   #define WinWindowFromPoint(x,y,z) WinWindowFromPoint(x,y,z,NULL)
  61.   #define BITMAPINFOHEADER2         BITMAPINFOHEADER
  62.   #define BITMAPINFO2               BITMAPINFO
  63.   #define PBITMAPINFO2              PBITMAPINFO
  64.   #define RGB2                      RGB
  65.   #define _timezone                 timezone
  66.   #define RexxStart                 -REXXSAA
  67.   #define RexxVariablePool          RxVar
  68.   #define _ltoa(x,y,z)              ltoa((x),(y),(z))
  69.   #define _itoa(x,y,z)              itoa((x),(y),(z))
  70.  
  71. #else
  72.   /* 32-bit */
  73.   #define USLONG  ULONG
  74.   #define SLONG   LONG
  75.   #define PSLONG  PLONG
  76.   #define PUSLONG PULONG
  77.  
  78.   #define DosWaitEventSem(x,y)      DosWaitEventSem((x),(unsigned)(y))
  79.   #define DosRequestMutexSem(x,y)   DosRequestMutexSem((x),(unsigned)(y))
  80.  
  81.   #undef  NULL
  82.   #define NULL   0
  83.  
  84.   #define halloc(x,y) malloc((unsigned long)(x)*(unsigned long)(y))
  85.   #define hfree(x)    free(x)
  86.  
  87.   #define far
  88.   #define near
  89.   #define huge
  90.   #define cdecl
  91.   #define _loadds
  92.  
  93.   #define ltoa(x,y,z) _ltoa((x),(y),(z))
  94.  
  95. #endif
  96.