|
#define MAX_PRINTERS 5 |
|
|
|
|
1 |
#include "rdesktop.h" |
#include "rdesktop.h" |
2 |
|
|
3 |
extern RDPDR_DEVICE g_rdpdr_device[]; |
extern RDPDR_DEVICE g_rdpdr_device[]; |
4 |
|
|
5 |
PRINTER * |
static PRINTER * |
6 |
get_printer_data(HANDLE handle) |
get_printer_data(HANDLE handle) |
7 |
{ |
{ |
8 |
int index; |
int index; |
16 |
} |
} |
17 |
|
|
18 |
int |
int |
19 |
printer_enum_devices(int *id, char *optarg) |
printer_enum_devices(uint32 * id, char *optarg) |
20 |
{ |
{ |
21 |
PRINTER *pprinter_data; |
PRINTER *pprinter_data; |
22 |
|
|
44 |
pprinter_data = (PRINTER *) xmalloc(sizeof(PRINTER)); |
pprinter_data = (PRINTER *) xmalloc(sizeof(PRINTER)); |
45 |
|
|
46 |
strcpy(g_rdpdr_device[*id].name, "PRN"); |
strcpy(g_rdpdr_device[*id].name, "PRN"); |
47 |
strcat(g_rdpdr_device[*id].name, ltoa(already + count + 1, 10)); |
strcat(g_rdpdr_device[*id].name, l_to_a(already + count + 1, 10)); |
48 |
|
|
49 |
/* first printer is set as default printer */ |
/* first printer is set as default printer */ |
50 |
if ((already + count) == 0) |
if ((already + count) == 0) |
52 |
else |
else |
53 |
pprinter_data->default_printer = False; |
pprinter_data->default_printer = False; |
54 |
|
|
55 |
pos2 = next_arg(optarg, ':'); |
pos2 = next_arg(optarg, '='); |
56 |
if (*optarg == (char) 0x00) |
if (*optarg == (char) 0x00) |
57 |
pprinter_data->printer = "mydeskjet"; /* set default */ |
pprinter_data->printer = "mydeskjet"; /* set default */ |
58 |
else |
else |
109 |
static NTSTATUS |
static NTSTATUS |
110 |
printer_close(HANDLE handle) |
printer_close(HANDLE handle) |
111 |
{ |
{ |
112 |
PRINTER *pprinter_data; |
int i = get_device_index(handle); |
113 |
|
if (i >= 0) |
114 |
pprinter_data = get_printer_data(handle); |
{ |
115 |
|
PRINTER *pprinter_data = g_rdpdr_device[i].pdevice_data; |
116 |
g_rdpdr_device[get_device_index(handle)].handle = 0; |
if (pprinter_data) |
117 |
|
pclose(pprinter_data->printer_fp); |
118 |
pclose(pprinter_data->printer_fp); |
g_rdpdr_device[i].handle = 0; |
119 |
|
} |
120 |
return STATUS_SUCCESS; |
return STATUS_SUCCESS; |
121 |
} |
} |
122 |
|
|