1 /******************************************************************
\r
2 * SPOOLSS regression testing code for Samba print servers
\r
4 *****************************************************************/
\r
10 const LPTSTR arch [NUM_ARCH] = { "Windows 4.0",
\r
13 "Windows NT PowerPC",
\r
14 "Windows NT Alpha_AXP" };
\r
16 int main (int argc, char* argv[])
\r
18 DWORD needed, returned, i, j;
\r
19 PDRIVER_INFO_1 buffer1 = NULL;
\r
20 PDRIVER_INFO_2 buffer2 = NULL;
\r
21 PDRIVER_INFO_3 buffer3 = NULL;
\r
25 fprintf (stderr, "useage: %s <servername>\n", argv[0]);
\r
29 for (i=0; i<NUM_ARCH; i++)
\r
31 printf ("\n\n[%s]\n", arch[i]);
\r
34 needed = returned = 0;
\r
35 EnumPrinterDrivers(argv[1], arch[i], 1, (LPBYTE)buffer1, 0, &needed, &returned);
\r
36 if (GetLastError() != ERROR_INSUFFICIENT_BUFFER)
\r
39 fprintf (stderr, "Error EnumPrinterDrivers Info Level 1 for [%s] using NULL buffer.\n", argv[1]);
\r
41 printf ("Info level 1 returned no information\n");
\r
45 if ((buffer1 = (LPBYTE)malloc(needed)) == NULL)
\r
47 fprintf (stderr, "Unable to malloc memory for buffer!\n");
\r
50 if (!EnumPrinterDrivers(argv[1], arch[i], 1, (LPBYTE)buffer1, needed, &needed, &returned))
\r
52 fprintf (stderr, "Error enumerating printer drivers Info Level 1 for [%s].\nSize of buffer = %d\n",
\r
56 printf ("Driver Info Level 1\n");
\r
57 for (j=0; j<returned; j++)
\r
59 printf ("\tDriver Name\t= %s\n\n", buffer1[j].pName);
\r
66 needed = returned = 0;
\r
67 EnumPrinterDrivers(argv[1], arch[i], 2, (LPBYTE)buffer2, 0, &needed, &returned);
\r
68 if (GetLastError() != ERROR_INSUFFICIENT_BUFFER)
\r
71 fprintf (stderr, "Error EnumPrinterDrivers Info Level 2 for [%s] using NULL buffer.\n", argv[1]);
\r
73 printf ("Info level 2 returned no information\n");
\r
77 if ((buffer2 = (LPBYTE)malloc(needed)) == NULL)
\r
79 fprintf (stderr, "Unable to malloc memory for buffer!\n");
\r
82 if (!EnumPrinterDrivers(argv[1], arch[i], 2, (LPBYTE)buffer2, needed, &needed, &returned))
\r
84 fprintf (stderr, "Error enumerating printer drivers Info Level 2 for [%s].\nSize of buffer = %d\n",
\r
88 printf ("\nDriver Info Level 2\n");
\r
89 for (j=0; j<returned; j++)
\r
91 printf ("\tDriver Name\t= %s\n", buffer2[j].pName);
\r
92 printf ("\tEnvironment\t= %s\n", buffer2[j].pEnvironment);
\r
93 printf ("\tVersion\t\t= %d\n", buffer2[j].cVersion);
\r
94 printf ("\tDriver Path\t= %s\n", buffer2[j].pDriverPath);
\r
95 printf ("\tData File\t= %s\n", buffer2[j].pDataFile);
\r
96 printf ("\tConfig File\t= %s\n\n", buffer2[j].pConfigFile);
\r
103 needed = returned = 0;
\r
104 EnumPrinterDrivers(argv[1], arch[i], 3, (LPBYTE)buffer3, 0, &needed, &returned);
\r
105 if (GetLastError() != ERROR_INSUFFICIENT_BUFFER)
\r
108 fprintf (stderr, "Error EnumPrinterDrivers Info Level 3 for [%s] using NULL buffer.\n", argv[1]);
\r
110 printf ("Info level 3 returned no information\n");
\r
114 if ((buffer3 = (LPBYTE)malloc(needed)) == NULL)
\r
116 fprintf (stderr, "Unable to malloc memory for buffer!\n");
\r
119 if (!EnumPrinterDrivers(argv[1], arch[i], 3, (LPBYTE)buffer3, needed, &needed, &returned))
\r
121 fprintf (stderr, "Error enumerating printer drivers Info Level 3 for [%s].\nSize of buffer = %d\n",
\r
125 printf ("\nDriver Info Level 3\n");
\r
126 for (j=0; j<returned; j++)
\r
130 printf ("\tDriver Name\t= %s\n", buffer3[j].pName);
\r
131 printf ("\tEnvironment\t= %s\n", buffer3[j].pEnvironment);
\r
132 printf ("\tVersion\t\t= %d\n", buffer3[j].cVersion);
\r
133 printf ("\tDriver Path\t= %s\n", buffer3[j].pDriverPath);
\r
134 printf ("\tData File\t= %s\n", buffer3[j].pDataFile);
\r
135 printf ("\tConfig File\t= %s\n", buffer3[j].pConfigFile);
\r
136 printf ("\tHelp Path\t= %s\n", buffer3[j].pHelpFile);
\r
137 printf ("\tMonitor Name\t= %s\n", buffer3[j].pMonitorName);
\r
138 printf ("\tData Type\t= %s\n", buffer3[j].pDefaultDataType);
\r
139 ptr = (char*)buffer3->pDependentFiles;
\r
140 while (*ptr != '\0')
\r
142 printf ("\tDependent Files\t= %s\n", ptr);
\r
143 for (;*ptr != '\0'; ptr++)
\r
144 /* printf ("%s\n", ptr); */
\r