Initial checkin of junk code from my bzr tree.
[gd/win32-spoolss/.git] / AddPrinter.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 <stdlib.h>\r
9 #include <string.h>\r
10 #include "printlib.h"\r
11 \r
12 \r
13 int main (int argc, char* argv[])\r
14 {\r
15         PRINTER_INFO_2          buffer;\r
16         HANDLE                          printer;\r
17         LPVOID                          lpMsgBuf;\r
18         \r
19         if (argc < 5)\r
20         {\r
21                 fprintf (stderr, "useage: %s <servername> <printername> <sharename> <port name>\n", argv[0]);\r
22                 exit (-1);\r
23         }\r
24 \r
25         memset(&buffer, 0 , sizeof(buffer));\r
26 \r
27         buffer.pServerName      = strdup (argv[1]);\r
28         buffer.pPrinterName = strdup (argv[2]);\r
29         buffer.pShareName       = strdup (argv[3]);\r
30         buffer.pPortName        = strdup (argv[4]);\r
31         buffer.pDriverName      = strdup ("Apple LaserWriter II NTX v51.8");\r
32         buffer.pPrintProcessor  = strdup ("winprint");\r
33         buffer.pDatatype        = strdup ("RAW");\r
34         buffer.Attributes       = PRINTER_ATTRIBUTE_SHARED;\r
35         buffer.pSecurityDescriptor = NULL;\r
36 \r
37 \r
38         printf ("Attempting to add printer [%s] on server [%s]\n", \r
39                 buffer.pPrinterName, buffer.pServerName);\r
40         printf ("\nPrinter Info 1:\n");\r
41         print_printer_info_2 (&buffer);\r
42         printf ("\n");\r
43 \r
44         printer = AddPrinter (buffer.pServerName, 2, (LPBYTE)(&buffer));\r
45         if ( printer == NULL)\r
46         {\r
47                 FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | \r
48                         FORMAT_MESSAGE_IGNORE_INSERTS, NULL, GetLastError(),\r
49                         MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language\r
50                         (LPTSTR) &lpMsgBuf, 0, NULL);\r
51                 printf ("ERROR : %s\n", (char*)lpMsgBuf);\r
52                 LocalFree (lpMsgBuf);\r
53         }\r
54         else\r
55         {\r
56                 printf ("Printer [%s] added successfully on server [%s]!\n",\r
57                         buffer.pPrinterName, buffer.pServerName);\r
58                 if (!ClosePrinter (printer))\r
59                         fprintf (stderr, "Error closing printer handle!\n");\r
60                 else\r
61                         printf ("Printer handle closed successfully.\n");\r
62         }\r
63 \r
64         return 0;\r
65 \r
66 }\r
67 \r