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 (*pcSetDeviceForPrinterDriver)(rdpPrinterDriver* driver,
39 typedef void (*pcReferencePrinterDriver)(rdpPrinterDriver* driver);
40 typedef rdpPrinter** (*pcEnumPrinters)(rdpPrinterDriver* driver);
41 typedef void (*pcReleaseEnumPrinters)(rdpPrinter** printers);
43 typedef rdpPrinter* (*pcGetPrinter)(rdpPrinterDriver* driver,
const char* name,
44 const char* driverName, BOOL isDefault);
45 typedef void (*pcReferencePrinter)(rdpPrinter* printer);
49 ALIGN64 WINPR_ATTR_NODISCARD pcEnumPrinters EnumPrinters;
50 ALIGN64 pcReleaseEnumPrinters ReleaseEnumPrinters;
51 ALIGN64 WINPR_ATTR_NODISCARD pcGetPrinter GetPrinter;
53 ALIGN64 pcReferencePrinterDriver AddRef;
54 ALIGN64 pcReferencePrinterDriver ReleaseRef;
64 typedef rdpPrintJob* (*pcCreatePrintJob)(rdpPrinter* printer, UINT32 id);
65 typedef rdpPrintJob* (*pcFindPrintJob)(rdpPrinter* printer, UINT32 id);
72 ALIGN64 BOOL is_default;
74 ALIGN64
size_t references;
75 ALIGN64 rdpPrinterDriver* backend;
76 ALIGN64 WINPR_ATTR_NODISCARD pcCreatePrintJob CreatePrintJob;
77 ALIGN64 WINPR_ATTR_NODISCARD pcFindPrintJob FindPrintJob;
78 ALIGN64 pcReferencePrinter AddRef;
79 ALIGN64 pcReferencePrinter ReleaseRef;
83 typedef UINT (*pcWritePrintJob)(rdpPrintJob* printjob,
const BYTE* data,
size_t size);
84 typedef void (*pcClosePrintJob)(rdpPrintJob* printjob);
89 ALIGN64 rdpPrinter* printer;
91 ALIGN64 WINPR_ATTR_NODISCARD pcWritePrintJob Write;
92 ALIGN64 pcClosePrintJob Close;
ALIGN64 pcSetDeviceForPrinterDriver SetDeviceContext
Function allowing to set a context for a backend.