Progress
Language Reference


GET-SIZE Function

Interfaces
OS
SpeedScript
All
All
No

Returns (as an INTEGER value) the size (in bytes) of the memory region associated with the specified MEMPTR variable.

SYNTAX

GET-SIZE ( memptr-var ) 

memptr-var

A MEMPTR variable. If the variable is uninitialized (has no associated memory region), the function returns 0.

EXAMPLE

The following example allocates three memory regions-for a BITMAPINFO structure, a BITMAPINFOHEADER structure, and an RGB color array. It then displays the allocation size for each region. These structures describe a device-independent bitmap for Windows dynamic link library (DLL) routines. For more information on these bitmap structures, see your Windows Software Development Kit documentation.

r-getsiz.p
DEFINE VARIABLE bitmapinfo       AS MEMPTR.
DEFINE VARIABLE bitmapinfoheader AS MEMPTR.
DEFINE VARIABLE RGBcolors        AS MEMPTR.

SET-SIZE(bitmapinfo) = 4        /* Pointer to bitmapinfoheader */
                     + 4        /* Pointer to RGBcolors        */
                      .
SET-SIZE(bitmapinfoheader) = 4  /* biSize          */
                           + 4  /* biWidth         */
                           + 4  /* biHeight        */
                           + 2  /* biPlanes        */
                           + 2  /* biBitCount      */
                           + 4  /* biCompression   */
                           + 4  /* biSizeImage     */
                           + 4  /* biXpelsPerMeter */
                           + 4  /* biYPelsPerMeter */
                           + 4  /* biClrUsed       */
                           + 4  /* biClrImportant  */
                            .
SET-SIZE(RGBcolors) = 16 * 4.   /* Array for 16 RGB color values */

DISPLAY 
   GET-SIZE(bitmapinfo) 
      LABEL "Bitmap info structure size" COLON 30 SKIP
   GET-SIZE(bitmapinfoheader) 
      LABEL "Bitmap header structure size" COLON 30 SKIP
   GET-SIZE(RGBcolors)
      LABEL "Bitmap colors array size" COLON 30
WITH SIDE-LABELS. 

NOTES

SEE ALSO

SET-SIZE Statement


Copyright © 2004 Progress Software Corporation
www.progress.com
Voice: (781) 280-4000
Fax: (781) 280-4095