1 /******************************************************************
\r
2 * SPOOLSS regression testing code for Samba print servers
\r
4 *****************************************************************/
\r
8 #include "printlib.h"
\r
10 int main (int argc, char* argv[])
\r
12 DWORD needed, returned;
\r
14 PPRINTER_INFO_1 buffer1 = NULL;
\r
15 PPRINTER_INFO_2 buffer2 = NULL;
\r
16 PPRINTER_INFO_5 buffer5 = NULL;
\r
17 PPRINTER_INFO_7 buffer7 = NULL;
\r
21 fprintf (stderr, "useage: %s <printername>\n", argv[0]);
\r
25 /* open the printer */
\r
26 if (!OpenPrinter (argv[1], &printer, NULL))
\r
28 fprintf (stderr, "Unable to open %s!\n", argv[1]);
\r
33 printf ("Printer [%s] opened successfully.\n\n", argv[1]);
\r
38 needed = returned = 0;
\r
39 GetPrinter(printer, 1, (LPBYTE)buffer1, 0, &needed);
\r
40 if (GetLastError() != ERROR_INSUFFICIENT_BUFFER)
\r
43 fprintf (stderr, "Error GetPrinter Info Level 1 for [%s] using NULL buffer.\n", argv[1]);
\r
45 printf ("Info level 1 returned no information\n");
\r
49 if ((buffer1 = (LPBYTE)malloc(needed)) == NULL)
\r
51 fprintf (stderr, "Unable to malloc memory for buffer!\n");
\r
54 if (!GetPrinter(printer, 1, (LPBYTE)buffer1, needed, &returned))
\r
56 fprintf (stderr, "Error enumerating printers Info Level 1 for [%s].\nSize of buffer = %d\n",
\r
60 printf ("Printer Info Level 1:\n");
\r
61 print_printer_info_1(buffer1);
\r
67 needed = returned = 0;
\r
68 GetPrinter(printer, 2, (LPBYTE)buffer2, 0, &needed);
\r
69 if (GetLastError() != ERROR_INSUFFICIENT_BUFFER)
\r
72 fprintf (stderr, "Error GetPrinter Info Level 2 for [%s] using NULL buffer.\n", argv[1]);
\r
74 printf ("Info level 2 returned no information\n");
\r
78 if ((buffer2 = (LPBYTE)malloc(needed*2)) == NULL)
\r
80 fprintf (stderr, "Unable to malloc memory for buffer!\n");
\r
84 printf("Pass one\n");
\r
85 if (!GetPrinter(printer, 2, (LPBYTE)buffer2, needed, &returned))
\r
87 fprintf (stderr, "Error getting printers Info Level 2 for [%s].\nSize of buffer = 0x%x [0x%x]\n",
\r
88 argv[1], needed, returned);
\r
93 printf("Pass Two\n");
\r
94 if (!GetPrinter(printer, 2, (LPBYTE)buffer2, needed, &returned))
\r
96 fprintf (stderr, "Error getting printers Info Level 2 for [%s].\nSize of buffer = 0x%x [0x%x]\n",
\r
97 argv[1], needed, returned);
\r
102 printf ("Printer Info Level 2:\n");
\r
103 printf ("Returned = 0x%x\n", returned);
\r
104 print_printer_info_2(buffer2);
\r
110 GetPrinter(printer, 5, (LPBYTE)buffer5, 0, &needed);
\r
111 if (GetLastError() != ERROR_INSUFFICIENT_BUFFER)
\r
114 fprintf (stderr, "Error GetPrinter Info Level 5 for [%s] using NULL buffer.\n", argv[1]);
\r
116 printf ("Info level 5 returned no information\n");
\r
120 if ((buffer5 = (LPBYTE)malloc(needed)) == NULL)
\r
122 fprintf (stderr, "Unable to malloc memory for buffer!\n");
\r
125 if (!GetPrinter(printer, 5, (LPBYTE)buffer5, needed, &needed))
\r
127 fprintf (stderr, "Error getting printers Info Level 5 for [%s].\nSize of buffer = %d\n",
\r
131 printf ("Printer Info Level 5:\n");
\r
132 print_printer_info_5(buffer5);
\r
138 GetPrinter(printer, 7, (LPBYTE)buffer7, 0, &needed);
\r
139 if (GetLastError() != ERROR_INSUFFICIENT_BUFFER)
\r
142 fprintf (stderr, "Error GetPrinter Info Level 7 for [%s] using NULL buffer.\n", argv[1]);
\r
144 printf ("Info level 7 returned no information\n");
\r
148 if ((buffer7 = (LPBYTE)malloc(needed)) == NULL)
\r
150 fprintf (stderr, "Unable to malloc memory for buffer!\n");
\r
153 if (!GetPrinter(printer, 7, (LPBYTE)buffer7, needed, &needed))
\r
155 fprintf (stderr, "Error getting printers Info Level 7 for [%s].\nSize of buffer = %d\n",
\r
159 printf ("Printer Info Level 7:\n");
\r
160 printf ("flags = %d\n", buffer7->dwAction);
\r
165 /* close the printer */
\r
166 if (!ClosePrinter(printer))
\r
168 fprintf (stderr, "Error closing printer!\n");
\r
173 printf ("Printer [%s] closed successfully.\n", argv[1]);
\r