Update README to say GPLv2 or later and remove references to bzr.
[jerry/slag.git] / win32 / spoolss / EnumMonitors.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         DWORD                   returned, needed, i;\r
15         PMONITOR_INFO_1 buffer1 = NULL;\r
16         PMONITOR_INFO_2 buffer2 = NULL;\r
17 \r
18         if (argc < 2)\r
19         {\r
20                 fprintf (stderr, "useage: %s <servername>\n", argv[0]);\r
21                 exit (-1);\r
22         }\r
23 \r
24         /* INFO LEVEL 1 */\r
25         needed = returned = 0;\r
26         EnumMonitors(argv[1], 1, (LPBYTE)buffer1, 0, &needed, &returned);\r
27         if (GetLastError() != ERROR_INSUFFICIENT_BUFFER)\r
28         {\r
29                 fprintf (stderr, "Error getting monitor information for [%s] using NULL buffer.\n", argv[1]);\r
30                 exit (-1);\r
31         }\r
32 \r
33         if ((buffer1 = (LPBYTE)malloc(needed)) == NULL)\r
34         {\r
35                 fprintf (stderr, "Unable to malloc memory for MONITOR_INFO_1 buffer!\n");\r
36                 exit (-1);\r
37         }\r
38         if (!EnumMonitors(argv[1], 1, (LPBYTE)buffer1, needed, &needed, &returned))\r
39         {\r
40                 fprintf (stderr, "Error getting monitor information for [%s].\nSize of buffer = %d\n", \r
41                              argv[1], needed);\r
42                 exit (-1);\r
43         }\r
44 \r
45         printf ("Monitor Info Level 1:\n");\r
46         for (i=0; i<returned; i++)\r
47         {\r
48                 print_monitor_info_1(&buffer1[i]);\r
49         }\r
50         free (buffer1);\r
51 \r
52         /* INFO LEVEL 2 */\r
53         needed = returned = 0;\r
54         EnumMonitors(argv[1], 2, (LPBYTE)buffer2, 0, &needed, &returned);\r
55         if (GetLastError() != ERROR_INSUFFICIENT_BUFFER)\r
56         {\r
57                 fprintf (stderr, "Error getting monitor information for [%s] using NULL buffer.\n", argv[1], argv[2]);\r
58                 exit (-1);\r
59         }\r
60 \r
61         if ((buffer2 = (LPBYTE)malloc(needed)) == NULL)\r
62         {\r
63                 fprintf (stderr, "Unable to malloc memory for MONITOR_INFO_2 buffer!\n");\r
64                 exit (-1);\r
65         }\r
66         if (!EnumMonitors(argv[1], 2, (LPBYTE)buffer2, needed, &needed, &returned))\r
67         {\r
68                 fprintf (stderr, "Error getting monitor information for [%s].\nSize of buffer = %d\n", \r
69                              argv[1], needed);\r
70                 exit (-1);\r
71         }\r
72 \r
73         printf ("Monitor Info Level 2:\n");\r
74         for (i=0; i<returned; i++)\r
75         {\r
76                 print_monitor_info_2(&buffer2[i]);\r
77         }\r
78         free (buffer2);\r
79 \r
80 \r
81         return 0;\r
82 \r
83 }