source: vendor/3.6.0/source4/ntptr/ntptr_interface.c

Last change on this file was 414, checked in by Herwig Bauernfeind, 15 years ago

Samba 3.5.0: Initial import

File size: 16.6 KB
Line 
1/*
2 Unix SMB/CIFS implementation.
3
4 NTPTR interface functions
5
6 Copyright (C) Stefan (metze) Metzmacher 2005
7
8 This program is free software; you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation; either version 3 of the License, or
11 (at your option) any later version.
12
13 This program is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
17
18 You should have received a copy of the GNU General Public License
19 along with this program. If not, see <http://www.gnu.org/licenses/>.
20*/
21
22#include "includes.h"
23#include "ntptr/ntptr.h"
24
25
26/* PrintServer functions */
27WERROR ntptr_OpenPrintServer(struct ntptr_context *ntptr, TALLOC_CTX *mem_ctx,
28 struct spoolss_OpenPrinterEx *r,
29 const char *printer_name,
30 struct ntptr_GenericHandle **server)
31{
32 if (!ntptr->ops->OpenPrintServer) {
33 return WERR_NOT_SUPPORTED;
34 }
35 return ntptr->ops->OpenPrintServer(ntptr, mem_ctx, r, printer_name, server);
36}
37
38WERROR ntptr_XcvDataPrintServer(struct ntptr_GenericHandle *server, TALLOC_CTX *mem_ctx,
39 struct spoolss_XcvData *r)
40{
41 if (server->type != NTPTR_HANDLE_SERVER) {
42 return WERR_FOOBAR;
43 }
44 if (!server->ntptr->ops->XcvDataPrintServer) {
45 return WERR_NOT_SUPPORTED;
46 }
47 return server->ntptr->ops->XcvDataPrintServer(server, mem_ctx, r);
48}
49
50
51/* PrintServer PrinterData functions */
52WERROR ntptr_EnumPrintServerData(struct ntptr_GenericHandle *server, TALLOC_CTX *mem_ctx,
53 struct spoolss_EnumPrinterData *r)
54{
55 if (server->type != NTPTR_HANDLE_SERVER) {
56 return WERR_FOOBAR;
57 }
58 if (!server->ntptr->ops->EnumPrintServerData) {
59 return WERR_NOT_SUPPORTED;
60 }
61 return server->ntptr->ops->EnumPrintServerData(server, mem_ctx, r);
62}
63
64WERROR ntptr_GetPrintServerData(struct ntptr_GenericHandle *server, TALLOC_CTX *mem_ctx,
65 struct spoolss_GetPrinterData *r)
66{
67 if (server->type != NTPTR_HANDLE_SERVER) {
68 return WERR_FOOBAR;
69 }
70 if (!server->ntptr->ops->GetPrintServerData) {
71 return WERR_NOT_SUPPORTED;
72 }
73 return server->ntptr->ops->GetPrintServerData(server, mem_ctx, r);
74}
75
76WERROR ntptr_SetPrintServerData(struct ntptr_GenericHandle *server, TALLOC_CTX *mem_ctx,
77 struct spoolss_SetPrinterData *r)
78{
79 if (server->type != NTPTR_HANDLE_SERVER) {
80 return WERR_FOOBAR;
81 }
82 if (!server->ntptr->ops->SetPrintServerData) {
83 return WERR_NOT_SUPPORTED;
84 }
85 return server->ntptr->ops->SetPrintServerData(server, mem_ctx, r);
86}
87
88WERROR ntptr_DeletePrintServerData(struct ntptr_GenericHandle *server, TALLOC_CTX *mem_ctx,
89 struct spoolss_DeletePrinterData *r)
90{
91 if (server->type != NTPTR_HANDLE_SERVER) {
92 return WERR_FOOBAR;
93 }
94 if (!server->ntptr->ops->DeletePrintServerData) {
95 return WERR_NOT_SUPPORTED;
96 }
97 return server->ntptr->ops->DeletePrintServerData(server, mem_ctx, r);
98}
99
100
101/* PrintServer Form functions */
102WERROR ntptr_EnumPrintServerForms(struct ntptr_GenericHandle *server, TALLOC_CTX *mem_ctx,
103 struct spoolss_EnumForms *r)
104{
105 if (server->type != NTPTR_HANDLE_SERVER) {
106 return WERR_FOOBAR;
107 }
108 if (!server->ntptr->ops->EnumPrintServerForms) {
109 return WERR_NOT_SUPPORTED;
110 }
111 return server->ntptr->ops->EnumPrintServerForms(server, mem_ctx, r);
112}
113
114WERROR ntptr_AddPrintServerForm(struct ntptr_GenericHandle *server, TALLOC_CTX *mem_ctx,
115 struct spoolss_AddForm *r)
116{
117 if (server->type != NTPTR_HANDLE_SERVER) {
118 return WERR_FOOBAR;
119 }
120 if (!server->ntptr->ops->AddPrintServerForm) {
121 return WERR_NOT_SUPPORTED;
122 }
123 return server->ntptr->ops->AddPrintServerForm(server, mem_ctx, r);
124}
125
126WERROR ntptr_SetPrintServerForm(struct ntptr_GenericHandle *server, TALLOC_CTX *mem_ctx,
127 struct spoolss_SetForm *r)
128{
129 if (server->type != NTPTR_HANDLE_SERVER) {
130 return WERR_FOOBAR;
131 }
132 if (!server->ntptr->ops->SetPrintServerForm) {
133 return WERR_NOT_SUPPORTED;
134 }
135 return server->ntptr->ops->SetPrintServerForm(server, mem_ctx, r);
136}
137
138WERROR ntptr_DeletePrintServerForm(struct ntptr_GenericHandle *server, TALLOC_CTX *mem_ctx,
139 struct spoolss_DeleteForm *r)
140{
141 if (server->type != NTPTR_HANDLE_SERVER) {
142 return WERR_FOOBAR;
143 }
144 if (!server->ntptr->ops->DeletePrintServerForm) {
145 return WERR_NOT_SUPPORTED;
146 }
147 return server->ntptr->ops->DeletePrintServerForm(server, mem_ctx, r);
148}
149
150
151/* PrintServer Driver functions */
152WERROR ntptr_EnumPrinterDrivers(struct ntptr_context *ntptr, TALLOC_CTX *mem_ctx,
153 struct spoolss_EnumPrinterDrivers *r)
154{
155 if (!ntptr->ops->EnumPrinterDrivers) {
156 return WERR_NOT_SUPPORTED;
157 }
158 return ntptr->ops->EnumPrinterDrivers(ntptr, mem_ctx, r);
159}
160
161WERROR ntptr_AddPrinterDriver(struct ntptr_context *ntptr, TALLOC_CTX *mem_ctx,
162 struct spoolss_AddPrinterDriver *r)
163{
164 if (!ntptr->ops->AddPrinterDriver) {
165 return WERR_NOT_SUPPORTED;
166 }
167 return ntptr->ops->AddPrinterDriver(ntptr, mem_ctx, r);
168}
169
170WERROR ntptr_DeletePrinterDriver(struct ntptr_context *ntptr, TALLOC_CTX *mem_ctx,
171 struct spoolss_DeletePrinterDriver *r)
172{
173 if (!ntptr->ops->DeletePrinterDriver) {
174 return WERR_NOT_SUPPORTED;
175 }
176 return ntptr->ops->DeletePrinterDriver(ntptr, mem_ctx, r);
177}
178
179WERROR ntptr_GetPrinterDriverDirectory(struct ntptr_context *ntptr, TALLOC_CTX *mem_ctx,
180 struct spoolss_GetPrinterDriverDirectory *r)
181{
182 if (!ntptr->ops->GetPrinterDriverDirectory) {
183 return WERR_NOT_SUPPORTED;
184 }
185 return ntptr->ops->GetPrinterDriverDirectory(ntptr, mem_ctx, r);
186}
187
188
189/* Port functions */
190WERROR ntptr_EnumPorts(struct ntptr_context *ntptr, TALLOC_CTX *mem_ctx,
191 struct spoolss_EnumPorts *r)
192{
193 if (!ntptr->ops->EnumPorts) {
194 return WERR_NOT_SUPPORTED;
195 }
196 return ntptr->ops->EnumPorts(ntptr, mem_ctx, r);
197}
198
199WERROR ntptr_OpenPort(struct ntptr_context *ntptr, TALLOC_CTX *mem_ctx,
200 struct spoolss_OpenPrinterEx *r,
201 const char *port_name,
202 struct ntptr_GenericHandle **port)
203{
204 if (!ntptr->ops->OpenPort) {
205 return WERR_NOT_SUPPORTED;
206 }
207 return ntptr->ops->OpenPort(ntptr, mem_ctx, r, port_name, port);
208}
209
210WERROR ntptr_XcvDataPort(struct ntptr_GenericHandle *port, TALLOC_CTX *mem_ctx,
211 struct spoolss_XcvData *r)
212{
213 if (port->type != NTPTR_HANDLE_PORT) {
214 return WERR_FOOBAR;
215 }
216 if (!port->ntptr->ops->XcvDataPort) {
217 return WERR_NOT_SUPPORTED;
218 }
219 return port->ntptr->ops->XcvDataPort(port, mem_ctx, r);
220}
221
222/* Monitor functions */
223WERROR ntptr_EnumMonitors(struct ntptr_context *ntptr, TALLOC_CTX *mem_ctx,
224 struct spoolss_EnumMonitors *r)
225{
226 if (!ntptr->ops->EnumMonitors) {
227 return WERR_NOT_SUPPORTED;
228 }
229 return ntptr->ops->EnumMonitors(ntptr, mem_ctx, r);
230}
231
232WERROR ntptr_OpenMonitor(struct ntptr_context *ntptr, TALLOC_CTX *mem_ctx,
233 struct spoolss_OpenPrinterEx *r,
234 const char *monitor_name,
235 struct ntptr_GenericHandle **monitor)
236{
237 if (!ntptr->ops->OpenMonitor) {
238 return WERR_NOT_SUPPORTED;
239 }
240 return ntptr->ops->OpenMonitor(ntptr, mem_ctx, r, monitor_name, monitor);
241}
242
243WERROR ntptr_XcvDataMonitor(struct ntptr_GenericHandle *monitor, TALLOC_CTX *mem_ctx,
244 struct spoolss_XcvData *r)
245{
246 if (monitor->type != NTPTR_HANDLE_MONITOR) {
247 return WERR_FOOBAR;
248 }
249 if (!monitor->ntptr->ops->XcvDataMonitor) {
250 return WERR_NOT_SUPPORTED;
251 }
252 return monitor->ntptr->ops->XcvDataMonitor(monitor, mem_ctx, r);
253}
254
255
256/* PrintProcessor functions */
257WERROR ntptr_EnumPrintProcessors(struct ntptr_context *ntptr, TALLOC_CTX *mem_ctx,
258 struct spoolss_EnumPrintProcessors *r)
259{
260 if (!ntptr->ops->EnumPrintProcessors) {
261 return WERR_NOT_SUPPORTED;
262 }
263 return ntptr->ops->EnumPrintProcessors(ntptr, mem_ctx, r);
264}
265
266WERROR ntptr_GetPrintProcessorDirectory(struct ntptr_context *ntptr, TALLOC_CTX *mem_ctx,
267 struct spoolss_GetPrintProcessorDirectory *r)
268{
269 if (!ntptr->ops->GetPrintProcessorDirectory) {
270 return WERR_NOT_SUPPORTED;
271 }
272 return ntptr->ops->GetPrintProcessorDirectory(ntptr, mem_ctx, r);
273}
274
275
276/* Printer functions */
277WERROR ntptr_EnumPrinters(struct ntptr_context *ntptr, TALLOC_CTX *mem_ctx,
278 struct spoolss_EnumPrinters *r)
279{
280 if (!ntptr->ops->EnumPrinters) {
281 return WERR_NOT_SUPPORTED;
282 }
283 return ntptr->ops->EnumPrinters(ntptr, mem_ctx, r);
284}
285
286WERROR ntptr_OpenPrinter(struct ntptr_context *ntptr, TALLOC_CTX *mem_ctx,
287 struct spoolss_OpenPrinterEx *r,
288 const char *printer_name,
289 struct ntptr_GenericHandle **printer)
290{
291 if (!ntptr->ops->OpenPrinter) {
292 return WERR_NOT_SUPPORTED;
293 }
294 return ntptr->ops->OpenPrinter(ntptr, mem_ctx, r, printer_name, printer);
295}
296
297WERROR ntptr_AddPrinter(struct ntptr_context *ntptr, TALLOC_CTX *mem_ctx,
298 struct spoolss_AddPrinter *r,
299 struct ntptr_GenericHandle **printer)
300{
301 if (!ntptr->ops->AddPrinter) {
302 return WERR_NOT_SUPPORTED;
303 }
304 return ntptr->ops->AddPrinter(ntptr, mem_ctx, r, printer);
305}
306
307WERROR ntptr_GetPrinter(struct ntptr_context *ntptr, TALLOC_CTX *mem_ctx,
308 struct spoolss_GetPrinter *r)
309{
310 if (!ntptr->ops->GetPrinter) {
311 return WERR_NOT_SUPPORTED;
312 }
313 return ntptr->ops->GetPrinter(ntptr, mem_ctx, r);
314}
315
316WERROR ntptr_SetPrinter(struct ntptr_context *ntptr, TALLOC_CTX *mem_ctx,
317 struct spoolss_SetPrinter *r)
318{
319 if (!ntptr->ops->SetPrinter) {
320 return WERR_NOT_SUPPORTED;
321 }
322 return ntptr->ops->SetPrinter(ntptr, mem_ctx, r);
323}
324
325WERROR ntptr_DeletePrinter(struct ntptr_context *ntptr, TALLOC_CTX *mem_ctx,
326 struct spoolss_DeletePrinter *r)
327{
328 if (!ntptr->ops->DeletePrinter) {
329 return WERR_NOT_SUPPORTED;
330 }
331 return ntptr->ops->DeletePrinter(ntptr, mem_ctx, r);
332}
333
334WERROR ntptr_XcvDataPrinter(struct ntptr_GenericHandle *printer, TALLOC_CTX *mem_ctx,
335 struct spoolss_XcvData *r)
336{
337 if (printer->type != NTPTR_HANDLE_PRINTER) {
338 return WERR_FOOBAR;
339 }
340 if (!printer->ntptr->ops->XcvDataPrinter) {
341 return WERR_NOT_SUPPORTED;
342 }
343 return printer->ntptr->ops->XcvDataPrinter(printer, mem_ctx, r);
344}
345
346
347/* Printer Driver functions */
348WERROR ntptr_GetPrinterDriver(struct ntptr_context *ntptr, TALLOC_CTX *mem_ctx,
349 struct spoolss_GetPrinterDriver *r)
350{
351 if (!ntptr->ops->GetPrinterDriver) {
352 return WERR_NOT_SUPPORTED;
353 }
354 return ntptr->ops->GetPrinterDriver(ntptr, mem_ctx, r);
355}
356
357
358/* Printer PrinterData functions */
359WERROR ntptr_EnumPrinterData(struct ntptr_GenericHandle *printer, TALLOC_CTX *mem_ctx,
360 struct spoolss_EnumPrinterData *r)
361{
362 if (printer->type != NTPTR_HANDLE_PRINTER) {
363 return WERR_FOOBAR;
364 }
365 if (!printer->ntptr->ops->EnumPrinterData) {
366 return WERR_NOT_SUPPORTED;
367 }
368 return printer->ntptr->ops->EnumPrinterData(printer, mem_ctx, r);
369}
370
371WERROR ntptr_GetPrinterData(struct ntptr_GenericHandle *printer, TALLOC_CTX *mem_ctx,
372 struct spoolss_GetPrinterData *r)
373{
374 if (printer->type != NTPTR_HANDLE_PRINTER) {
375 return WERR_FOOBAR;
376 }
377 if (!printer->ntptr->ops->GetPrinterData) {
378 return WERR_NOT_SUPPORTED;
379 }
380 return printer->ntptr->ops->GetPrinterData(printer, mem_ctx, r);
381}
382
383WERROR ntptr_SetPrinterData(struct ntptr_GenericHandle *printer, TALLOC_CTX *mem_ctx,
384 struct spoolss_SetPrinterData *r)
385{
386 if (printer->type != NTPTR_HANDLE_PRINTER) {
387 return WERR_FOOBAR;
388 }
389 if (!printer->ntptr->ops->SetPrinterData) {
390 return WERR_NOT_SUPPORTED;
391 }
392 return printer->ntptr->ops->SetPrinterData(printer, mem_ctx, r);
393}
394
395WERROR ntptr_DeletePrinterData(struct ntptr_GenericHandle *printer, TALLOC_CTX *mem_ctx,
396 struct spoolss_DeletePrinterData *r)
397{
398 if (printer->type != NTPTR_HANDLE_PRINTER) {
399 return WERR_FOOBAR;
400 }
401 if (!printer->ntptr->ops->DeletePrinterData) {
402 return WERR_NOT_SUPPORTED;
403 }
404 return printer->ntptr->ops->DeletePrinterData(printer, mem_ctx, r);
405}
406
407
408/* Printer Form functions */
409WERROR ntptr_EnumPrinterForms(struct ntptr_GenericHandle *printer, TALLOC_CTX *mem_ctx,
410 struct spoolss_EnumForms *r)
411{
412 if (printer->type != NTPTR_HANDLE_PRINTER) {
413 return WERR_FOOBAR;
414 }
415 if (!printer->ntptr->ops->EnumPrinterForms) {
416 return WERR_NOT_SUPPORTED;
417 }
418 return printer->ntptr->ops->EnumPrinterForms(printer, mem_ctx, r);
419}
420
421WERROR ntptr_AddPrinterForm(struct ntptr_GenericHandle *printer, TALLOC_CTX *mem_ctx,
422 struct spoolss_AddForm *r)
423{
424 if (printer->type != NTPTR_HANDLE_PRINTER) {
425 return WERR_FOOBAR;
426 }
427 if (!printer->ntptr->ops->AddPrinterForm) {
428 return WERR_NOT_SUPPORTED;
429 }
430 return printer->ntptr->ops->AddPrinterForm(printer, mem_ctx, r);
431}
432
433WERROR ntptr_GetPrinterForm(struct ntptr_GenericHandle *printer, TALLOC_CTX *mem_ctx,
434 struct spoolss_GetForm *r)
435{
436 if (printer->type != NTPTR_HANDLE_PRINTER) {
437 return WERR_FOOBAR;
438 }
439 if (!printer->ntptr->ops->GetPrinterForm) {
440 return WERR_NOT_SUPPORTED;
441 }
442 return printer->ntptr->ops->GetPrinterForm(printer, mem_ctx, r);
443}
444
445WERROR ntptr_SetPrinterForm(struct ntptr_GenericHandle *printer, TALLOC_CTX *mem_ctx,
446 struct spoolss_SetForm *r)
447{
448 if (printer->type != NTPTR_HANDLE_PRINTER) {
449 return WERR_FOOBAR;
450 }
451 if (!printer->ntptr->ops->SetPrinterForm) {
452 return WERR_NOT_SUPPORTED;
453 }
454 return printer->ntptr->ops->SetPrinterForm(printer, mem_ctx, r);
455}
456
457WERROR ntptr_DeletePrinterForm(struct ntptr_GenericHandle *printer, TALLOC_CTX *mem_ctx,
458 struct spoolss_DeleteForm *r)
459{
460 if (printer->type != NTPTR_HANDLE_PRINTER) {
461 return WERR_FOOBAR;
462 }
463 if (!printer->ntptr->ops->DeletePrinterForm) {
464 return WERR_NOT_SUPPORTED;
465 }
466 return printer->ntptr->ops->DeletePrinterForm(printer, mem_ctx, r);
467}
468
469
470/* Printer Job functions */
471WERROR ntptr_EnumJobs(struct ntptr_GenericHandle *printer, TALLOC_CTX *mem_ctx,
472 struct spoolss_EnumJobs *r)
473{
474 if (printer->type != NTPTR_HANDLE_PRINTER) {
475 return WERR_FOOBAR;
476 }
477 if (!printer->ntptr->ops->EnumJobs) {
478 return WERR_NOT_SUPPORTED;
479 }
480 return printer->ntptr->ops->EnumJobs(printer, mem_ctx, r);
481}
482
483WERROR ntptr_AddJob(struct ntptr_GenericHandle *printer, TALLOC_CTX *mem_ctx,
484 struct spoolss_AddJob *r)
485{
486 if (printer->type != NTPTR_HANDLE_PRINTER) {
487 return WERR_FOOBAR;
488 }
489 if (!printer->ntptr->ops->AddJob) {
490 return WERR_NOT_SUPPORTED;
491 }
492 return printer->ntptr->ops->AddJob(printer, mem_ctx, r);
493}
494
495WERROR ntptr_ScheduleJob(struct ntptr_GenericHandle *printer, TALLOC_CTX *mem_ctx,
496 struct spoolss_ScheduleJob *r)
497{
498 if (printer->type != NTPTR_HANDLE_PRINTER) {
499 return WERR_FOOBAR;
500 }
501 if (!printer->ntptr->ops->ScheduleJob) {
502 return WERR_NOT_SUPPORTED;
503 }
504 return printer->ntptr->ops->ScheduleJob(printer, mem_ctx, r);
505}
506
507WERROR ntptr_GetJob(struct ntptr_GenericHandle *printer, TALLOC_CTX *mem_ctx,
508 struct spoolss_GetJob *r)
509{
510 if (printer->type != NTPTR_HANDLE_PRINTER) {
511 return WERR_FOOBAR;
512 }
513 if (!printer->ntptr->ops->GetJob) {
514 return WERR_NOT_SUPPORTED;
515 }
516 return printer->ntptr->ops->GetJob(printer, mem_ctx, r);
517}
518
519WERROR ntptr_SetJob(struct ntptr_GenericHandle *printer, TALLOC_CTX *mem_ctx,
520 struct spoolss_SetJob *r)
521{
522 if (printer->type != NTPTR_HANDLE_PRINTER) {
523 return WERR_FOOBAR;
524 }
525 if (!printer->ntptr->ops->SetJob) {
526 return WERR_NOT_SUPPORTED;
527 }
528 return printer->ntptr->ops->SetJob(printer, mem_ctx, r);
529}
530
531
532/* Printer Printing functions */
533WERROR ntptr_StartDocPrinter(struct ntptr_GenericHandle *printer, TALLOC_CTX *mem_ctx,
534 struct spoolss_StartDocPrinter *r)
535{
536 if (printer->type != NTPTR_HANDLE_PRINTER) {
537 return WERR_FOOBAR;
538 }
539 if (!printer->ntptr->ops->StartDocPrinter) {
540 return WERR_NOT_SUPPORTED;
541 }
542 return printer->ntptr->ops->StartDocPrinter(printer, mem_ctx, r);
543}
544
545WERROR ntptr_EndDocPrinter(struct ntptr_GenericHandle *printer, TALLOC_CTX *mem_ctx,
546 struct spoolss_EndDocPrinter *r)
547{
548 if (printer->type != NTPTR_HANDLE_PRINTER) {
549 return WERR_FOOBAR;
550 }
551 if (!printer->ntptr->ops->EndDocPrinter) {
552 return WERR_NOT_SUPPORTED;
553 }
554 return printer->ntptr->ops->EndDocPrinter(printer, mem_ctx, r);
555}
556
557WERROR ntptr_StartPagePrinter(struct ntptr_GenericHandle *printer, TALLOC_CTX *mem_ctx,
558 struct spoolss_StartPagePrinter *r)
559{
560 if (printer->type != NTPTR_HANDLE_PRINTER) {
561 return WERR_FOOBAR;
562 }
563 if (!printer->ntptr->ops->StartPagePrinter) {
564 return WERR_NOT_SUPPORTED;
565 }
566 return printer->ntptr->ops->StartPagePrinter(printer, mem_ctx, r);
567}
568
569WERROR ntptr_EndPagePrinter(struct ntptr_GenericHandle *printer, TALLOC_CTX *mem_ctx,
570 struct spoolss_EndPagePrinter *r)
571{
572 if (printer->type != NTPTR_HANDLE_PRINTER) {
573 return WERR_FOOBAR;
574 }
575 if (!printer->ntptr->ops->EndPagePrinter) {
576 return WERR_NOT_SUPPORTED;
577 }
578 return printer->ntptr->ops->EndPagePrinter(printer, mem_ctx, r);
579}
580
581WERROR ntptr_WritePrinter(struct ntptr_GenericHandle *printer, TALLOC_CTX *mem_ctx,
582 struct spoolss_WritePrinter *r)
583{
584 if (printer->type != NTPTR_HANDLE_PRINTER) {
585 return WERR_FOOBAR;
586 }
587 if (!printer->ntptr->ops->WritePrinter) {
588 return WERR_NOT_SUPPORTED;
589 }
590 return printer->ntptr->ops->WritePrinter(printer, mem_ctx, r);
591}
592
593WERROR ntptr_ReadPrinter(struct ntptr_GenericHandle *printer, TALLOC_CTX *mem_ctx,
594 struct spoolss_ReadPrinter *r)
595{
596 if (printer->type != NTPTR_HANDLE_PRINTER) {
597 return WERR_FOOBAR;
598 }
599 if (!printer->ntptr->ops->ReadPrinter) {
600 return WERR_NOT_SUPPORTED;
601 }
602 return printer->ntptr->ops->ReadPrinter(printer, mem_ctx, r);
603}
604
Note: See TracBrowser for help on using the repository browser.