home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / msdn_vcb / samples / vc98 / sdk / graphics / gdi / printer / getcaps.h < prev    next >
C/C++ Source or Header  |  1997-10-05  |  9KB  |  210 lines

  1.  
  2. /******************************************************************************\
  3. *       This is a part of the Microsoft Source Code Samples. 
  4. *       Copyright (C) 1993-1997 Microsoft Corporation.
  5. *       All rights reserved. 
  6. *       This source code is only intended as a supplement to 
  7. *       Microsoft Development Tools and/or WinHelp documentation.
  8. *       See these sources for detailed information regarding the 
  9. *       Microsoft samples programs.
  10. \******************************************************************************/
  11.  
  12. /******************************************************************************\
  13. *
  14. *                               GETCAPS.H
  15. *
  16. \******************************************************************************/
  17. #include "strings.h"
  18.  
  19.  
  20. /******************************************************************************\
  21. *                           SYMBOLIC CONSTANTS
  22. \******************************************************************************/
  23.  
  24. #define MAX_DEVICE_CAPS     34     // num entries in gaCaps table
  25.  
  26. #define MAX_TECHNOLOGY_CAPS 7      // num entries in gaTechnologyCaps table
  27. #define MAX_CURVE_CAPS      10     // num entries in gaCurveCaps table
  28. #define MAX_LINE_CAPS       8      // num entries in gaLineCaps table
  29. #define MAX_POLYGON_CAPS    10     // num entries in gaPolygonCaps table
  30. #define MAX_TEXT_CAPS       16     // num entries in gaTextCaps table
  31. #define MAX_RASTER_CAPS     17     // num entries in gaRasterCaps table
  32. #define MAX_CLIP_CAPS       3      // num entries in gaClipCaps table
  33.  
  34. #define BLANKS              "                 \t\t" // see gaCaps to get spacing
  35.  
  36. #define ERR_MOD_NAME       IDS_ERR_GETCAPS
  37.  
  38.  
  39.  
  40. /******************************************************************************\
  41. *                                TYPEDEFS
  42. \******************************************************************************/
  43.  
  44. typedef struct tagCAPSLOOKUP
  45. {
  46.   int     iValue;
  47.   LPTSTR  szValue;
  48.  
  49. } CAPSLOOKUP;
  50.  
  51.  
  52.  
  53. /******************************************************************************\
  54. *                            GLOBAL VARIABLES
  55. \******************************************************************************/
  56.  
  57. HWND ghwndDevCaps;
  58.  
  59. CAPSLOOKUP gaCaps[] =
  60.  
  61.     { { DRIVERVERSION,   "DRIVERVERSION:   \t%ld"   },
  62.       { TECHNOLOGY,      "TECHNOLOGY:      \t"      },
  63.       { HORZSIZE,        "HORZSIZE:        \t\t%ld" },
  64.       { VERTSIZE,        "VERTSIZE:        \t\t%ld" },
  65.       { HORZRES,         "HORZRES:         \t\t%ld" },
  66.       { VERTRES,         "VERTRES:         \t\t%ld" },
  67.       { BITSPIXEL,       "BITSPIXEL:       \t\t%ld" },
  68.       { PLANES,          "PLANES:          \t\t%ld" },
  69.       { NUMBRUSHES,      "NUMBRUSHES:      \t%ld"   },
  70.       { NUMPENS,         "NUMPENS:         \t\t%ld" },
  71.       { NUMMARKERS,      "NUMMARKERS:      \t%ld"   },
  72.       { NUMFONTS,        "NUMFONTS:        \t\t%ld" },
  73.       { NUMCOLORS,       "NUMCOLORS:       \t%ld"   },
  74.       { PDEVICESIZE,     "PDEVICESIZE:     \t\t%ld" },
  75.       { CURVECAPS,       "CURVECAPS:       \t\t"    },
  76.       { LINECAPS,        "LINECAPS:        \t\t"    },
  77.       { POLYGONALCAPS,   "POLYGONALCAPS:   \t"      },
  78.       { TEXTCAPS,        "TEXTCAPS:        \t\t"    },
  79.       { CLIPCAPS,        "CLIPCAPS:        \t\t"    },
  80.       { RASTERCAPS,      "RASTERCAPS:      \t"      },
  81.       { ASPECTX,         "ASPECTX:         \t\t%ld" },
  82.       { ASPECTY,         "ASPECTY:         \t\t%ld" },
  83.       { ASPECTXY,        "ASPECTXY:        \t\t%ld" },
  84.       { LOGPIXELSX,      "LOGPIXELSX:      \t\t%ld" },
  85.       { LOGPIXELSY,      "LOGPIXELSY:      \t\t%ld" },
  86.       { SIZEPALETTE,     "SIZEPALETTE:     \t\t%ld" },
  87.       { NUMRESERVED,     "NUMRESERVED:     \t%ld"   },
  88.       { COLORRES,        "COLORRES:        \t\t%ld" },
  89.       { PHYSICALWIDTH,   "PHYSICALWIDTH:   \t%ld"   },
  90.       { PHYSICALHEIGHT,  "PHYSICALHEIGHT:  \t%ld"   },
  91.       { PHYSICALOFFSETX, "PHYSICALOFFSETX: \t%ld"   },
  92.       { PHYSICALOFFSETY, "PHYSICALOFFSETY: \t%ld"   },
  93.       { SCALINGFACTORX,  "SCALINGFACTORX:  \t%ld"   },
  94.       { SCALINGFACTORY,  "SCALINGFACTORY:  \t%ld"   }  };
  95.  
  96.  
  97. CAPSLOOKUP gaTechnologyCaps[] =
  98.  
  99.     { { DT_PLOTTER,      "DT_PLOTTER "      },
  100.       { DT_RASDISPLAY,   "DT_RASDISPLAY "   },
  101.       { DT_RASPRINTER,   "DT_RASPRINTER "   },
  102.       { DT_RASCAMERA,    "DT_RASCAMERA "    },
  103.       { DT_CHARSTREAM,   "DT_CHARSTREAM "   },
  104.       { DT_METAFILE,     "DT_METAFILE "     },
  105.       { DT_DISPFILE,     "DT_DISPFILE "     } };
  106.  
  107. CAPSLOOKUP gaCurveCaps[] =
  108.  
  109.     { { CC_NONE,         "CC_NONE "         },
  110.       { CC_CIRCLES,      "CC_CIRCLES "      },
  111.       { CC_PIE,          "CC_PIE "          },
  112.       { CC_CHORD,        "CC_CHORD "        },
  113.       { CC_ELLIPSES,     "CC_ELLIPSES "     },
  114.       { CC_WIDE,         "CC_WIDE "         },
  115.       { CC_STYLED,       "CC_STYLED "       },
  116.       { CC_WIDESTYLED,   "CC_WIDESTYLED "   },
  117.       { CC_INTERIORS,    "CC_INTERIORS "    },
  118.       { CC_ROUNDRECT,    "CC_ROUNDRECT "    } };
  119.  
  120. CAPSLOOKUP gaLineCaps[] =
  121.  
  122.     { { LC_NONE,         "LC_NONE "         },
  123.       { LC_POLYLINE,     "LC_POLYLINE "     },
  124.       { LC_MARKER,       "LC_MARKER "       },
  125.       { LC_POLYMARKER,   "LC_POLYMARKER "   },
  126.       { LC_WIDE,         "LC_WIDE "         },
  127.       { LC_STYLED,       "LC_STYLED "       },
  128.       { LC_WIDESTYLED,   "LC_WIDESTYLED "   },
  129.       { LC_INTERIORS,    "LC_INTERIORS "    } };
  130.  
  131. CAPSLOOKUP gaPolygonCaps[] =
  132.  
  133.     { { PC_NONE,         "PC_NONE "         },
  134.       { PC_POLYGON,      "PC_POLYGON "      },
  135.       { PC_RECTANGLE,    "PC_RECTANGLE "    },
  136.       { PC_WINDPOLYGON,  "PC_WINDPOLYGON"   },
  137.       { PC_TRAPEZOID,    "PC_TRAPEZOID"     },
  138.       { PC_SCANLINE,     "PC_SCANLINE"      },
  139.       { PC_WIDE,         "PC_WIDE"          },
  140.       { PC_STYLED,       "PC_STYLED"        },
  141.       { PC_WIDESTYLED,   "PC_WIDESTYLED"    },
  142.       { PC_INTERIORS,    "PC_INTERIORS"     } };
  143.  
  144. CAPSLOOKUP gaTextCaps[] =
  145.  
  146.     { { TC_OP_CHARACTER, "TC_OP_CHARACTER"  },
  147.       { TC_OP_STROKE,    "TC_OP_STROKE"     },
  148.       { TC_CP_STROKE,    "TC_CP_STROKE"     },
  149.       { TC_CR_90,        "TC_CR_90"         },
  150.       { TC_CR_ANY,       "TC_CR_ANY"        },
  151.       { TC_SF_X_YINDEP,  "TC_SF_X_YINDEP "  },
  152.       { TC_SA_DOUBLE,    "TC_SA_DOUBLE "    },
  153.       { TC_SA_INTEGER,   "TC_SA_INTEGER "   },
  154.       { TC_SA_CONTIN,    "TC_SA_CONTIN "    },
  155.       { TC_EA_DOUBLE,    "TC_EA_DOUBLE "    },
  156.       { TC_IA_ABLE,      "TC_IA_ABLE "      },
  157.       { TC_UA_ABLE,      "TC_UA_ABLE "      },
  158.       { TC_SO_ABLE,      "TC_SO_ABLE "      },
  159.       { TC_RA_ABLE,      "TC_RA_ABLE "      },
  160.       { TC_VA_ABLE,      "TC_VA_ABLE "      },
  161.       { TC_RESERVED,     "TC_RESERVED "     },
  162.       { TC_SCROLLBLT,    "TC_SCROLLBLT "     } };
  163.  
  164. CAPSLOOKUP gaRasterCaps[] =
  165.  
  166.     { { 0,               "RC_NONE "         }, // !!! RC_NONE not #def'd
  167.       { RC_BITBLT,       "RC_BITBLT "       },
  168.       { RC_BANDING,      "RC_BANDING "      },
  169.       { RC_SCALING,      "RC_SCALING "      },
  170.       { RC_BITMAP64,     "RC_BITMAP64 "     },
  171.       { RC_GDI20_OUTPUT, "RC_GDI20_OUTPUT " },
  172.       { RC_GDI20_STATE,  "RC_GDI20_STATE "  },
  173.       { RC_SAVEBITMAP,   "RC_SAVEBITMAP "   },
  174.       { RC_DI_BITMAP,    "RC_DI_BITMAP "    },
  175.       { RC_PALETTE,      "RC_PALETTE "      },
  176.       { RC_DIBTODEV,     "RC_DIBTODEV "     },
  177.       { RC_BIGFONT,      "RC_BIGFONT "      },
  178.       { RC_STRETCHBLT,   "RC_STRETCHBLT "   },
  179.       { RC_FLOODFILL,    "RC_FLOODFILL "    },
  180.       { RC_STRETCHDIB,   "RC_STRETCHDIB "   },
  181.       { RC_OP_DX_OUTPUT, "RC_OP_DX_OUTPUT " },
  182.       { RC_DEVBITS,      "RC_DEVBITS "      } };
  183.  
  184. CAPSLOOKUP gaClipCaps[] =
  185.  
  186.     { { CP_NONE,         "CP_NONE "         },
  187.       { CP_RECTANGLE,    "CP_RECTANGLE "    },
  188.       { CP_REGION,       "CP_REGION "       } };
  189.  
  190.  
  191.  
  192. /******************************************************************************\
  193. *                          EXTERNAL VARIABLES
  194. \******************************************************************************/
  195.  
  196. extern HWND ghwndMain;
  197. extern char gszDeviceName [];
  198. extern char gszDriverName [];
  199. extern char gszPort       [];
  200.  
  201.  
  202.  
  203. /******************************************************************************\
  204. *                          FUNCTION PROTOTYPES
  205. \******************************************************************************/
  206.  
  207. BOOL DisplayDeviceCapsInfo (void);
  208. void TranslateDeviceCaps   (int, int, int);
  209. void ComplexDeviceCapsLine (char *, CAPSLOOKUP *, int, int);
  210.