mirror of
				https://gitlab.com/freepascal.org/fpc/source.git
				synced 2025-11-03 07:49:25 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			1032 lines
		
	
	
		
			32 KiB
		
	
	
	
		
			ObjectPascal
		
	
	
	
	
	
			
		
		
	
	
			1032 lines
		
	
	
		
			32 KiB
		
	
	
	
		
			ObjectPascal
		
	
	
	
	
	
{
 | 
						|
    This file is part of the Free Pascal run time library.
 | 
						|
    Copyright (c) 2002 by Yuri Prokushev (prokushev@freemail.ru).
 | 
						|
 | 
						|
    OS/2 Presentation Manager Device Context constants, types and
 | 
						|
    function declarations
 | 
						|
 | 
						|
    See the file COPYING.FPC, included in this distribution,
 | 
						|
    for details about the copyright.
 | 
						|
 | 
						|
    This program is distributed in the hope that it will be useful,
 | 
						|
    but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
						|
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 | 
						|
 | 
						|
 **********************************************************************}
 | 
						|
 | 
						|
{Warning: This code is alfa. Future versions
 | 
						|
 of this unit might not be compatible.}
 | 
						|
 | 
						|
{$IFNDEF FPC_DOTTEDUNITS}
 | 
						|
unit pmdev;
 | 
						|
{$ENDIF FPC_DOTTEDUNITS}
 | 
						|
 | 
						|
interface
 | 
						|
 | 
						|
{$IFDEF FPC_DOTTEDUNITS}
 | 
						|
uses
 | 
						|
  OS2Api.os2def;
 | 
						|
{$ELSE FPC_DOTTEDUNITS}
 | 
						|
uses
 | 
						|
  os2def;
 | 
						|
{$ENDIF FPC_DOTTEDUNITS}
 | 
						|
 | 
						|
//General DEV return values
 | 
						|
const
 | 
						|
  DEV_ERROR                       =0;
 | 
						|
  DEV_OK                          =1;
 | 
						|
 | 
						|
//DC type for DevOpenDC
 | 
						|
 | 
						|
  OD_QUEUED                       =2;
 | 
						|
  OD_DIRECT                       =5;
 | 
						|
  OD_INFO                         =6;
 | 
						|
  OD_METAFILE                     =7;
 | 
						|
  OD_MEMORY                       =8;
 | 
						|
  OD_METAFILE_NOQUERY             =9;
 | 
						|
 | 
						|
//codes for DevQueryCaps
 | 
						|
  CAPS_FAMILY                     =0;
 | 
						|
  CAPS_IO_CAPS                    =1;
 | 
						|
  CAPS_TECHNOLOGY                 =2;
 | 
						|
  CAPS_DRIVER_VERSION             =3;
 | 
						|
  CAPS_WIDTH                      =4;  //pels
 | 
						|
  CAPS_HEIGHT                     =5;  //pels
 | 
						|
  CAPS_WIDTH_IN_CHARS             =6;
 | 
						|
  CAPS_HEIGHT_IN_CHARS            =7;
 | 
						|
  CAPS_HORIZONTAL_RESOLUTION      =8;  //pels per meter
 | 
						|
  CAPS_VERTICAL_RESOLUTION        =9;  //pels per meter
 | 
						|
  CAPS_CHAR_WIDTH                 =10; //pels
 | 
						|
  CAPS_CHAR_HEIGHT                =11; //pels
 | 
						|
  CAPS_SMALL_CHAR_WIDTH           =12; //pels
 | 
						|
  CAPS_SMALL_CHAR_HEIGHT          =13; //pels
 | 
						|
  CAPS_COLORS                     =14;
 | 
						|
  CAPS_COLOR_PLANES               =15;
 | 
						|
  CAPS_COLOR_BITCOUNT             =16;
 | 
						|
  CAPS_COLOR_TABLE_SUPPORT        =17;
 | 
						|
  CAPS_MOUSE_BUTTONS              =18;
 | 
						|
  CAPS_FOREGROUND_MIX_SUPPORT     =19;
 | 
						|
  CAPS_BACKGROUND_MIX_SUPPORT     =20;
 | 
						|
  CAPS_DEVICE_WINDOWING           =31;
 | 
						|
  CAPS_ADDITIONAL_GRAPHICS        =32;
 | 
						|
  CAPS_VIO_LOADABLE_FONTS         =21;
 | 
						|
  CAPS_WINDOW_BYTE_ALIGNMENT      =22;
 | 
						|
  CAPS_BITMAP_FORMATS             =23;
 | 
						|
  CAPS_RASTER_CAPS                =24;
 | 
						|
  CAPS_MARKER_HEIGHT              =25; //pels
 | 
						|
  CAPS_MARKER_WIDTH               =26; //pels
 | 
						|
  CAPS_DEVICE_FONTS               =27;
 | 
						|
  CAPS_GRAPHICS_SUBSET            =28;
 | 
						|
  CAPS_GRAPHICS_VERSION           =29;
 | 
						|
  CAPS_GRAPHICS_VECTOR_SUBSET     =30;
 | 
						|
  CAPS_PHYS_COLORS                =33;
 | 
						|
  CAPS_COLOR_INDEX                =34;
 | 
						|
  CAPS_GRAPHICS_CHAR_WIDTH        =35;
 | 
						|
  CAPS_GRAPHICS_CHAR_HEIGHT       =36;
 | 
						|
  CAPS_HORIZONTAL_FONT_RES        =37;
 | 
						|
  CAPS_VERTICAL_FONT_RES          =38;
 | 
						|
  CAPS_DEVICE_FONT_SIM            =39;
 | 
						|
  CAPS_LINEWIDTH_THICK            =40;
 | 
						|
  CAPS_DEVICE_POLYSET_POINTS      =41;
 | 
						|
 | 
						|
//Constants for CAPS_IO_CAPS
 | 
						|
  CAPS_IO_DUMMY                   =1;
 | 
						|
  CAPS_IO_SUPPORTS_OP             =2;
 | 
						|
  CAPS_IO_SUPPORTS_IP             =3;
 | 
						|
  CAPS_IO_SUPPORTS_IO             =4;
 | 
						|
 | 
						|
//Constants for CAPS_TECHNOLOGY
 | 
						|
  CAPS_TECH_UNKNOWN               =0;
 | 
						|
  CAPS_TECH_VECTOR_PLOTTER        =1;
 | 
						|
  CAPS_TECH_RASTER_DISPLAY        =2;
 | 
						|
  CAPS_TECH_RASTER_PRINTER        =3;
 | 
						|
  CAPS_TECH_RASTER_CAMERA         =4;
 | 
						|
  CAPS_TECH_POSTSCRIPT            =5;
 | 
						|
 | 
						|
//Constants for CAPS_COLOR_TABLE_SUPPORT
 | 
						|
  CAPS_COLTABL_RGB_8              =1;
 | 
						|
  CAPS_COLTABL_RGB_8_PLUS         =2;
 | 
						|
  CAPS_COLTABL_TRUE_MIX           =4;
 | 
						|
  CAPS_COLTABL_REALIZE            =8;
 | 
						|
 | 
						|
//Constants for CAPS_FOREGROUND_MIX_SUPPORT
 | 
						|
  CAPS_FM_OR                      =1;
 | 
						|
  CAPS_FM_OVERPAINT               =2;
 | 
						|
  CAPS_FM_XOR                     =8;
 | 
						|
  CAPS_FM_LEAVEALONE             =16;
 | 
						|
  CAPS_FM_AND                    =32;
 | 
						|
  CAPS_FM_GENERAL_BOOLEAN        =64;
 | 
						|
 | 
						|
//Constants for CAPS_BACKGROUND_MIX_SUPPORT
 | 
						|
  CAPS_BM_OR                      =1;
 | 
						|
  CAPS_BM_OVERPAINT               =2;
 | 
						|
  CAPS_BM_XOR                     =8;
 | 
						|
  CAPS_BM_LEAVEALONE             =16;
 | 
						|
  CAPS_BM_AND                    =32;
 | 
						|
  CAPS_BM_GENERAL_BOOLEAN        =64;
 | 
						|
  CAPS_BM_SRCTRANSPARENT        =128;
 | 
						|
  CAPS_BM_DESTTRANSPARENT       =256;
 | 
						|
 | 
						|
//Constants for CAPS_DEVICE_WINDOWING
 | 
						|
  CAPS_DEV_WINDOWING_SUPPORT      =1;
 | 
						|
 | 
						|
//Constants for CAPS_ADDITIONAL_GRAPHICS
 | 
						|
  CAPS_VDD_DDB_TRANSFER            =1;
 | 
						|
  CAPS_GRAPHICS_KERNING_SUPPORT    =2;
 | 
						|
  CAPS_FONT_OUTLINE_DEFAULT        =4;
 | 
						|
  CAPS_FONT_IMAGE_DEFAULT          =8;
 | 
						|
//bits represented by values 16L and 32L are reserved
 | 
						|
  CAPS_SCALED_DEFAULT_MARKERS     =64;
 | 
						|
  CAPS_COLOR_CURSOR_SUPPORT      =128;
 | 
						|
  CAPS_PALETTE_MANAGER           =256;
 | 
						|
  CAPS_COSMETIC_WIDELINE_SUPPORT =512;
 | 
						|
  CAPS_DIRECT_FILL              =1024;
 | 
						|
  CAPS_REBUILD_FILLS            =2048;
 | 
						|
  CAPS_CLIP_FILLS               =$00001000; //4096L
 | 
						|
  CAPS_ENHANCED_FONTMETRICS     =$00002000; //8192L
 | 
						|
  CAPS_TRANSFORM_SUPPORT        =$00004000; //16384L
 | 
						|
 | 
						|
//Constants for CAPS_WINDOW_BYTE_ALIGNMENT
 | 
						|
  CAPS_BYTE_ALIGN_REQUIRED        =0;
 | 
						|
  CAPS_BYTE_ALIGN_RECOMMENDED     =1;
 | 
						|
  CAPS_BYTE_ALIGN_NOT_REQUIRED    =2;
 | 
						|
 | 
						|
//Constants for CAPS_RASTER_CAPS
 | 
						|
  CAPS_RASTER_BITBLT              =1;
 | 
						|
  CAPS_RASTER_BANDING             =2;
 | 
						|
  CAPS_RASTER_BITBLT_SCALING      =4;
 | 
						|
  CAPS_RASTER_SET_PEL            =16;
 | 
						|
  CAPS_RASTER_FONTS              =32;
 | 
						|
  CAPS_RASTER_FLOOD_FILL         =64;
 | 
						|
 | 
						|
//structures for DEVESC_QUERYVIOCELLSIZES
 | 
						|
 | 
						|
type
 | 
						|
  PVioSizeCount=^VioSizeCount;
 | 
						|
  VioSizeCount=record
 | 
						|
    maxcount: Longint;
 | 
						|
    count: Longint;
 | 
						|
  end;
 | 
						|
 | 
						|
  PVioFontCellSize=^VioFontCellSize;
 | 
						|
  VioFontCellSize=record
 | 
						|
    cx: Longint;
 | 
						|
    cy: Longint;
 | 
						|
  end;
 | 
						|
 | 
						|
//structure for DEVESC_GETSCALINGFACTOR
 | 
						|
  PSFactors=^SFactors;
 | 
						|
  SFactors=record
 | 
						|
    x: Longint;
 | 
						|
    y: Longint;
 | 
						|
  end;
 | 
						|
 | 
						|
//structure for DEVESC_NEXTBAND
 | 
						|
  PBandRect=^BandRect;
 | 
						|
  BandRect=record
 | 
						|
    xleft: Longint;
 | 
						|
    ybottom: Longint;
 | 
						|
    xright: Longint;
 | 
						|
    ytop: Longint;
 | 
						|
  end;
 | 
						|
 | 
						|
//return codes for DevEscape
 | 
						|
const
 | 
						|
  DEVESC_ERROR                  =-1;
 | 
						|
  DEVESC_NOTIMPLEMENTED         =0;
 | 
						|
 | 
						|
//codes for DevEscape
 | 
						|
  DEVESC_QUERYESCSUPPORT      =   0;
 | 
						|
  DEVESC_GETSCALINGFACTOR     =   1;
 | 
						|
  DEVESC_QUERYVIOCELLSIZES    =   2;
 | 
						|
  DEVESC_GETCP                =8000;
 | 
						|
 | 
						|
  DEVESC_STARTDOC             =8150;
 | 
						|
  DEVESC_ENDDOC               =8151;
 | 
						|
  DEVESC_NEXTBAND             =8152;
 | 
						|
  DEVESC_ABORTDOC             =8153;
 | 
						|
 | 
						|
  DEVESC_NEWFRAME            =16300;
 | 
						|
  DEVESC_DRAFTMODE           =16301;
 | 
						|
  DEVESC_FLUSHOUTPUT         =16302;
 | 
						|
  DEVESC_RAWDATA             =16303;
 | 
						|
  DEVESC_SETMODE             =16304;
 | 
						|
 | 
						|
  DEVESC_DBE_FIRST           =24450;
 | 
						|
  DEVESC_DBE_LAST            =24455;
 | 
						|
 | 
						|
//DevEscape codes for adding extra space to character strings
 | 
						|
  DEVESC_CHAR_EXTRA          =16998;
 | 
						|
  DEVESC_BREAK_EXTRA         =16999;
 | 
						|
 | 
						|
//codes for DevEscape PM_Q_ESC spool files
 | 
						|
  DEVESC_STD_JOURNAL         =32600;
 | 
						|
 | 
						|
//structure for DEVESC_SETMODE
 | 
						|
type
 | 
						|
  PEscMode=^EscMode;
 | 
						|
  EscMode=record
 | 
						|
    mode: cardinal;
 | 
						|
    modedata: byte;
 | 
						|
  end;
 | 
						|
 | 
						|
//return codes for DevPostDeviceModes
 | 
						|
const
 | 
						|
  DPDM_ERROR                   =-1;
 | 
						|
  DPDM_NONE                    =0;
 | 
						|
 | 
						|
//codes for DevPostDeviceModes
 | 
						|
  DPDM_POSTJOBPROP             =0;
 | 
						|
  DPDM_CHANGEPROP              =1;
 | 
						|
  DPDM_QUERYJOBPROP            =2;
 | 
						|
 | 
						|
//string types for DevQueryDeviceNames
 | 
						|
type
 | 
						|
  Str16= string [15];
 | 
						|
  Str32= string [31];
 | 
						|
  Str64= string [63];
 | 
						|
 | 
						|
//return code for DevQueryHardcopyCaps
 | 
						|
const
 | 
						|
  DQHC_ERROR                    =-1;
 | 
						|
 | 
						|
//codes for DevQueryHardcopyCaps
 | 
						|
const
 | 
						|
  HCAPS_CURRENT                 =1;
 | 
						|
  HCAPS_SELECTABLE              =2;
 | 
						|
 | 
						|
//structure for DevQueryHardcopyCaps
 | 
						|
type
 | 
						|
  PHCInfo=^HCInfo;
 | 
						|
  HCInfo=record
 | 
						|
    szFormname: Str32;
 | 
						|
    cx: Longint;
 | 
						|
    cy: Longint;
 | 
						|
    xLeftClip: Longint;
 | 
						|
    yBottomClip: Longint;
 | 
						|
    xRightClip: Longint;
 | 
						|
    yTopClip: Longint;
 | 
						|
    xPels: Longint;
 | 
						|
    yPels: Longint;
 | 
						|
    flAttributes: Longint;
 | 
						|
  end;
 | 
						|
 | 
						|
    { -----------------------------------------------------------------
 | 
						|
          Tuple Item used for QUERYSIZE
 | 
						|
        }
 | 
						|
    { djpQRT  }
 | 
						|
    { I - Property                       }
 | 
						|
    { I - type (DJP_ALL or DJP_CURRENT)  }
 | 
						|
    {                                                                }
 | 
						|
 | 
						|
    type
 | 
						|
 | 
						|
       TdjpQueryTuple = record
 | 
						|
            ulProperty : Cardinal;
 | 
						|
            lType : Longint;
 | 
						|
         end;
 | 
						|
       TQUERYTUPLE = TdjpQueryTuple;
 | 
						|
       TPQUERYTUPLE = ^TdjpQueryTuple;
 | 
						|
    { -----------------------------------------------------------------
 | 
						|
          Query Size Structure for DEVESC_QUERYSIZE
 | 
						|
        }
 | 
						|
    { djpQRS  }
 | 
						|
    { I - Size of entire structure       }
 | 
						|
    { O - Size returned;                 }
 | 
						|
    { I - Start of tuple list            }
 | 
						|
    {                                 use DJP_NONE for end of list   }
 | 
						|
 | 
						|
       TdjpQuerySize = record
 | 
						|
            cb : Cardinal;
 | 
						|
            ulSizeNeeded : Cardinal;
 | 
						|
            aTuples : array[0..0] of TQUERYTUPLE;
 | 
						|
         end;
 | 
						|
       TQUERYSIZE = TdjpQuerySize;
 | 
						|
       TPQUERYSIZE = ^TdjpQuerySize;
 | 
						|
    { was #define dname def_expr }
 | 
						|
//    function QUERYSIZE_HEADER_SIZE : longint;
 | 
						|
        { return type might be wrong }
 | 
						|
 | 
						|
    { -----------------------------------------------------------------
 | 
						|
          Dynamic Job Property Item
 | 
						|
        }
 | 
						|
    { djpITM  }
 | 
						|
    { I/O - sizeof DJP_ITEM structure    }
 | 
						|
    { I   - Which property               }
 | 
						|
    { I/O - DJP_ALL or DJP_CURRENT.      }
 | 
						|
    {                                   DJP_ERROR_XXX if error.      }
 | 
						|
    { O   - How many elements have been  }
 | 
						|
    {                                   returned                     }
 | 
						|
    { O   - Variably sized based on      }
 | 
						|
    {                                   ulProperty.  The smallest    }
 | 
						|
    {                                   is a ULONG in size           }
 | 
						|
 | 
						|
    type
 | 
						|
 | 
						|
       TdjpItem = record
 | 
						|
            cb : Cardinal;
 | 
						|
            ulProperty : Cardinal;
 | 
						|
            lType : Longint;
 | 
						|
            ulNumReturned : Cardinal;
 | 
						|
            ulValue : Cardinal;
 | 
						|
         end;
 | 
						|
       TDJP_ITEM = TdjpItem;
 | 
						|
       TPDJP_ITEM = ^TdjpItem;
 | 
						|
    { was #define dname def_expr }
 | 
						|
//    function DJP_HEADER_SIZE : longint;
 | 
						|
        { return type might be wrong }
 | 
						|
 | 
						|
    { was #define dname(params) para_def_expr }
 | 
						|
    { argument types are unknown }
 | 
						|
//    function DJP_NEXT_STRUCTP(p : longint) : TPDJP_ITEM;
 | 
						|
 | 
						|
    { was #define dname(params) para_def_expr }
 | 
						|
    { argument types are unknown }
 | 
						|
//    function DJP_ELEMENTP(s,t : longint) : ^Tt;
 | 
						|
 | 
						|
(* error
 | 
						|
   #define DJP_SET_ELEMENT(s,t,e) ( *DJP_ELEMENTP (s,t) = (e))
 | 
						|
in define line 83 *)
 | 
						|
    { -----------------------------------------------------------------
 | 
						|
          Types of Dynamic Job Properties
 | 
						|
 | 
						|
          To see if the driver is enabled use,
 | 
						|
              DevEscape      (DEVESC_QUERYESCSUPPORT,
 | 
						|
                              DEVESC_STARTDOC_WPROP, ...)
 | 
						|
          and DevQueryDevice (DEVQRY_QUERYSUPPORT,
 | 
						|
                              DEVESC_QUERYJOBPROPERTIES, ...)
 | 
						|
 | 
						|
          NOTE: The C/S in the defines indicate the complexity or size of
 | 
						|
                the information.  If it is s, then the size is ULONG sized
 | 
						|
                and no special processing for the next element needs to be
 | 
						|
                done.
 | 
						|
                The J/P in the defines indicate the class.  J stands for job
 | 
						|
                properties and P stands for printer properties.
 | 
						|
        }
 | 
						|
    { also End Of List marker  }
 | 
						|
 | 
						|
    const
 | 
						|
       DJP_NONE = 0;
 | 
						|
       DJP_SJ_ORIENTATION = 1;
 | 
						|
       DJP_CJ_RESOLUTION = 2;
 | 
						|
       DJP_SJ_BITSPERPEL = 3;
 | 
						|
       DJP_SJ_COLOR = 4;
 | 
						|
       DJP_SJ_PRINTQUALITY = 5;
 | 
						|
       DJP_SJ_PAPERSIZE = 6;
 | 
						|
       DJP_SJ_TRAYTYPE = 7;
 | 
						|
       DJP_SJ_MEDIA = 8;
 | 
						|
       DJP_SJ_MEDIA_COLOR = 9;
 | 
						|
       DJP_CJ_FORM = 10;
 | 
						|
       DJP_CJ_MIXEDFORMS = 11;
 | 
						|
       DJP_SJ_FONTDOWNLOADING = 12;
 | 
						|
       DJP_SJ_DUPLEX = 13;
 | 
						|
       DJP_SJ_COLLATE = 14;
 | 
						|
       DJP_SJ_FEED = 15;
 | 
						|
       DJP_SJ_COPIES = 16;
 | 
						|
       DJP_SJ_SCALING = 17;
 | 
						|
       DJP_SJ_FORMFEEDCONTROL = 18;
 | 
						|
       DJP_SJ_N_UP = 19;
 | 
						|
       DJP_CJ_OUTPUTBIN = 20;
 | 
						|
       DJP_CJ_TRAYNAME = 21;
 | 
						|
    { Types for DEVESC_QUERYJOBPROPERTIES / DEVESC_SETJOBPROPERTIES
 | 
						|
        }
 | 
						|
    { enumerate the property  }
 | 
						|
       DJP_ALL = 1;
 | 
						|
    { from job properties     }
 | 
						|
       DJP_CURRENT = 2;
 | 
						|
    { Errors for DEVESC_QUERYJOBPROPERTIES / DEVESC_SETJOBPROPERTIES
 | 
						|
        }
 | 
						|
    { driver doesnt support that property  }
 | 
						|
       DJP_ERROR_NOT_SUPPORTED = -(1);
 | 
						|
    { not in the valid range               }
 | 
						|
       DJP_ERROR_OUT_OF_RANGE = -(2);
 | 
						|
    { not enumerateable                    }
 | 
						|
       DJP_ERROR_NOT_ENUM = -(3);
 | 
						|
    { field not proper value               }
 | 
						|
       DJP_ERROR_INV_PARMS = -(4);
 | 
						|
    { -----------------------------------------------------------------
 | 
						|
          DJP_SJ_ORIENTATION
 | 
						|
        }
 | 
						|
       DJP_ORI_PORTRAIT = 1;
 | 
						|
       DJP_ORI_LANDSCAPE = 2;
 | 
						|
       DJP_ORI_REV_PORTRAIT = 3;
 | 
						|
       DJP_ORI_REV_LANDSCAPE = 4;
 | 
						|
 | 
						|
    type
 | 
						|
 | 
						|
       TDJPT_ORIENTATION = Cardinal;
 | 
						|
 | 
						|
       TPDJPT_ORIENTATION = Cardinal;
 | 
						|
    { -----------------------------------------------------------------
 | 
						|
          DJP_CJ_RESOLUTION
 | 
						|
        }
 | 
						|
    { djpRES  }
 | 
						|
    { X resolution (in dots per inch)  }
 | 
						|
    { Y resolution (in dots per inch)  }
 | 
						|
 | 
						|
       TdjpResolution = record
 | 
						|
            usXResolution : Word;
 | 
						|
            usYResolution : Word;
 | 
						|
         end;
 | 
						|
       TDJPT_RESOLUTION = TdjpResolution;
 | 
						|
       TPDJPT_RESOLUTION = ^TdjpResolution;
 | 
						|
    { -----------------------------------------------------------------
 | 
						|
          DJP_SJ_BITSPERPEL
 | 
						|
        }
 | 
						|
 | 
						|
       TDJPT_BITSPERPEL = Cardinal;
 | 
						|
 | 
						|
       TPDJPT_BITSPERPEL = Cardinal;
 | 
						|
    { -----------------------------------------------------------------
 | 
						|
          DJP_SJ_COLOR
 | 
						|
        }
 | 
						|
 | 
						|
    const
 | 
						|
       DJP_CLR_MONOCHROME = 1;
 | 
						|
       DJP_CLR_COLOR = 2;
 | 
						|
 | 
						|
    type
 | 
						|
 | 
						|
       TDJPT_COLOR = Cardinal;
 | 
						|
 | 
						|
       TPDJPT_COLOR = Cardinal;
 | 
						|
    { -----------------------------------------------------------------
 | 
						|
          DJP_SJ_PRINTQUALITY
 | 
						|
 | 
						|
          Note: DJP_PQL_DRAFT is the worst quality.  In the future, there
 | 
						|
                may be better qualities (such as DJP_PQL_ULTRA_HIGH) which
 | 
						|
                will be numerically greater than DJP_PQL_HIGH.
 | 
						|
        }
 | 
						|
 | 
						|
    const
 | 
						|
       DJP_PQL_DRAFT = 1;
 | 
						|
       DJP_PQL_LOW = 2;
 | 
						|
       DJP_PQL_MEDIUM = 3;
 | 
						|
       DJP_PQL_HIGH = 4;
 | 
						|
       DJP_PQL_LAST = DJP_PQL_HIGH;
 | 
						|
 | 
						|
    type
 | 
						|
 | 
						|
       TDJPT_PRINTQUALITY = Cardinal;
 | 
						|
 | 
						|
       TPDJPT_PRINTQUALITY = Cardinal;
 | 
						|
    { -----------------------------------------------------------------
 | 
						|
          DJP_SJ_PAPERSIZE
 | 
						|
 | 
						|
          Note: it is recommended to use DJP_CJ_FORM to chage the papersize.
 | 
						|
                                                        approximate size
 | 
						|
        }
 | 
						|
    {  inches       millimeters  }
 | 
						|
 | 
						|
    const
 | 
						|
       DJP_PSI_NONE = 0;
 | 
						|
    {  8.5  x 11    216 x 279    }
 | 
						|
       DJP_PSI_LETTER = 1;
 | 
						|
    {  8.5  x 14    216 x 356    }
 | 
						|
       DJP_PSI_LEGAL = 2;
 | 
						|
    { 13.58 x 11    345 x 279    }
 | 
						|
       DJP_PSI_WIDE = 3;
 | 
						|
    { 17    x 22    431 x 558    }
 | 
						|
       DJP_PSI_CSHEET = 4;
 | 
						|
    { 22    x 34    558 x 863    }
 | 
						|
       DJP_PSI_DSHEET = 5;
 | 
						|
    { 34    x 44    863 x 1117   }
 | 
						|
       DJP_PSI_ESHEET = 6;
 | 
						|
    {                            }
 | 
						|
       DJP_PSI_LETTERSMALL = 7;
 | 
						|
    { 11    x 17    279 x 431    }
 | 
						|
       DJP_PSI_TABLOID = 8;
 | 
						|
    { 17    x 11    431 x 279    }
 | 
						|
       DJP_PSI_LEDGER = 9;
 | 
						|
    {  5.5  x  8.5  139 x 216    }
 | 
						|
       DJP_PSI_STATEMENT = 10;
 | 
						|
    {  7.25 x 10.5  184 x 266    }
 | 
						|
       DJP_PSI_EXECUTIVE = 11;
 | 
						|
    { 33.11 x 46.81 841 x 1189   }
 | 
						|
       DJP_PSI_A0 = 12;
 | 
						|
    { 23.39 x 33.11 594 x 841    }
 | 
						|
       DJP_PSI_A1 = 13;
 | 
						|
    { 16.54 x 23.39 420 x 594    }
 | 
						|
       DJP_PSI_A2 = 14;
 | 
						|
    { 11.7  x 16.54 297 x 420    }
 | 
						|
       DJP_PSI_A3 = 15;
 | 
						|
    {  8.3  x 11.7  210 x 297    }
 | 
						|
       DJP_PSI_A4 = 16;
 | 
						|
    {                            }
 | 
						|
       DJP_PSI_A4_SMALL = 17;
 | 
						|
    {  5.83 x  8.27 148 x 210    }
 | 
						|
       DJP_PSI_A5 = 18;
 | 
						|
    {  9.84 x 13.94 250 x 354    }
 | 
						|
       DJP_PSI_B4 = 19;
 | 
						|
    {  7.17 x 10.12 182 x 257    }
 | 
						|
       DJP_PSI_B5 = 20;
 | 
						|
    {  8.5  x 13    216 x 330    }
 | 
						|
       DJP_PSI_FOLIO = 21;
 | 
						|
    {  8.46 x 10.83 215 x 275    }
 | 
						|
       DJP_PSI_QUATRO = 22;
 | 
						|
    { 10    x 14    254 x 355    }
 | 
						|
       DJP_PSI_10X14 = 23;
 | 
						|
    { 11    x 17    279 x 431    }
 | 
						|
       DJP_PSI_11X17 = 24;
 | 
						|
    {                            }
 | 
						|
       DJP_PSI_NOTE = 25;
 | 
						|
    {                            }
 | 
						|
       DJP_PSI_ENV_9 = 26;
 | 
						|
    {                            }
 | 
						|
       DJP_PSI_ENV_10 = 27;
 | 
						|
    {                            }
 | 
						|
       DJP_PSI_ENV_11 = 28;
 | 
						|
    {                            }
 | 
						|
       DJP_PSI_ENV_12 = 29;
 | 
						|
    {                            }
 | 
						|
       DJP_PSI_ENV_14 = 30;
 | 
						|
    {                            }
 | 
						|
       DJP_PSI_ENV_DL = 31;
 | 
						|
    {                            }
 | 
						|
       DJP_PSI_ENV_A2 = 32;
 | 
						|
    {                            }
 | 
						|
       DJP_PSI_ENV_C3 = 33;
 | 
						|
    {                            }
 | 
						|
       DJP_PSI_ENV_C4 = 34;
 | 
						|
    {                            }
 | 
						|
       DJP_PSI_ENV_C5 = 35;
 | 
						|
    {                            }
 | 
						|
       DJP_PSI_ENV_C6 = 36;
 | 
						|
    {                            }
 | 
						|
       DJP_PSI_ENV_C65 = 37;
 | 
						|
    {                            }
 | 
						|
       DJP_PSI_ENV_C9 = 38;
 | 
						|
    {                            }
 | 
						|
       DJP_PSI_ENV_C10 = 39;
 | 
						|
    {                            }
 | 
						|
       DJP_PSI_ENV_B4 = 40;
 | 
						|
    {                            }
 | 
						|
       DJP_PSI_ENV_B5 = 41;
 | 
						|
    {                            }
 | 
						|
       DJP_PSI_ENV_B6 = 42;
 | 
						|
    {                            }
 | 
						|
       DJP_PSI_ENV_ITALY = 43;
 | 
						|
    {                            }
 | 
						|
       DJP_PSI_ENV_MONARCH = 44;
 | 
						|
    {                            }
 | 
						|
       DJP_PSI_ENV_PERSONAL = 45;
 | 
						|
    {                            }
 | 
						|
       DJP_PSI_FANFOLD_US = 46;
 | 
						|
    {                            }
 | 
						|
       DJP_PSI_FANFOLD_STD_GERMAN = 47;
 | 
						|
    {                            }
 | 
						|
       DJP_PSI_FANFOLD_LGL_GERMAN = 48;
 | 
						|
    {                            }
 | 
						|
       DJP_PSI_ARCHITECT_BSHEET = 49;
 | 
						|
    {                            }
 | 
						|
       DJP_PSI_ARCHITECT_CSHEET = 50;
 | 
						|
    {                            }
 | 
						|
       DJP_PSI_ARCHITECT_DSHEET = 51;
 | 
						|
    {                            }
 | 
						|
       DJP_PSI_ARCHITECT_ESHEET = 52;
 | 
						|
    {                            }
 | 
						|
       DJP_PSI_CARD_A6 = 53;
 | 
						|
    {                            }
 | 
						|
       DJP_PSI_CARD_4X6 = 54;
 | 
						|
    {                            }
 | 
						|
       DJP_PSI_CARD_5X8 = 55;
 | 
						|
    {                            }
 | 
						|
       DJP_PSI_CARD_HAGAKI = 56;
 | 
						|
    {  1.10 x 3.50   28 x 89     }
 | 
						|
       DJP_PSI_LABEL_STANDARD = 57;
 | 
						|
    {  3.98 x 2.13  101 x 54     }
 | 
						|
       DJP_PSI_LABEL_SHIPPING = 58;
 | 
						|
    {  2.76 x 2.13   70 x 54     }
 | 
						|
       DJP_PSI_LABEL_DISK = 59;
 | 
						|
    {  3.50 x 1.42   89 x 36     }
 | 
						|
       DJP_PSI_LABEL_EURO = 60;
 | 
						|
    {                            }
 | 
						|
       DJP_PSI_CARD_OUFUKU_HAGAKI = 61;
 | 
						|
    {                            }
 | 
						|
       DJP_PSI_B0 = 62;
 | 
						|
    {                            }
 | 
						|
       DJP_PSI_B1 = 63;
 | 
						|
    {                            }
 | 
						|
       DJP_PSI_B2 = 64;
 | 
						|
    {                            }
 | 
						|
       DJP_PSI_B3 = 65;
 | 
						|
    {                            }
 | 
						|
       DJP_PSI_B6 = 66;
 | 
						|
    {                            }
 | 
						|
       DJP_PSI_B7 = 67;
 | 
						|
    {                            }
 | 
						|
       DJP_PSI_B8 = 68;
 | 
						|
    {                            }
 | 
						|
       DJP_PSI_B9 = 69;
 | 
						|
    {                            }
 | 
						|
       DJP_PSI_B10 = 70;
 | 
						|
    {                            }
 | 
						|
       DJP_PSI_B0_JIS = 71;
 | 
						|
    {                            }
 | 
						|
       DJP_PSI_B1_JIS = 72;
 | 
						|
    {                            }
 | 
						|
       DJP_PSI_B2_JIS = 73;
 | 
						|
    {                            }
 | 
						|
       DJP_PSI_B3_JIS = 74;
 | 
						|
    {                            }
 | 
						|
       DJP_PSI_B4_JIS = 75;
 | 
						|
    {                            }
 | 
						|
       DJP_PSI_B5_JIS = 76;
 | 
						|
    {                            }
 | 
						|
       DJP_PSI_B6_JIS = 77;
 | 
						|
    {                            }
 | 
						|
       DJP_PSI_B7_JIS = 78;
 | 
						|
    {                            }
 | 
						|
       DJP_PSI_B8_JIS = 79;
 | 
						|
    {                            }
 | 
						|
       DJP_PSI_B9_JIS = 80;
 | 
						|
    {                            }
 | 
						|
       DJP_PSI_B10_JIS = 81;
 | 
						|
       DJP_PSI_LAST = DJP_PSI_B10_JIS;
 | 
						|
 | 
						|
    type
 | 
						|
 | 
						|
       TDJPT_PAPERSIZE = Longint;
 | 
						|
 | 
						|
       TPDJPT_PAPERSIZE = Longint;
 | 
						|
    { -----------------------------------------------------------------
 | 
						|
          DJP_SJ_TRAYTYPE
 | 
						|
 | 
						|
          Note: it is recommended to use DJP_CJ_FORM to chage the tray type.
 | 
						|
        }
 | 
						|
 | 
						|
    const
 | 
						|
       DJP_TRY_NONE = 0;
 | 
						|
       DJP_TRY_UPPER = 1;
 | 
						|
       DJP_TRY_ONLYONE = DJP_TRY_UPPER;
 | 
						|
       DJP_TRY_LOWER = 2;
 | 
						|
       DJP_TRY_MIDDLE = 3;
 | 
						|
       DJP_TRY_MANUAL = 4;
 | 
						|
       DJP_TRY_ENVELOPE = 5;
 | 
						|
       DJP_TRY_ENVMANUAL = 6;
 | 
						|
       DJP_TRY_AUTO = 7;
 | 
						|
       DJP_TRY_TRACTOR = 8;
 | 
						|
       DJP_TRY_SMALLFMT = 9;
 | 
						|
       DJP_TRY_LARGEFMT = 10;
 | 
						|
       DJP_TRY_LARGECAPACITY = 11;
 | 
						|
       DJP_TRY_CASSETTE = 12;
 | 
						|
       DJP_TRY_LAST = DJP_TRY_CASSETTE;
 | 
						|
 | 
						|
    type
 | 
						|
 | 
						|
       TDJPT_TRAYTYPE = Cardinal;
 | 
						|
 | 
						|
       TPDJPT_TRAYTYPE = Cardinal;
 | 
						|
    { -----------------------------------------------------------------
 | 
						|
          DJP_SJ_MEDIA
 | 
						|
 | 
						|
          Note: it is recommended to use DJP_CJ_FORM to chage the media type.
 | 
						|
        }
 | 
						|
 | 
						|
    const
 | 
						|
       DJP_MED_NONE = 0;
 | 
						|
       DJP_MED_PLAIN = 1;
 | 
						|
       DJP_MED_TRANSPARENCY = 2;
 | 
						|
       DJP_MED_GLOSSY = 3;
 | 
						|
       DJP_MED_SPECIAL = 4;
 | 
						|
       DJP_MED_COATED = 5;
 | 
						|
       DJP_MED_BACKPRINT = 6;
 | 
						|
       DJP_MED_CLOTH = 7;
 | 
						|
       DJP_MED_THICK = 8;
 | 
						|
       DJP_MED_STATIONARY = 9;
 | 
						|
       DJP_MED_ENVELOPE = 10;
 | 
						|
       DJP_MED_CONTINUOUS_LONG = 11;
 | 
						|
       DJP_MED_CONTINUOUS_SHORT = 12;
 | 
						|
       DJP_MED_TAB_STOCK = 13;
 | 
						|
       DJP_MED_MULTI_PART_FORM = 14;
 | 
						|
       DJP_MED_LABELS = 15;
 | 
						|
       DJP_MED_LAST = DJP_MED_LABELS;
 | 
						|
 | 
						|
    type
 | 
						|
 | 
						|
       TDJPT_MEDIA = Cardinal;
 | 
						|
 | 
						|
       TPDJPT_MEDIA = Cardinal;
 | 
						|
    { -----------------------------------------------------------------
 | 
						|
          DJP_SJ_MEDIA_COLOR
 | 
						|
 | 
						|
          Select the media color (for the same media types).
 | 
						|
        }
 | 
						|
 | 
						|
    const
 | 
						|
       DJP_MDC_BLUE = 1;
 | 
						|
       DJP_MDC_BLUFF = 2;
 | 
						|
       DJP_MDC_GOLDENROD = 3;
 | 
						|
       DJP_MDC_GREEN = 4;
 | 
						|
       DJP_MDC_PINK = 5;
 | 
						|
       DJP_MDC_TRANSPARENT = 6;
 | 
						|
       DJP_MDC_WHITE = 7;
 | 
						|
       DJP_MDC_YELLOW = 8;
 | 
						|
       DJP_MDC_LAST = DJP_MDC_YELLOW;
 | 
						|
 | 
						|
    type
 | 
						|
 | 
						|
       TDJPT_MEDIA_COLOR = Cardinal;
 | 
						|
 | 
						|
       TPDJPT_MEDIA_COLOR = Cardinal;
 | 
						|
    { -----------------------------------------------------------------
 | 
						|
          DJP_CJ_FORM
 | 
						|
 | 
						|
          Setting will match all three fields.  If szTrayname or szMedianame
 | 
						|
             is null then it will be defaulted to the first one found.
 | 
						|
 | 
						|
          Querying will return all fields filled in.
 | 
						|
        }
 | 
						|
    { djpFRM  }
 | 
						|
    { System Form name                   }
 | 
						|
    { System Tray name                   }
 | 
						|
    { System Media name                  }
 | 
						|
    {                      v-= Informational only =-v                           }
 | 
						|
    { Corresponding hard copy info       }
 | 
						|
    { Display Form name  (translated)    }
 | 
						|
    { Display Tray name  (translated)    }
 | 
						|
    { Display Media name (translated)    }
 | 
						|
    { Simple form id  (if not DJP_NONE)  }
 | 
						|
    { Simple tray id  (if not DJP_NONE)  }
 | 
						|
    { Simple media id (if not DJP_NONE)  }
 | 
						|
 | 
						|
       TdjpForm = record
 | 
						|
            szFormname : Str32;
 | 
						|
            szTrayname : Str32;
 | 
						|
            szMedianame : Str32;
 | 
						|
            ahcInfo : HCINFO;
 | 
						|
            szDisplayFormname : Str64;
 | 
						|
            szDisplayTrayname : Str64;
 | 
						|
            szDisplayMedianame : Str64;
 | 
						|
            djppsFormID : TDJPT_PAPERSIZE;
 | 
						|
            djpttTrayID : TDJPT_TRAYTYPE;
 | 
						|
            djpmdMediaID : TDJPT_MEDIA;
 | 
						|
         end;
 | 
						|
       TDJPT_FORM = TdjpForm;
 | 
						|
       TPDJPT_FORM = ^TdjpForm;
 | 
						|
    { -----------------------------------------------------------------
 | 
						|
          DJP_CJ_MIXEDFORMS
 | 
						|
 | 
						|
          This is unique in that both setting and querying can have multiple
 | 
						|
          elements.  Both the first page and the last page are DJP_MXF_INFINITY
 | 
						|
          (which is the separator for individual elements).
 | 
						|
          Some examples are:
 | 
						|
 | 
						|
          - Only one form (form1) for the entire job.
 | 
						|
            (DJP_MXF_INFINITY, DJP_MXF_INFINITY, form1)
 | 
						|
 | 
						|
          - Page 1 has form1, then pages 2 ... n have form2.
 | 
						|
            (DJP_MXF_INFINITY, 1, form1) (2, DJP_MXF_INFINITY, form2)
 | 
						|
 | 
						|
          - Even pages have form1 and odd pages have form2
 | 
						|
            (DJP_MXF_INFINITY, DJP_MXF_ODD, form1) (DJP_MXF_EVEN, DJP_MXF_INFINITY, form2)
 | 
						|
            or (DJP_MXF_INFINITY, DJP_MXF_EVEN, form2) (DJP_MXF_ODD, DJP_MXF_INFINITY, form1)
 | 
						|
 | 
						|
          - First page has form1, even pages have form2 and odd pages have form3
 | 
						|
            (DJP_MXF_INFINITY, 1, form1) (DJP_MXF_ODD, DJP_MXF_ODD, form1) (DJP_MXF_EVEN, DJP_MXF_INFINITY, form2)
 | 
						|
            or (DJP_MXF_INFINITY, 1, form1) (DJP_MXF_EVEN, DJP_MXF_EVEN, form2) (DJP_MXF_ODD, DJP_MXF_INFINITY, form1)
 | 
						|
 | 
						|
        }
 | 
						|
 | 
						|
    const
 | 
						|
       DJP_MXF_INFINITY = -(1);
 | 
						|
       DJP_MXF_ODD = -(2);
 | 
						|
       DJP_MXF_EVEN = -(3);
 | 
						|
    { djpMXF  }
 | 
						|
    { Starting page number            }
 | 
						|
    { Ending page number              }
 | 
						|
    { Form associated with the range  }
 | 
						|
 | 
						|
    type
 | 
						|
 | 
						|
       TdjpMixedForms = record
 | 
						|
            lStartRange : Longint;
 | 
						|
            lEndRange : Longint;
 | 
						|
            djpfmForm : TDJPT_FORM;
 | 
						|
         end;
 | 
						|
       TDJPT_MIXEDFORMS = TdjpMixedForms;
 | 
						|
       TPDJPT_MIXEDFORMS = ^TdjpMixedForms;
 | 
						|
    { -----------------------------------------------------------------
 | 
						|
          DJP_SJ_FONTDOWNLOADING
 | 
						|
        }
 | 
						|
    { Device does not support downloading }
 | 
						|
 | 
						|
    const
 | 
						|
       DJP_FDL_NONE = 0;
 | 
						|
    { Download fonts to printer           }
 | 
						|
       DJP_FDL_DOWNLOAD = 1;
 | 
						|
    { Rasterize fonts                     }
 | 
						|
       DJP_FDL_BITMAP = 2;
 | 
						|
    { Substitute device fonts for system  }
 | 
						|
       DJP_FDL_SUBSTITUTE = 3;
 | 
						|
 | 
						|
    type
 | 
						|
 | 
						|
       TDJPT_FONTDOWNLOADING = Cardinal;
 | 
						|
 | 
						|
       TPDJPT_FONTDOWNLOADING = Cardinal;
 | 
						|
    { -----------------------------------------------------------------
 | 
						|
          DJP_SJ_DUPLEX
 | 
						|
        }
 | 
						|
    { Device does not support duplex      }
 | 
						|
 | 
						|
    const
 | 
						|
       DJP_DUP_NONE = 0;
 | 
						|
    { Duplex is turned off                }
 | 
						|
       DJP_DUP_OFF = 1;
 | 
						|
       DJP_DUP_BOOK = 2;
 | 
						|
       DJP_DUP_FLIP = 3;
 | 
						|
 | 
						|
    type
 | 
						|
 | 
						|
       TDJPT_DUPLEX = Cardinal;
 | 
						|
 | 
						|
       TPDJPT_DUPLEX = Cardinal;
 | 
						|
    { -----------------------------------------------------------------
 | 
						|
          DJP_SJ_COLLATE
 | 
						|
        }
 | 
						|
    { Device does not support collation   }
 | 
						|
 | 
						|
    const
 | 
						|
       DJP_COL_NONE = 0;
 | 
						|
       DJP_COL_OFF = 1;
 | 
						|
       DJP_COL_ON = 2;
 | 
						|
    { more for printer dialogs than       }
 | 
						|
       DJP_COL_PRINTER_SETTING = 3;
 | 
						|
    { programmatic control.  Use          }
 | 
						|
    { the setting on the printer panel.   }
 | 
						|
 | 
						|
    type
 | 
						|
 | 
						|
       TDJPT_COLLATE = Cardinal;
 | 
						|
 | 
						|
       TPDJPT_COLLATE = Cardinal;
 | 
						|
    { -----------------------------------------------------------------
 | 
						|
          DJP_SJ_FEED
 | 
						|
        }
 | 
						|
 | 
						|
    const
 | 
						|
       DJP_FED_MANUAL = 1;
 | 
						|
       DJP_FED_AUTOMATIC = 2;
 | 
						|
 | 
						|
    type
 | 
						|
 | 
						|
       TDJPT_FEED = Cardinal;
 | 
						|
 | 
						|
       TPDJPT_FEED = Cardinal;
 | 
						|
    { -----------------------------------------------------------------
 | 
						|
          DJP_SJ_COPIES
 | 
						|
 | 
						|
          This is the number of copies on a per page basis.  This is not
 | 
						|
          enumerateable.
 | 
						|
        }
 | 
						|
 | 
						|
       TDJPT_COPIES = Cardinal;
 | 
						|
 | 
						|
       TPDJPT_COPIES = Cardinal;
 | 
						|
    { -----------------------------------------------------------------
 | 
						|
          DJP_SJ_SCALING
 | 
						|
 | 
						|
          This is a percentage value.  This is not enumerateable.
 | 
						|
        }
 | 
						|
 | 
						|
       TDJPT_SCALING = Longint;
 | 
						|
 | 
						|
       TPDJPT_SCALING = Longint;
 | 
						|
    { -----------------------------------------------------------------
 | 
						|
          DJP_SJ_FORMFEEDCONTROL
 | 
						|
 | 
						|
          This is a property that effects raw data jobs (print from the
 | 
						|
          command line, DOS print jobs, Windows print jobs). This checks
 | 
						|
          the very last byte of the data stream to see if it is a form
 | 
						|
          feed control character.
 | 
						|
        }
 | 
						|
    { Never add         }
 | 
						|
 | 
						|
    const
 | 
						|
       DJP_FFC_NONE = 1;
 | 
						|
    { Add if not seen   }
 | 
						|
       DJP_FFC_CONDITIONAL = 2;
 | 
						|
    { Always add        }
 | 
						|
       DJP_FFC_COMPULSORY = 3;
 | 
						|
 | 
						|
    type
 | 
						|
 | 
						|
       TDJPT_FORMFEEDCONTROL = Cardinal;
 | 
						|
 | 
						|
       TPDJPT_FORMFEEDCONTROL = Cardinal;
 | 
						|
    { -----------------------------------------------------------------
 | 
						|
          DJP_SJ_N_UP
 | 
						|
 | 
						|
          Number of logical pages per physical page (ex: 2-up, 4-up)
 | 
						|
        }
 | 
						|
 | 
						|
       TDJPT_NUP = Longint;
 | 
						|
 | 
						|
       TPDJPT_NUP = Longint;
 | 
						|
    { -----------------------------------------------------------------
 | 
						|
          DJP_CJ_OUTPUTBIN
 | 
						|
 | 
						|
          Setting will only use szBinname.
 | 
						|
 | 
						|
          Querying will return all fields filled in.
 | 
						|
        }
 | 
						|
    { djpOBN  }
 | 
						|
    { System Bin name                    }
 | 
						|
    {                      v-= Informational only =-v                           }
 | 
						|
    { Display Bin name  (translated)     }
 | 
						|
    { Bin id # (-1 for no id)            }
 | 
						|
 | 
						|
       TdjpOutputBin = record
 | 
						|
            szBinname : Str32;
 | 
						|
            szDisplayBinname : Str64;
 | 
						|
            lBinId : Longint;
 | 
						|
         end;
 | 
						|
       TDJPT_OUTPUTBIN = TdjpOutputBin;
 | 
						|
       TPDJPT_OUTPUTBIN = ^TdjpOutputBin;
 | 
						|
    { -----------------------------------------------------------------
 | 
						|
          DJP_CJ_TRAYNAME
 | 
						|
 | 
						|
          Setting will match only szTrayname.  The perfered way to set which
 | 
						|
          tray to use is DJP_CJ_FORM.  Otherwise, you are not guaranteed a
 | 
						|
          unique match for all three form, tray, and media possibilities.
 | 
						|
 | 
						|
          Querying will return all fields filled in.
 | 
						|
        }
 | 
						|
    { djpTry  }
 | 
						|
    { System Tray name                   }
 | 
						|
    {                      v-= Informational only =-v                           }
 | 
						|
    { Display Tray name  (translated)    }
 | 
						|
    { Simple tray id  (if not DJP_NONE)  }
 | 
						|
 | 
						|
       TdjpInputTray = record
 | 
						|
            szTrayname : Str32;
 | 
						|
            szDisplayTrayname : Str64;
 | 
						|
            djpttTrayID : TDJPT_TRAYTYPE;
 | 
						|
         end;
 | 
						|
       TDJPT_TRAYNAME = TdjpInputTray;
 | 
						|
       TPDJPT_TRAYNAME = ^TdjpInputTray;
 | 
						|
 | 
						|
 | 
						|
function DevOpenDC(ahab: HAB; lType: Longint; pszToken: PAnsiChar; lCount: Longint; var pdopData: DevOpenStruc; hdcComp: cardinal): cardinal; cdecl;
 | 
						|
function DevCloseDC(ahdc: cardinal): cardinal; cdecl;
 | 
						|
function DevEscape(ahdc: cardinal; lCode, lInCount: Longint; var pbInData; var plOutCount: Longint; var pbOutData): Longint; cdecl;
 | 
						|
function DevQueryCaps(ahdc: cardinal; lStart, lCount: Longint; var alArray: Longint): Longbool; cdecl;
 | 
						|
function DevQueryDeviceNames(ahab: HAB; pszDriverName: PAnsiChar; var pldn: Longint; aDeviceName: Str32; aDeviceDesc: Str64; var pldt: Longint; aDataType: Str16): Longbool; cdecl;
 | 
						|
function DevQueryHardcopyCaps(ahdc: cardinal; lStartForm, lForms: Longint; var phciHcInfo: HCInfo): Longint; cdecl;
 | 
						|
function DevPostDeviceModes(ahab: HAB; var pdrivDriverData: DrivData; pszDriverName, pszDeviceName, pszName: PAnsiChar; flOptions: cardinal): Longint; cdecl;
 | 
						|
 | 
						|
implementation
 | 
						|
 | 
						|
function DevOpenDC(ahab: HAB; lType: Longint; pszToken: PAnsiChar; lCount: Longint; var pdopData: DevOpenStruc; hdcComp: cardinal): cardinal; cdecl;
 | 
						|
    external 'PMGPI' index 610;
 | 
						|
function DevCloseDC(ahdc: cardinal): cardinal; cdecl;
 | 
						|
    external 'PMGPI' index 604;
 | 
						|
function DevEscape(ahdc: cardinal; lCode, lInCount: Longint; var pbInData; var plOutCount: Longint; var pbOutData): Longint; cdecl;
 | 
						|
    external 'PMGPI' index 605;
 | 
						|
function DevQueryCaps(ahdc: cardinal; lStart, lCount: Longint;var alArray: Longint): Longbool; cdecl;
 | 
						|
    external 'PMGPI' index 606;
 | 
						|
function DevQueryDeviceNames(ahab: HAB; pszDriverName: PAnsiChar; var pldn: Longint; aDeviceName: Str32; aDeviceDesc: Str64; var pldt: Longint; aDataType: Str16): Longbool; cdecl;
 | 
						|
    external 'PMGPI' index 607;
 | 
						|
function DevQueryHardcopyCaps(ahdc: cardinal; lStartForm, lForms: Longint; var phciHcInfo: HCInfo): Longint; cdecl;
 | 
						|
    external 'PMGPI' index 608;
 | 
						|
function DevPostDeviceModes(ahab: HAB; var pdrivDriverData: DrivData; pszDriverName, pszDeviceName, pszName: PAnsiChar; flOptions: cardinal): Longint; cdecl;
 | 
						|
    external 'PMGPI' index 609;
 | 
						|
 | 
						|
    { was
 | 
						|
   #define QUERYSIZE_HEADER_SIZE  (sizeof (QUERYSIZE) - sizeof (((PQUERYSIZE)NULL)->aTuples))
 | 
						|
    }
 | 
						|
//    function QUERYSIZE_HEADER_SIZE : longint;
 | 
						|
//        { return type might be wrong }
 | 
						|
//        begin
 | 
						|
//           QUERYSIZE_HEADER_SIZE:=(sizeof(QUERYSIZE)) - (sizeof((TPQUERYSIZE(NULL))^.aTuples));
 | 
						|
//        end;
 | 
						|
 | 
						|
//   #define DJP_HEADER_SIZE        (sizeof (DJP_ITEM) - sizeof (((PDJP_ITEM)NULL)->ulValue))
 | 
						|
//   #define DJP_NEXT_STRUCTP(p)    ((PDJP_ITEM)((PBYTE)(p) + (p)->cb))
 | 
						|
//   #define DJP_ELEMENTP(s,t)      ((t*)&((s).ulValue))
 | 
						|
//   #define DJP_SET_ELEMENT(s,t,e) (*DJP_ELEMENTP (s,t) = (e))
 | 
						|
 | 
						|
    { was #define dname def_expr }
 | 
						|
//    function DJP_HEADER_SIZE : longint;
 | 
						|
//        { return type might be wrong }
 | 
						|
//        begin
 | 
						|
//           DJP_HEADER_SIZE:=(sizeof(DJP_ITEM)) - (sizeof((TPDJP_ITEM(NULL))^.ulValue));
 | 
						|
//        end;
 | 
						|
 | 
						|
    { was #define dname(params) para_def_expr }
 | 
						|
    { argument types are unknown }
 | 
						|
//    function DJP_NEXT_STRUCTP(p : longint) : TPDJP_ITEM;
 | 
						|
//      begin
 | 
						|
//         DJP_NEXT_STRUCTP:=TPDJP_ITEM((TPBYTE(p)) + (p^.cb));
 | 
						|
//      end;
 | 
						|
 | 
						|
    { was #define dname(params) para_def_expr }
 | 
						|
    { argument types are unknown }
 | 
						|
//    function DJP_ELEMENTP(s,t : longint) : ^Tt;
 | 
						|
//      begin
 | 
						|
//         DJP_ELEMENTP:=^Tt(@(s.ulValue));
 | 
						|
//      end;
 | 
						|
 | 
						|
end.
 |