Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

39 lines
1.2 KiB

  1. /*
  2. gmem.h
  3. This module supplies macros for fixed global memory
  4. allocation compatible with those used in the Multimedia
  5. extensions to Windows 3.x. It is included to simplify
  6. porting of the Windows 3.x 16 bit code.
  7. Jul-16-91 NigelT
  8. */
  9. #ifndef _GMEMMACROS_
  10. #define _GMEMMACROS_
  11. #define GAllocPtr(ul) GlobalAlloc(GPTR,(ul))
  12. #define GAllocPtrF(f,ul) GlobalAlloc(GPTR,(ul))
  13. #define GReAllocPtr(lp,ul) GlobalReAlloc((HANDLE)(lp),(ul),GPTR)
  14. #define GFreePtr(lp) GlobalFree((HANDLE)(lp))
  15. #define GlobalAllocPtrF(f,ul) GlobalAlloc(GPTR,(ul))
  16. //#define GlobalReAllocPtr(lp,ul,f) GlobalReAlloc((HANDLE)(lp),(ul),GPTR)
  17. #define GlobalPtrHandle(h) (GlobalHandle(h))
  18. /* the following are extracts from 3.1 WindowsX.h */
  19. #define GlobalUnlockPtr(lp) \
  20. GlobalUnlock(GlobalPtrHandle(lp))
  21. #define GlobalAllocPtr(flags, cb) \
  22. (GlobalLock(GlobalAlloc((flags), (cb))))
  23. #define GlobalReAllocPtr(lp, cbNew, flags) \
  24. (GlobalUnlockPtr(lp), GlobalLock(GlobalReAlloc(GlobalPtrHandle(lp) , (cbNew), (flags))))
  25. #define GlobalFreePtr(lp) \
  26. (GlobalUnlockPtr(lp), (BOOL)GlobalFree(GlobalPtrHandle(lp)))
  27. #endif // _GMEMMACROS_