home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / msdn_vcb / samples / vc98 / sdk / sdktools / winnt / perfmon / memory.c < prev    next >
Encoding:
C/C++ Source or Header  |  1993-05-25  |  1.4 KB  |  78 lines

  1.  
  2.  
  3.  
  4. #include "perfmon.h"    // included by all perfmon sources
  5. #include "pmemory.h"     // external declarations for this file
  6.  
  7.  
  8. LPMEMORY MemoryAllocate (DWORD dwSize)
  9.    {  // MemoryAllocate
  10.    HMEMORY        hMemory ;
  11.    LPMEMORY       lpMemory ;
  12.  
  13.    hMemory = GlobalAlloc (GHND, dwSize) ;
  14.    if (!hMemory)
  15.       return (NULL) ;
  16.    lpMemory = GlobalLock (hMemory) ;
  17.    if (!lpMemory)
  18.       GlobalFree (hMemory) ;
  19.    return (lpMemory) ;
  20.    }  // MemoryAllocate
  21.  
  22.  
  23. VOID MemoryFree (LPMEMORY lpMemory)
  24.    {  // MemoryFree
  25.    HMEMORY        hMemory ;
  26.  
  27.    if (!lpMemory)
  28.       return ;
  29.  
  30.    hMemory = GlobalHandle (lpMemory) ;
  31.  
  32.    if (hMemory)
  33.       {  // if
  34.       GlobalUnlock (hMemory) ;
  35.       GlobalFree (hMemory) ;
  36.       }  // if
  37.    }  // MemoryFree
  38.    
  39.  
  40. DWORD MemorySize (LPMEMORY lpMemory)
  41.    {
  42.    HMEMORY        hMemory ;
  43.  
  44.    hMemory = GlobalHandle (lpMemory) ;
  45.    if (!hMemory)
  46.       return (0L) ;
  47.  
  48.    return (GlobalSize (hMemory)) ;
  49.    }
  50.  
  51.  
  52. LPMEMORY MemoryResize (LPMEMORY lpMemory,
  53.                        DWORD dwNewSize)
  54.    {
  55.    HMEMORY        hMemory ;
  56.    LPMEMORY       lpNewMemory ;
  57.  
  58.    hMemory = GlobalHandle (lpMemory) ;
  59.    if (!hMemory)
  60.       return (NULL) ;
  61.  
  62.    GlobalUnlock (hMemory) ; 
  63.  
  64.    hMemory = GlobalReAlloc (hMemory, dwNewSize, GHND) ;
  65.  
  66.    if (!hMemory)
  67.       return (NULL) ;
  68.  
  69.  
  70.    lpNewMemory = GlobalLock (hMemory) ;
  71.  
  72.    return (lpNewMemory) ;
  73.    }  // MemoryResize
  74.  
  75.  
  76.  
  77. 
  78.