Update README to say GPLv2 or later and remove references to bzr.
[jerry/slag.git] / win32 / spoolss / ResetPrinter.c
1 /******************************************************************\r
2  * SPOOLSS regression testing code for Samba print servers\r
3  * \r
4  *****************************************************************/\r
5 \r
6 #include <windows.h>\r
7 #include <stdio.h>\r
8 #include "printlib.h"\r
9 \r
10 int main (int argc, char* argv[])\r
11 {\r
12         \r
13         HANDLE  printer;\r
14         PRINTER_DEFAULTS defaults;\r
15         PPRINTER_INFO_2 buffer2 = NULL;\r
16         DWORD needed, returned;\r
17 \r
18         memset(&defaults, 0x0, sizeof(PRINTER_DEFAULTS));\r
19         defaults.pDatatype = strdup("RAW");\r
20 \r
21         if (argc < 2)\r
22         {\r
23                 fprintf (stderr, "useage: %s <printername>\n", argv[0]);\r
24                 exit (-1);\r
25         }\r
26 \r
27         if (!OpenPrinter (argv[1], &printer, NULL))\r
28         {\r
29                 PrintLastError();\r
30                 exit (-1);\r
31         }\r
32         else\r
33                 printf ("Printer [%s] opened successfully.\n\n", argv[1]);\r
34 \r
35         /* INFO LEVEL 2 */\r
36         needed = returned = 0;\r
37         GetPrinter(printer, 2, (LPBYTE)buffer2, 0, &needed);\r
38         if (GetLastError() != ERROR_INSUFFICIENT_BUFFER)\r
39         {\r
40                 if (needed != 0)\r
41                         fprintf (stderr, "Error GetPrinter Info Level 2 for [%s] using NULL buffer.\n", argv[1]);\r
42                 else\r
43                         printf ("Info level 2 returned no information\n");\r
44 \r
45                 goto done;\r
46         }\r
47 \r
48         if ((buffer2 = (LPBYTE)malloc(needed*2)) == NULL)\r
49         {\r
50                 fprintf (stderr, "Unable to malloc memory for buffer!\n");\r
51                 exit (-1);\r
52         }\r
53 \r
54         if (!GetPrinter(printer, 2, (LPBYTE)buffer2, needed, &returned))\r
55         {\r
56                 fprintf (stderr, "Error getting printers Info Level 2 for [%s].\nSize of buffer = 0x%x [0x%x]\n", \r
57                                 argv[1], needed, returned);\r
58                 PrintLastError();\r
59         }\r
60 \r
61         \r
62 \r
63         defaults.pDevMode = buffer2->pDevMode;\r
64         if (!ResetPrinter(printer, &defaults))\r
65                 PrintLastError();\r
66 \r
67 done:\r
68         if (!ClosePrinter(printer))\r
69                 PrintLastError();\r
70         else\r
71                 printf ("Printer [%s] closed successfully.\n", argv[1]);\r
72 \r
73         return 0;\r
74 \r
75 }