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