Update README to say GPLv2 or later and remove references to bzr.
[jerry/slag.git] / win32 / spoolss / SetForm.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 \r
11 int main (int argc, char* argv[])\r
12 {\r
13         \r
14         HANDLE                  printer;\r
15         DWORD                   needed;\r
16         PFORM_INFO_1    buffer1 = NULL;\r
17         LPVOID                  lpMsgBuf;\r
18 \r
19         if (argc < 3)\r
20         {\r
21                 fprintf (stderr, "useage: %s <printername> <form>\n", argv[0]);\r
22                 exit (-1);\r
23         }\r
24 \r
25         /* open the printer */\r
26         if (!OpenPrinter (argv[1], &printer, NULL))\r
27         {\r
28                 fprintf (stderr, "Unable to open %s!\n", argv[1]);\r
29                 exit (-1);\r
30         }\r
31         else\r
32         {\r
33                 printf ("Printer [%s] opened successfully.\n\n", argv[1]);\r
34         }\r
35 \r
36         /* INFO LEVEL 1 */\r
37         GetForm(printer, argv[2], 1, (LPBYTE)buffer1, 0, &needed);\r
38         if (GetLastError() != ERROR_INSUFFICIENT_BUFFER)\r
39         {\r
40                 fprintf (stderr, "Error getting form information for [%s] using NULL buffer.\n", argv[2]);\r
41                 exit (-1);\r
42         }\r
43 \r
44         if ((buffer1 = (LPBYTE)malloc(needed)) == NULL)\r
45         {\r
46                 fprintf (stderr, "Unable to malloc memory for FORM_INFO_1 buffer!\n");\r
47                 exit (-1);\r
48         }\r
49         if (!GetForm(printer, argv[2], 1, (LPBYTE)buffer1, needed, &needed))\r
50         {\r
51                 fprintf (stderr, "Error getting form information for [%2].\nSize of buffer = %d\n", \r
52                              argv[2], needed);\r
53                 exit (-1);\r
54         }\r
55 \r
56         printf ("Form Info Level 1:\n");\r
57         print_form_info_1 (buffer1);\r
58         printf ("\n");\r
59 \r
60         buffer1->Size.cx *= 2;\r
61         buffer1->Size.cy *= 3;\r
62 \r
63         if (SetForm(printer, argv[2], 1, (LPBYTE)buffer1))\r
64         {\r
65                 printf ("Form [%s] updated successfully.  Size(2x X 3y)\n", argv[2]);\r
66         }\r
67         else\r
68         {\r
69                 FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | \r
70                         FORMAT_MESSAGE_IGNORE_INSERTS, NULL, GetLastError(),\r
71                         MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language\r
72                         (LPTSTR) &lpMsgBuf, 0, NULL);\r
73                 printf ("ERROR : %s\n", (char*)lpMsgBuf);\r
74                 LocalFree (lpMsgBuf);\r
75         }\r
76         printf ("\n");\r
77 \r
78 \r
79         free (buffer1);\r
80 \r
81         /* close the printer */\r
82         if (!ClosePrinter(printer))\r
83         {\r
84                 fprintf (stderr, "Error closing printer!\n");\r
85                 exit (-1);\r
86         }\r
87         else\r
88         {\r
89                 printf ("Printer [%s] closed successfully.\n", argv[1]);\r
90         }\r
91 \r
92         return 0;\r
93 \r
94 }