home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / sp15demo.zip / libsrc.zip / LIBSRC / PMDEV.PAS < prev    next >
Pascal/Delphi Source File  |  1995-10-06  |  10KB  |  288 lines

  1. UNIT PmDev;
  2.  
  3.  
  4. {****************************** Module Header *****************************
  5. *                                                                         *
  6. * Module Name: PMDEV.PAS                                                  *
  7. *                                                                         *
  8. * OS/2 Presentation Manager Device Context constants, types and           *
  9. * function declarations                                                   *
  10. *                                                                         *
  11. *                                                                         *
  12. ***************************************************************************}
  13.  
  14. INTERFACE
  15.  
  16. USES Os2Def;
  17.  
  18. { General DEV return values }
  19. CONST
  20.       DEV_ERROR                       =0;
  21.       DEV_OK                          =1;
  22.  
  23.    { DC type for DevOpenDC }
  24.       OD_QUEUED                       =2;
  25.       OD_DIRECT                       =5;
  26.       OD_INFO                         =6;
  27.       OD_METAFILE                     =7;
  28.       OD_MEMORY                       =8;
  29.       OD_METAFILE_NOQUERY             =9;
  30.  
  31.    { codes for DevQueryCaps }
  32.       CAPS_FAMILY                     =0;
  33.       CAPS_IO_CAPS                    =1;
  34.       CAPS_TECHNOLOGY                 =2;
  35.       CAPS_DRIVER_VERSION             =3;
  36.       CAPS_WIDTH                      =4;      { pels            }
  37.       CAPS_HEIGHT                     =5;      { pels            }
  38.       CAPS_WIDTH_IN_CHARS             =6;
  39.       CAPS_HEIGHT_IN_CHARS            =7;
  40.       CAPS_HORIZONTAL_RESOLUTION      =8;      { pels per meter  }
  41.       CAPS_VERTICAL_RESOLUTION        =9;      { pels per meter  }
  42.       CAPS_CHAR_WIDTH                 =10;      { pels            }
  43.       CAPS_CHAR_HEIGHT                =11;      { pels            }
  44.       CAPS_SMALL_CHAR_WIDTH           =12;      { pels            }
  45.       CAPS_SMALL_CHAR_HEIGHT          =13;      { pels            }
  46.       CAPS_COLORS                     =14;
  47.       CAPS_COLOR_PLANES               =15;
  48.       CAPS_COLOR_BITCOUNT             =16;
  49.       CAPS_COLOR_TABLE_SUPPORT        =17;
  50.       CAPS_MOUSE_BUTTONS              =18;
  51.       CAPS_FOREGROUND_MIX_SUPPORT     =19;
  52.       CAPS_BACKGROUND_MIX_SUPPORT     =20;
  53.       CAPS_DEVICE_WINDOWING           =31;
  54.       CAPS_ADDITIONAL_GRAPHICS        =32;
  55.       CAPS_VIO_LOADABLE_FONTS         =21;
  56.       CAPS_WINDOW_BYTE_ALIGNMENT      =22;
  57.       CAPS_BITMAP_FORMATS             =23;
  58.       CAPS_RASTER_CAPS                =24;
  59.       CAPS_MARKER_HEIGHT              =25;      { pels            }
  60.       CAPS_MARKER_WIDTH               =26;      { pels            }
  61.       CAPS_DEVICE_FONTS               =27;
  62.       CAPS_GRAPHICS_SUBSET            =28;
  63.       CAPS_GRAPHICS_VERSION           =29;
  64.       CAPS_GRAPHICS_VECTOR_SUBSET     =30;
  65.       CAPS_PHYS_COLORS                =33;
  66.       CAPS_COLOR_INDEX                =34;
  67.       CAPS_GRAPHICS_CHAR_WIDTH        =35;
  68.       CAPS_GRAPHICS_CHAR_HEIGHT       =36;
  69.       CAPS_HORIZONTAL_FONT_RES        =37;
  70.       CAPS_VERTICAL_FONT_RES          =38;
  71.       CAPS_DEVICE_FONT_SIM            =39;
  72.       CAPS_LINEWIDTH_THICK            =40;
  73.       CAPS_DEVICE_POLYSET_POINTS      =41;
  74.  
  75.    { Constants for CAPS_IO_CAPS }
  76.       CAPS_IO_DUMMY                   =1;
  77.       CAPS_IO_SUPPORTS_OP             =2;
  78.       CAPS_IO_SUPPORTS_IP             =3;
  79.       CAPS_IO_SUPPORTS_IO             =4;
  80.  
  81.    { Constants for CAPS_TECHNOLOGY }
  82.       CAPS_TECH_UNKNOWN               =0;
  83.       CAPS_TECH_VECTOR_PLOTTER        =1;
  84.       CAPS_TECH_RASTER_DISPLAY        =2;
  85.       CAPS_TECH_RASTER_PRINTER        =3;
  86.       CAPS_TECH_RASTER_CAMERA         =4;
  87.       CAPS_TECH_POSTSCRIPT            =5;
  88.  
  89.    { Constants for CAPS_COLOR_TABLE_SUPPORT }
  90.       CAPS_COLTABL_RGB_8              =1;
  91.       CAPS_COLTABL_RGB_8_PLUS         =2;
  92.       CAPS_COLTABL_TRUE_MIX           =4;
  93.       CAPS_COLTABL_REALIZE            =8;
  94.  
  95.    { Constants for CAPS_FOREGROUND_MIX_SUPPORT }
  96.       CAPS_FM_OR                      =1;
  97.       CAPS_FM_OVERPAINT               =2;
  98.       CAPS_FM_XOR                     =8;
  99.       CAPS_FM_LEAVEALONE             =16;
  100.       CAPS_FM_AND                    =32;
  101.       CAPS_FM_GENERAL_BOOLEAN        =64;
  102.  
  103.    { Constants for CAPS_BACKGROUND_MIX_SUPPORT }
  104.       CAPS_BM_OR                      =1;
  105.       CAPS_BM_OVERPAINT               =2;
  106.       CAPS_BM_XOR                     =8;
  107.       CAPS_BM_LEAVEALONE             =16;
  108.       CAPS_BM_AND                    =32;
  109.       CAPS_BM_GENERAL_BOOLEAN        =64;
  110.       CAPS_BM_SRCTRANSPARENT        =128;
  111.       CAPS_BM_DESTTRANSPARENT       =256;
  112.  
  113.    { Constants for CAPS_DEVICE_WINDOWING }
  114.       CAPS_DEV_WINDOWING_SUPPORT      =1;
  115.  
  116.    { Constants for CAPS_ADDITIONAL_GRAPHICS }
  117.       CAPS_VDD_DDB_TRANSFER            =1;
  118.       CAPS_GRAPHICS_KERNING_SUPPORT    =2;
  119.       CAPS_FONT_OUTLINE_DEFAULT        =4;
  120.       CAPS_FONT_IMAGE_DEFAULT          =8;
  121.    { bits represented by values 16L and 32L are reserved }
  122.       CAPS_SCALED_DEFAULT_MARKERS     =64;
  123.       CAPS_COLOR_CURSOR_SUPPORT      =128;
  124.       CAPS_PALETTE_MANAGER           =256;
  125.       CAPS_COSMETIC_WIDELINE_SUPPORT =512;
  126.       CAPS_DIRECT_FILL              =1024;
  127.       CAPS_REBUILD_FILLS            =2048;
  128.       CAPS_CLIP_FILLS               =$00001000; { 4096L  }
  129.       CAPS_ENHANCED_FONTMETRICS     =$00002000; { 8192L  }
  130.       CAPS_TRANSFORM_SUPPORT        =$00004000; { 16384L }
  131.  
  132.       { Constants for CAPS_WINDOW_BYTE_ALIGNMENT }
  133.       CAPS_BYTE_ALIGN_REQUIRED        =0;
  134.       CAPS_BYTE_ALIGN_RECOMMENDED     =1;
  135.       CAPS_BYTE_ALIGN_NOT_REQUIRED    =2;
  136.  
  137.    { Constants for CAPS_RASTER_CAPS }
  138.       CAPS_RASTER_BITBLT              =1;
  139.       CAPS_RASTER_BANDING             =2;
  140.       CAPS_RASTER_BITBLT_SCALING      =4;
  141.       CAPS_RASTER_SET_PEL            =16;
  142.       CAPS_RASTER_FONTS              =32;
  143.       CAPS_RASTER_FLOOD_FILL         =64;
  144.  
  145. { structures for DEVESC_QUERYVIOCELLSIZES }
  146.  
  147. TYPE
  148.     PVIOSIZECOUNT=^VIOSIZECOUNT;
  149.     VIOSIZECOUNT=RECORD
  150.                      maxcount:LONG;
  151.                      count:LONG;
  152.                  END;
  153.  
  154.     PVIOFONTCELLSIZE=^VIOFONTCELLSIZE;
  155.     VIOFONTCELLSIZE=RECORD
  156.                          cx:LONG;
  157.                          cy:LONG;
  158.                     END;
  159.  
  160.       { structure for DEVESC_GETSCALINGFACTOR }
  161.     PSFACTORS=^SFACTORS;
  162.     SFACTORS=RECORD
  163.                   x:LONG;
  164.                   y:LONG;
  165.              END;
  166.  
  167.     { structure for DEVESC_NEXTBAND }
  168.     PBANDRECT=^BANDRECT;
  169.     BANDRECT=RECORD
  170.                    xleft:LONG;
  171.                    ybottom:LONG;
  172.                    xright:LONG;
  173.                    ytop:LONG;
  174.              END;
  175.  
  176.     { return codes for DevEscape }
  177. CONST
  178.     DEVESC_ERROR                  =-1;
  179.     DEVESC_NOTIMPLEMENTED         =0;
  180.  
  181.     { codes for DevEscape }
  182.     DEVESC_QUERYESCSUPPORT      =   0;
  183.     DEVESC_GETSCALINGFACTOR     =   1;
  184.     DEVESC_QUERYVIOCELLSIZES    =   2;
  185.     DEVESC_GETCP                =8000;
  186.  
  187.     DEVESC_STARTDOC             =8150;
  188.     DEVESC_ENDDOC               =8151;
  189.     DEVESC_NEXTBAND             =8152;
  190.     DEVESC_ABORTDOC             =8153;
  191.  
  192.     DEVESC_NEWFRAME            =16300;
  193.     DEVESC_DRAFTMODE           =16301;
  194.     DEVESC_FLUSHOUTPUT         =16302;
  195.     DEVESC_RAWDATA             =16303;
  196.     DEVESC_SETMODE             =16304;
  197.  
  198.     DEVESC_DBE_FIRST           =24450;
  199.     DEVESC_DBE_LAST            =24455;
  200.  
  201.     { DevEscape codes for adding extra space to character strings }
  202.     DEVESC_CHAR_EXTRA          =16998;
  203.     DEVESC_BREAK_EXTRA         =16999;
  204.  
  205.     { codes for DevEscape PM_Q_ESC spool files }
  206.     DEVESC_STD_JOURNAL         =32600;
  207.  
  208.     { structure for DEVESC_SETMODE }
  209. TYPE
  210.     PESCMODE=^ESCMODE;
  211.     ESCMODE=RECORD
  212.                  mode:ULONG;
  213.                  modedata:BYTE;
  214.             END;
  215.  
  216.     { return codes for DevPostDeviceModes }
  217. CONST
  218.      DPDM_ERROR                   =-1;
  219.      DPDM_NONE                    =0;
  220.  
  221.      { codes for DevPostDeviceModes }
  222.      DPDM_POSTJOBPROP             =0;
  223.      DPDM_CHANGEPROP              =1;
  224.      DPDM_QUERYJOBPROP            =2;
  225.  
  226.      { string types for DevQueryDeviceNames }
  227. TYPE
  228.      STR8 =CSTRING[7];
  229.      STR16=CSTRING[15];
  230.      STR32=CSTRING[31];
  231.      STR64=CSTRING[63];
  232.  
  233.      { return code for DevQueryHardcopyCaps }
  234. CONST
  235.      DQHC_ERROR                    =-1;
  236.  
  237.      { codes for DevQueryHardcopyCaps }
  238. CONST
  239.      HCAPS_CURRENT                 =1;
  240.      HCAPS_SELECTABLE              =2;
  241.  
  242.      { structure for DevQueryHardcopyCaps }
  243. TYPE
  244.      PHCINFO=^HCINFO;
  245.      HCINFO=RECORD
  246.                   szFormname:CSTRING[31];
  247.                   cx:LONG;
  248.                   cy:LONG;
  249.                   xLeftClip:LONG;
  250.                   yBottomClip:LONG;
  251.                   xRightClip:LONG;
  252.                   yTopClip:LONG;
  253.                   xPels:LONG;
  254.                   yPels:LONG;
  255.                   flAttributes:LONG;
  256.             END;
  257.  
  258. IMPORTS
  259.  
  260. FUNCTION DevOpenDC(ahab:HAB;lType:LONG;pszToken:CSTRING;lCount:LONG;
  261.                    VAR pdopData:DEVOPENSTRUC;hdcComp:HDC):HDC;
  262.                    APIENTRY;         PMGPI index 610;
  263. FUNCTION DevCloseDC(ahdc:HDC):HMF;
  264.                     APIENTRY;         PMGPI index 604;
  265. FUNCTION DevQueryCaps(ahdc:HDC;lStart,lCount:LONG;VAR alArray:LONG):BOOL;
  266.                     APIENTRY;         PMGPI index 606;
  267. FUNCTION DevEscape(ahdc:HDC;lCode,lInCount:LONG;VAR pbInData;
  268.                    VAR plOutCount:LONG;VAR pbOutData):LONG;
  269.                     APIENTRY;         PMGPI index 605;
  270. FUNCTION DevQueryDeviceNames(ahab:HAB;pszDriverName:CSTRING;VAR pldn:LONG;
  271.                              aDeviceName:STR32;aDeviceDesc:STR64;
  272.                              VAR pldt:LONG;aDataType:STR16):BOOL;
  273.                     APIENTRY;         PMGPI index 607;
  274. FUNCTION DevQueryHardcopyCaps(ahdc:HDC;lStartForm,lForms:LONG;
  275.                               VAR phciHcInfo:HCINFO):LONG;
  276.                     APIENTRY;         PMGPI index 608;
  277. FUNCTION DevPostDeviceModes(ahab:HAB;VAR pdrivDriverData:DRIVDATA;
  278.                             pszDriverName,pszDeviceName,pszName:CSTRING;
  279.                             flOptions:ULONG):LONG;
  280.                     APIENTRY;         PMGPI index 609;
  281. END; {IMPORTS}
  282.  
  283.  
  284. IMPLEMENTATION
  285.  
  286. BEGIN
  287. END.
  288.