File: winprinters_h.inc

package info (click to toggle)
lazarus 2.0.0%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 214,460 kB
  • sloc: pascal: 1,862,622; xml: 265,709; cpp: 56,595; sh: 3,008; java: 609; makefile: 535; perl: 297; sql: 222; ansic: 137
file content (96 lines) | stat: -rw-r--r-- 3,137 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
{%MainUnit ../osprinters.pas}
{
  Author: Olivier Guilbaud

 *****************************************************************************
  This file is part of the Lazarus Component Library (LCL)

  See the file COPYING.modifiedLGPL.txt, included in this distribution,
  for details about the license.
 *****************************************************************************

  Abstract:
    This unit provide an access at Printers for Win32

  History
    04/03/2005 OG - Fix build (from Jesus)
                  - Fix select printer dialog.
    09/03/2005 OG - Includes files for osPrinters

}

uses
  Classes, SysUtils,Printers,LCLType,{Forms,}Windows;//,dialogs;


Type
  THandleType = (htNone, htIC, htDC);

  { TWinPrinter }

  TWinPrinter = class(TPrinter)
  private
    //fDefaultPrinter : String;
    fLastHandleType : THandleType;
    fDC             : HDC;
    fPrinterHandle  : THandle;
    procedure SetIC;
    procedure SetDC;
    procedure ClearDC;
    procedure FreeDC;
    function UpdateDevMode(APrinterIndex:Integer): boolean;

  protected
    function GetDefaultPrinter: string;
    procedure DoBeginDoc; override;
    procedure DoNewPage; override;
    procedure DoBeginPage; override;
    procedure DoEndPage; override;
    procedure DoEndDoc(aAborded : Boolean); override;
    procedure DoAbort; override;

    procedure DoEnumPrinters(Lst : TStrings); override;
    procedure DoResetPrintersList; override;
    
    procedure DoEnumPapers(Lst : TStrings); override;
    function DoGetPaperName: string; override;
    function DoGetDefaultPaperName: string; override;
    procedure DoSetPaperName(aName : string); override;
    function DoGetPaperRect(aName : string; Var aPaperRc : TPaperRect) : Integer; override;

    procedure DoEnumBins(Lst : TStrings); override;
    function DoGetDefaultBinName: string; override;
    function DoGetBinName: string; override;
    procedure DoSetBinName(aName: string); override;
    procedure DoEnumFonts(Lst: TStrings); override;

    function DoSetPrinter(aName : string): Integer; override;
    
    function DoGetCopies : Integer; override;
    procedure DoSetCopies(aValue : Integer); override;
    function DoGetOrientation: TPrinterOrientation; override;
    procedure DoSetOrientation(aValue : TPrinterOrientation); override;

    function GetXDPI: Integer; override;
    function GetYDPI: Integer; override;
    function GetPrinterType: TPrinterType;override;
    function DoGetPrinterState: TPrinterState;override;
    function GetCanPrint: Boolean;override;
    function GetCanRenderCopies : Boolean;override;
    function GetHandlePrinter : HDC;
    procedure SetHandlePrinter(aValue : HDC);
    procedure RawModeChanging; override;
    procedure PrinterSelected; override;
    procedure DoDestroy; override;
  public
    constructor Create; override;
    
    function Write(const Buffer; Count:Integer; out Written: Integer): Boolean; override;

    //Warning not portable functions here
    procedure AdvancedProperties;
    //Warning it is a not potable property
    property Handle : HDC read GetHandlePrinter write SetHandlePrinter;
    
  end;