home *** CD-ROM | disk | FTP | other *** search
/ Microsoft Programmer's Library 1.3 / Microsoft-Programers-Library-v1.3.iso / sampcode / win_lrn / metafile / gmetafb.c < prev    next >
C/C++ Source or Header  |  1988-08-10  |  2KB  |  56 lines

  1. /*
  2.  *  This program demonstrates the use of the function GetMetaFileBits.
  3.  *  This function returns a handle to a global memory block containing the
  4.  *  specified metafile as a collection of bits.
  5.  */
  6.  
  7. #include <windows.h>
  8.  
  9. static HANDLE hWnd;
  10. HANDLE hMem;
  11.  
  12. int PASCAL WinMain(hInstance, hPrevInstance, lpszCmdLine, cmdShow)
  13. HANDLE hInstance, hPrevInstance;
  14. LPSTR  lpszCmdLine;
  15. int    cmdShow;
  16. {
  17.   static char szFuncName[] = "GetMetaFileBits()";
  18.   char szOutBuf[40];
  19.   HANDLE hMF;
  20.   HANDLE hMetaDC; 
  21.   
  22.   MessageBox(GetFocus(), (LPSTR)"Creating Memory Metafile",
  23.              (LPSTR)"CretaeMetaFile()", MB_OK);
  24.   hMetaDC = CreateMetaFile(NULL);
  25.   if (hMetaDC == NULL)
  26.      MessageBox(GetFocus(), (LPSTR)"Error in Creating Memory Metafile",
  27.                 (LPSTR)"CreateMetaFile() Error!", MB_OK | MB_ICONEXCLAMATION);
  28.   else {
  29.      Rectangle(hMetaDC, 10, 10, 200, 200);
  30.      Rectangle(hMetaDC, 201, 10, 401, 200);
  31.      LineTo(hMetaDC, 100, 250);
  32.      Ellipse(hMetaDC, 0, 0, 100, 100);
  33.      hMF = CloseMetaFile(hMetaDC);
  34.      MessageBox (GetFocus(),
  35.                  (LPSTR)"Getting Handle to Metafile Bits",
  36.                  (LPSTR)szFuncName, MB_OK);
  37.      hMem = GetMetaFileBits(hMF);
  38.      if (hMem == NULL)
  39.         MessageBox (GetFocus(), (LPSTR)"Error in Obtaining Metafile Bit Handle",
  40.                     (LPSTR)szFuncName, MB_OK);
  41.      else {
  42.         MessageBox (GetFocus(), (LPSTR)"Handle Obtained Successfully",
  43.                     (LPSTR)szFuncName, MB_OK);
  44.         if (GlobalSize(hMem) != 0) {
  45.            sprintf(szOutBuf, "%s%lu%s", "The Size of the Metafile is: ",
  46.                    GlobalSize(hMem), " bytes.");
  47.            MessageBox(GetFocus(), (LPSTR)szOutBuf, (LPSTR)"GlobalSize()", MB_OK);
  48.            }
  49.         else
  50.            MessageBox(GetFocus(), (LPSTR)"Error in Obtaining the Size of the Metafile",
  51.                       (LPSTR)"GlobalSize", MB_OK);
  52.         }
  53.      }
  54.   return 0;
  55. }
  56.