Update README to say GPLv2 or later and remove references to bzr.
[jerry/slag.git] / win32 / spoolss / EnumForms.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         DWORD                   returned, needed, i;\r
15         PFORM_INFO_1    buffer1 = NULL;\r
16 \r
17         if (argc < 2)\r
18         {\r
19                 fprintf (stderr, "useage: %s <printername>\n", argv[0]);\r
20                 exit (-1);\r
21         }\r
22 \r
23         /* open the printer */\r
24         if (!OpenPrinter (argv[1], &printer, NULL))\r
25         {\r
26                 fprintf (stderr, "Unable to open %s!\n", argv[1]);\r
27                 exit (-1);\r
28         }\r
29         else\r
30         {\r
31                 printf ("Printer [%s] opened successfully.\n\n", argv[1]);\r
32         }\r
33 \r
34         /* INFO LEVEL 1 */\r
35         EnumForms(printer, 1, (LPBYTE)buffer1, 0, &needed, &returned);\r
36         if (GetLastError() != ERROR_INSUFFICIENT_BUFFER)\r
37         {\r
38                 fprintf (stderr, "Error getting form information for [%s] using NULL buffer.\n", argv[1]);\r
39                 exit (-1);\r
40         }\r
41 \r
42         if ((buffer1 = (LPBYTE)malloc(needed)) == NULL)\r
43         {\r
44                 fprintf (stderr, "Unable to malloc memory for FORM_INFO_1 buffer!\n");\r
45                 exit (-1);\r
46         }\r
47         if (!EnumForms(printer, 1, (LPBYTE)buffer1, needed, &needed, &returned))\r
48         {\r
49                 fprintf (stderr, "Error getting form information for [%s].\nSize of buffer = %d\n", \r
50                              argv[1], needed);\r
51                 exit (-1);\r
52         }\r
53 \r
54         printf ("Form Info Level 1:\n");\r
55         for (i=0; i<returned; i++)\r
56         {\r
57                 print_form_info_1 (&buffer1[i]);\r
58                 printf ("\n");\r
59         }\r
60         free (buffer1);\r
61 \r
62 \r
63         /* close the printer */\r
64         if (!ClosePrinter(printer))\r
65         {\r
66                 fprintf (stderr, "Error closing printer!\n");\r
67                 exit (-1);\r
68         }\r
69         else\r
70         {\r
71                 printf ("Printer [%s] closed successfully.\n", argv[1]);\r
72         }\r
73 \r
74         return 0;\r
75 \r
76 }