1 /******************************************************************
2 * SPOOLSS regression testing code for Samba print servers
4 *****************************************************************/
13 int main (int argc, char* argv[])
15 PRINTER_INFO_2 buffer;
21 fprintf (stderr, "useage: %s <servername> <printername> <sharename> <port name>\n", argv[0]);
25 memset(&buffer, 0 , sizeof(buffer));
27 buffer.pServerName = _strdup (argv[1]);
28 buffer.pPrinterName = _strdup (argv[2]);
29 buffer.pShareName = _strdup (argv[3]);
30 buffer.pPortName = _strdup (argv[4]);
31 buffer.pDriverName = _strdup ("Apple LaserWriter II NTX v51.8");
32 buffer.pPrintProcessor = _strdup ("winprint");
33 buffer.pDatatype = _strdup ("RAW");
34 buffer.Attributes = PRINTER_ATTRIBUTE_SHARED;
35 buffer.pSecurityDescriptor = NULL;
38 printf ("Attempting to add printer [%s] on server [%s]\n",
39 buffer.pPrinterName, buffer.pServerName);
40 printf ("\nPrinter Info 1:\n");
41 print_printer_info_2 (&buffer);
44 printer = AddPrinter (buffer.pServerName, 2, (LPBYTE)(&buffer));
47 FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM |
48 FORMAT_MESSAGE_IGNORE_INSERTS, NULL, GetLastError(),
49 MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
50 (LPTSTR) &lpMsgBuf, 0, NULL);
51 printf ("ERROR : %s\n", (char*)lpMsgBuf);
56 printf ("Printer [%s] added successfully on server [%s]!\n",
57 buffer.pPrinterName, buffer.pServerName);
58 if (!ClosePrinter (printer))
59 fprintf (stderr, "Error closing printer handle!\n");
61 printf ("Printer handle closed successfully.\n");