1 /******************************************************************
\r
2 * SPOOLSS regression testing code for Samba print servers
\r
4 *****************************************************************/
\r
8 #include "printlib.h"
\r
11 const LPTSTR arch [NUM_ARCH] = { "Windows 4.0",
\r
14 "Windows NT PowerPC",
\r
15 "Windows NT Alpha_AXP" };
\r
18 int main (int argc, char* argv[])
\r
22 DWORD returned, needed, i;
\r
23 PDRIVER_INFO_1 buffer1 = NULL;
\r
24 PDRIVER_INFO_2 buffer2 = NULL;
\r
25 PDRIVER_INFO_3 buffer3 = NULL;
\r
26 PDRIVER_INFO_4 buffer4 = NULL;
\r
27 PDRIVER_INFO_5 buffer5 = NULL;
\r
28 PDRIVER_INFO_6 buffer6 = NULL;
\r
30 /* printf ("argc = %d\n", argc);*/
\r
34 fprintf (stderr, "useage: %s <printername>\n", argv[0]);
\r
38 /* open the printer */
\r
39 if (!OpenPrinter (argv[1], &printer, NULL))
\r
46 printf ("Printer [%s] opened successfully.\n\n", argv[1]);
\r
49 for (i=0; i<NUM_ARCH; i++)
\r
51 printf ("Environment = [%s]\n\n", arch[i]);
\r
54 GetPrinterDriver(printer, arch[i], 1, (LPBYTE)buffer1, 0, &needed);
\r
55 if (GetLastError() != ERROR_INSUFFICIENT_BUFFER)
\r
57 fprintf (stderr, "Error getting printer driver information for [%s] using NULL buffer.\n", argv[1]);
\r
63 if ((buffer1 = (LPBYTE)malloc(needed*1024)) == NULL)
\r
65 fprintf (stderr, "Unable to malloc memory for DRIVER_INFO_1 buffer!\n");
\r
69 if (!GetPrinterDriver(printer, arch[i], 1, (LPBYTE)buffer1, needed, &returned))
\r
71 fprintf (stderr, "Error getting printer driver information for [%s].\nSize of buffer = %d\n",
\r
77 printf ("Printer Driver Info Level 1:\n");
\r
78 print_driver_info_1 (buffer1);
\r
82 GetPrinterDriver(printer, arch[i], 2, (LPBYTE)buffer2, 0, &needed);
\r
83 if (GetLastError() != ERROR_INSUFFICIENT_BUFFER)
\r
85 fprintf (stderr, "Error getting printer driver information for [%s] using NULL buffer.\n", argv[1]);
\r
90 if ((buffer2 = (LPBYTE)malloc(needed)) == NULL)
\r
92 fprintf (stderr, "Unable to malloc memory for DRIVER_INFO_2 buffer!\n");
\r
95 if (!GetPrinterDriver(printer, arch[i], 2, (LPBYTE)buffer2, needed, &returned))
\r
97 fprintf (stderr, "Error getting printer driver information for [%s].\nSize of buffer = %d\n",
\r
103 printf ("Printer Driver Info Level 2:\n");
\r
104 print_driver_info_2 (buffer2);
\r
109 GetPrinterDriver(printer, arch[i], 3, (LPBYTE)buffer3, 0, &needed);
\r
110 if (GetLastError() != ERROR_INSUFFICIENT_BUFFER)
\r
112 fprintf (stderr, "Error getting printer driver information for [%s] using NULL buffer.\n", argv[1]);
\r
117 if ((buffer3 = (LPBYTE)malloc(needed)) == NULL)
\r
119 fprintf (stderr, "Unable to malloc memory for DRIVER_INFO_3 buffer!\n");
\r
122 if (!GetPrinterDriver(printer, arch[i], 3, (LPBYTE)buffer3, needed, &returned))
\r
124 fprintf (stderr, "Error getting printer driver information for [%s].\nSize of buffer = %d\n",
\r
130 printf ("Printer Driver Info Level 3:\n");
\r
131 print_driver_info_3 (buffer3);
\r
136 GetPrinterDriver(printer, arch[i], 6, (LPBYTE)buffer6, 0, &needed);
\r
137 if (GetLastError() != ERROR_INSUFFICIENT_BUFFER)
\r
139 fprintf (stderr, "Error getting printer driver information for [%s] using NULL buffer.\n", argv[1]);
\r
144 if ((buffer6 = (LPBYTE)malloc(needed)) == NULL)
\r
146 fprintf (stderr, "Unable to malloc memory for DRIVER_INFO_6 buffer!\n");
\r
149 if (!GetPrinterDriver(printer, arch[i], 6, (LPBYTE)buffer6, needed, &returned))
\r
151 fprintf (stderr, "Error getting printer driver information for [%s].\nSize of buffer = %d\n",
\r
157 printf ("Printer Driver Info Level 6:\n");
\r
158 print_driver_info_6 (buffer6);
\r
165 /* close the printer */
\r
166 if (!ClosePrinter(printer))
\r
172 printf ("Printer [%s] closed successfully.\n", argv[1]);
\r