add SetPrinterDataExW.exe.
[gd/win32-spoolss/.git] / GetForm.c
1 /******************************************************************
2  * SPOOLSS regression testing code for Samba print servers
3  *
4  *****************************************************************/
5
6 #include <windows.h>
7 #include <stdio.h>
8 #include "printlib.h"
9
10
11 int main (int argc, char* argv[])
12 {
13
14         HANDLE                  printer;
15         DWORD                   needed;
16         PFORM_INFO_1    buffer1 = NULL;
17
18         if (argc < 3)
19         {
20                 fprintf (stderr, "useage: %s <printername> <form>\n", argv[0]);
21                 exit (-1);
22         }
23
24         /* open the printer */
25         if (!OpenPrinter (argv[1], &printer, NULL))
26         {
27                 fprintf (stderr, "Unable to open %s!\n", argv[1]);
28                 exit (-1);
29         }
30         else
31         {
32                 printf ("Printer [%s] opened successfully.\n\n", argv[1]);
33         }
34
35         /* INFO LEVEL 1 */
36         GetForm(printer, argv[2], 1, (LPBYTE)buffer1, 0, &needed);
37         if (GetLastError() != ERROR_INSUFFICIENT_BUFFER)
38         {
39                 fprintf (stderr, "Error getting form information for [%s] using NULL buffer.\n", argv[2]);
40                 exit (-1);
41         }
42
43         if ((buffer1 = (PFORM_INFO_1)malloc(needed)) == NULL)
44         {
45                 fprintf (stderr, "Unable to malloc memory for FORM_INFO_1 buffer!\n");
46                 exit (-1);
47         }
48         if (!GetForm(printer, argv[2], 1, (LPBYTE)buffer1, needed, &needed))
49         {
50                 fprintf (stderr, "Error getting form information for [%2].\nSize of buffer = %d\n",
51                              argv[2], needed);
52                 exit (-1);
53         }
54
55         printf ("Form Info Level 1:\n");
56         print_form_info_1 (buffer1);
57         printf ("\n");
58         free (buffer1);
59
60
61         /* close the printer */
62         if (!ClosePrinter(printer))
63         {
64                 fprintf (stderr, "Error closing printer!\n");
65                 exit (-1);
66         }
67         else
68         {
69                 printf ("Printer [%s] closed successfully.\n", argv[1]);
70         }
71
72         return 0;
73
74 }