2025-04-27 07:49:33 -04:00

130 lines
2.2 KiB
C

/*++
Copyright (c) 1996 Microsoft Corporation
Module Name:
adddrv.c
Abstract:
Add a fax printer to the system
Usage: adddrv printer-name port-name driver-directory environment
Environment:
Windows NT fax driver
Revision History:
02/20/96 -davidx-
Created it.
mm/dd/yy -author-
description
--*/
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <winspool.h>
#define Assert(cond) { \
if (! (cond)) { \
printf("Error on line: %d\n", __LINE__); \
exit(-1); \
} \
}
#define Error(arg) { printf arg; exit(-1); }
#define FAX_DRIVER_NAME "Windows NT Fax Driver"
PSTR pPrinterName;
PSTR pPortName;
PSTR pDriverDirectory;
PSTR pEnvironment;
//
// Add the driver files to the system
//
VOID
AddFaxPrinterDriver(
VOID
)
{
DRIVER_INFO_2 driverInfo2 = {
2,
FAX_DRIVER_NAME,
pEnvironment,
"faxdrv.dll", // driverFile,
"faxwiz.dll", // dataFile,
"faxui.dll", // configFile
};
if (! AddPrinterDriver(NULL, 2, (LPBYTE) &driverInfo2))
Error(("AddPrinterDriver failed: %d\n", GetLastError()));
}
//
// Add a fax printer to the system
//
VOID
AddFaxPrinter(
VOID
)
{
PRINTER_INFO_2 printerInfo2 = {
NULL,
pPrinterName,
NULL,
pPortName,
FAX_DRIVER_NAME,
NULL,
NULL,
NULL,
NULL,
"winprint",
"RAW",
NULL,
NULL,
};
HANDLE hPrinter;
if (! (hPrinter = AddPrinter(NULL, 2, (LPBYTE) &printerInfo2)))
Error(("AddPrinter failed: %d\n", GetLastError()));
PrinterProperties(NULL, hPrinter);
ClosePrinter(hPrinter);
}
INT _cdecl
main(
INT argc,
CHAR **argv
)
{
if (argc != 5)
Error(("Usage: %s printer-name port-name driver-directory environment\n", *argv));
pPrinterName = *++argv;
pPortName = *++argv;
pDriverDirectory = *++argv;
pEnvironment = *++argv;
AddFaxPrinterDriver();
AddFaxPrinter();
return 0;
}