mirror of https://github.com/lianthony/NT4.0
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.
68 lines
2.3 KiB
68 lines
2.3 KiB
/*****************************************************************************
|
|
* *
|
|
* MEM.H *
|
|
* *
|
|
* Copyright (C) Microsoft Corporation 1990. *
|
|
* All Rights reserved. *
|
|
* *
|
|
******************************************************************************
|
|
* *
|
|
* Module Intent: Exports memory management functionality. With DEBUG *
|
|
* turned on, the routines map to internal functions which *
|
|
* do checking on the handles and pointers (see MEM.C). *
|
|
* Without DEBUG, most functions map directly to Window's *
|
|
* memory manager calls. *
|
|
* *
|
|
*****************************************************************************/
|
|
|
|
/*****************************************************************************
|
|
* *
|
|
* Defines *
|
|
* *
|
|
*****************************************************************************/
|
|
|
|
#define PtrFromGh(gh) ((LPVOID) gh)
|
|
#define PszFromGh(gh) ((LPSTR) (gh))
|
|
#define QdeFromGh(hde) ((QDE) (hde))
|
|
#define FreePtr(lpsz) FreeGh((GH) lpsz)
|
|
|
|
#define FreeHde FreeGh
|
|
#define LhAlloc GhAlloc
|
|
#define FreeLh FreeGh
|
|
|
|
#if defined(_DEBUG)
|
|
|
|
#include "inc\lcmem.h"
|
|
|
|
#define FCheckLh(lh) lcHeapCheck()
|
|
#define FCheckPv(pv) lcHeapCheck()
|
|
#define FreeGh(gh) lcFree(gh)
|
|
#define GhAlloc(wFlags, lcb) lcCalloc(lcb)
|
|
#define GhResize(gh, flags, cb) lcReAlloc(gh, cb)
|
|
#define GhSize(gh) lcSize(gh)
|
|
|
|
#else // DEBUG
|
|
|
|
#define FCheckLh(lh)
|
|
#define FCheckPv(pv)
|
|
#define lcHeapCheck()
|
|
#define FreeGh(gh) (void)(LocalFree((HLOCAL) gh))
|
|
#define GhAlloc(wFlags, lcb) LocalAlloc(wFlags, (DWORD)(lcb))
|
|
#define GhResize(gh, wFlags, lcb) (LocalReAlloc((gh), (lcb), LMEM_ZEROINIT | LMEM_MOVEABLE | (wFlags)))
|
|
#define GhSize(gh) LocalSize(gh)
|
|
|
|
#define lcCalloc(cb) LocalAlloc(LMEM_FIXED | LMEM_ZEROINIT, cb)
|
|
#define lcClearFree(pv) RemoveFM((FM*) pv)
|
|
#define lcFree(pv) LocalFree((HLOCAL) pv);
|
|
#define lcMalloc(cb) LocalAlloc(LMEM_FIXED, cb)
|
|
#define lcReAlloc(pv, cb) LocalReAlloc((HLOCAL) pv, cb, LMEM_ZEROINIT | LMEM_MOVEABLE)
|
|
#define lcStrDup(psz) LocalStrDup(psz)
|
|
|
|
#endif
|
|
|
|
GH STDCALL GhForceAlloc(UINT, DWORD);
|
|
GH STDCALL GhForceResize(GH, UINT, DWORD);
|
|
GH STDCALL GhDupGh(GH);
|
|
|
|
typedef VOID * RV;
|
|
typedef BYTE * RB;
|