23 #ifndef FREERDP_CHANNEL_PRINTER_CLIENT_PRINTER_H
24 #define FREERDP_CHANNEL_PRINTER_CLIENT_PRINTER_H
26 #include <freerdp/channels/rdpdr.h>
37 typedef void (*pcReferencePrinterDriver)(rdpPrinterDriver* driver);
38 typedef rdpPrinter** (*pcEnumPrinters)(rdpPrinterDriver* driver);
39 typedef void (*pcReleaseEnumPrinters)(rdpPrinter** printers);
41 typedef rdpPrinter* (*pcGetPrinter)(rdpPrinterDriver* driver,
const char* name,
42 const char* driverName, BOOL isDefault);
43 typedef void (*pcReferencePrinter)(rdpPrinter* printer);
47 pcEnumPrinters EnumPrinters;
48 pcReleaseEnumPrinters ReleaseEnumPrinters;
49 pcGetPrinter GetPrinter;
51 pcReferencePrinterDriver AddRef;
52 pcReferencePrinterDriver ReleaseRef;
55 typedef rdpPrintJob* (*pcCreatePrintJob)(rdpPrinter* printer, UINT32 id);
56 typedef rdpPrintJob* (*pcFindPrintJob)(rdpPrinter* printer, UINT32 id);
66 rdpPrinterDriver* backend;
67 pcCreatePrintJob CreatePrintJob;
68 pcFindPrintJob FindPrintJob;
69 pcReferencePrinter AddRef;
70 pcReferencePrinter ReleaseRef;
73 typedef UINT (*pcWritePrintJob)(rdpPrintJob* printjob,
const BYTE* data,
size_t size);
74 typedef void (*pcClosePrintJob)(rdpPrintJob* printjob);
81 pcWritePrintJob Write;
82 pcClosePrintJob Close;