home *** CD-ROM | disk | FTP | other *** search
/ Microsoft Programmer's Library 1.3 / Microsoft-Programers-Library-v1.3.iso / sampcode / win_lrn / memory / global / globreal.c < prev    next >
Encoding:
C/C++ Source or Header  |  1988-08-11  |  1.5 KB  |  53 lines

  1. /*
  2.  *   GlobalReAlloc
  3.  *   globreal.c
  4.  *
  5.  *   This program demonstrates the use of the GlobalReAlloc function. The
  6.  *   GlobalRealloc changes the size of the specified allocated memory block
  7.  *   and returns a handle to the different size memory block. GlobalSize
  8.  *   was called from WinMain in this sample application.
  9.  *
  10.  */
  11.  
  12. #include <windows.h>
  13. #include <stdio.h>
  14.  
  15. int PASCAL WinMain( hInstance, hPrevInstance, lpszCmdLine, cmdShow )
  16.     HANDLE hInstance, hPrevInstance;
  17.     LPSTR lpszCmdLine;
  18.     int cmdShow;
  19.     {
  20.     HANDLE hMemBlock;      /* Handle to memory block        */
  21.     char szBuff[80];
  22.     DWORD SizeMem;      /* holds sizes of memory blocks    */
  23.  
  24.     hMemBlock = GlobalAlloc(GMEM_ZEROINIT | GMEM_MOVEABLE, 200L);
  25.  
  26.     /* if memory allocated properly */
  27.     if (hMemBlock)
  28.     {
  29.     MessageBox(NULL,"The memory was allocated properly",
  30.            "GlobalAlloc",MB_OK);
  31.  
  32.     /* get the size of hMemBlock */
  33.     SizeMem = GlobalSize(hMemBlock);
  34.     sprintf(szBuff,"Size allocated = %lu",SizeMem);
  35.     MessageBox(NULL, szBuff, "Before GlobalReAlloc...", MB_OK);
  36.  
  37.     hMemBlock = GlobalReAlloc(hMemBlock,      /* change the size of the */
  38.                   (DWORD)30,      /* allocated block to 30  */
  39.                   GMEM_MOVEABLE); /*       bytes        */
  40.     if (hMemBlock)
  41.         {
  42.         SizeMem = GlobalSize(hMemBlock);
  43.         sprintf(szBuff,"Size allocated = %lu",SizeMem);
  44.         MessageBox(NULL, szBuff, "After GlobalReAlloc...",MB_OK);
  45.         }
  46.     else
  47.         MessageBox(NULL, "GlobalReAlloc failed", "GlobaReAlloc",MB_OK);
  48.  
  49.     GlobalFree(hMemBlock);        /* free hMemblock */
  50.     }
  51.     return 0;
  52.     }
  53.