JTYPES.H
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:5k
源码类别:

Windows编程

开发平台:

Visual C++

  1. /******************************Module*Header*******************************
  2. * Module Name: jtypes.h
  3. *
  4. * Contains the INFO structure and handy macros
  5. *
  6. * Created: 10-Jan-1992 13:21:01
  7. * Author: Petrus Wong
  8. *
  9. * Copyright (C) 1993-1997 Microsoft Corporation
  10. *
  11. * The INFO structure is allocated dynmamically when the MDI child is
  12. * created and freed when the window is about to be destroyed.  The pointer
  13. * to this data structure is stored in the LONG user data window structure.
  14. * This data structure stores the per-window's info.
  15. *
  16. * Dependencies:
  17. *
  18. *   #include windows.h
  19. *
  20. **************************************************************************/
  21. //
  22. // Handy macros for the transformations used in fractal generations
  23. //
  24. #define Xform(Pt, SrcFrom, SrcTo, DestFrom, DestTo) 
  25.          (((Pt-SrcFrom)/(SrcTo-SrcFrom)*(DestTo-DestFrom))+DestFrom)
  26. #define Xform2(Pt, SrcFrom, SrcTo, DestFrom, DestTo) 
  27.          ((int) ((Pt-SrcFrom)/(SrcTo-SrcFrom)*(DestTo-DestFrom)+DestFrom))
  28. #define XformFix(Pt, SrcFrom, SrcTo, DestFrom, DestTo) 
  29.          (lMul(lDiv(Pt-SrcFrom,SrcTo-SrcFrom), DestTo-DestFrom)+DestFrom)
  30. #define SIZEOFCAPTIONTEXT 20
  31. #define MAX_FRAME           800
  32. #define MAX_FILE            800
  33. typedef struct _FileInfo{
  34.     HANDLE      hFile;
  35.     HANDLE      hMapFile;
  36.     LPVOID      lpvMapView;
  37. } FILEINFO, *PFILEINFO;
  38. typedef struct _RLEDATA{
  39.     ULONG           ulFiles;
  40.     ULONG           ulFrames;
  41.     HPALETTE        hPal;
  42.     LPBITMAPINFO    pbmi;
  43.     FILEINFO        rgFileInfo[MAX_FILE];
  44.     PBYTE           rgpjFrame[MAX_FRAME];
  45.     ULONG           ulSize[MAX_FRAME];
  46.     PBITMAPINFO     rgpbmi[MAX_FRAME];
  47. } RLEDATA, *PRLEDATA;
  48. typedef struct _PerWndInfo {
  49.     char    CaptionBarText[SIZEOFCAPTIONTEXT];
  50.     HWND    hwnd;               // hJulia or hView, the drawing surface
  51.     HWND    hParent;            // ghwndClient, the client area of main frame
  52.     HWND    hTextWnd;           // hTextWnd, the status window
  53.     RECT    rcClient;           // hJulia & hTextWnd's parent rc
  54.     HDC     hdcClient;          // DC handle of client area of main frame
  55.     HRGN    hRgnPath;           // Region handle for the drawing surface
  56.     HANDLE  hThrd;              // handle to drawing thread or play thread
  57.     HANDLE  hThrd0;
  58.     BOOL    bDrawing;           // curently drawing?
  59.     DWORD   dwThreadId;         // drawing thread or play thread ID
  60.     DWORD   dwElapsed;          // elapsed time for the drawing operation
  61.     double  xFrom;              // drawing range in floating points
  62.     double  xTo;                //
  63.     double  yFrom;              //         Floating Points
  64.     double  yTo;                //
  65.     double  c1;                 // C = c1 + i c2 where c1, c2 are reals
  66.     double  c2;                 // the C value corresponding to the Julia set
  67.     LONG    lxFrom;             // drawing range in fix points
  68.     LONG    lxTo;               //
  69.     LONG    lyFrom;             //         Fix Points
  70.     LONG    lyTo;               //
  71.     LONG    lc1;                // C = c1 + i c2 where c1, c2 are reals
  72.     LONG    lc2;                // the C value corresponding to the Julia set
  73.     HBITMAP hBmpSaved;          // saved bitmap for the drawing
  74.     BOOL    bSizeChng;          //        not used
  75.     BOOL    bMandel;            // Drawing is a Mandelbrot or Julia set?
  76.     int     iIteration;         // number of computations done on each pixel
  77.     int     iStep;              // drawn on every one, two or three line(s)?
  78.     BOOL    bStretch;           // stretching bitmaps
  79.     int     iStretchMode;       // stretching mode to use
  80.     BOOL    bSetDIBsToDevice;   // SetDIBsToDevice reather than BitBlt?
  81.     BOOL    bFill;              // FloodFill mode presently?
  82.     HBRUSH  hBrush;             // handle to brush
  83.     HANDLE  hQuitEvent;         // Event for quiting color cycling thread
  84.     HANDLE  hCycleThrd;         // Color cycling thread
  85.     DWORD   dwCycleThrdID;      // Color cycling thread ID
  86.     BOOL    bClrCycle;          // For suspending and resuming color cycle thrd
  87.     BOOL    bFirstTime;         // Creating color cycling thrd only once
  88.     DWORD   dwSuspend;          // Store return result of suspend/resume cycle thrd
  89.     HBITMAP hBmpMono;           // Monochrome bitmap
  90.     BOOL    bUseMono;           // Display monochrome bitmap instead
  91.     HANDLE  hPrtThrd;           // Print thread
  92.     DWORD   dwPrtThrdID;        // Print thread ID
  93.     HPALETTE    hPal;           // The palette used for the drawing
  94.     HPALETTE    hHTPal;         // The halftone palette used for the drawing
  95.     HPALETTE    hCyclePal;
  96.     RLEDATA RleData;            // RLE data for RLE viewer
  97.     BOOL    bPlayRleCont;       // Playing RLE continuously
  98.     PVOID   *prghPen;           // Pointer to array of hPen
  99.     INT     iPen;               // number of Pens
  100.     INT     iPriority;          // thread priority
  101.     BOOL    bUseDIB;            // Should we use the DIB for stretch?
  102.     BOOL    bCoreHdr;           // used in bDrawDIB
  103. } INFO, *PINFO;
  104. typedef struct _PrtData{
  105.     INFO        info;
  106.     int         index;
  107.     BOOL        bUseDefault;
  108.     DEVMODE     DevMode;
  109. } PRTDATA, *PPRTDATA;
  110. typedef struct _FileHdr{
  111.     DWORD       bfSize;
  112.     WORD        bfReserved1;
  113.     WORD        bfReserved2;
  114.     DWORD       bfOffbits;
  115. } FILEHDR;