Exemplo n.º 1
0
        internal static void AddPrinter(string printerName, string portName, string driverName)
        {
            var pi2 = new PRINTER_INFO_2
            {
                pPrinterName = printerName,
                pPortName    = portName,
                pDriverName  = driverName,
            };

            var handle = NativeMethods.AddPrinter(null, 2, ref pi2);

            if (handle == IntPtr.Zero)
            {
                throw new Win32Exception();
            }

            NativeMethods.ClosePrinter(handle);
        }
Exemplo n.º 2
0
        public void SetPrinter(PRINTER_INFO_2 printerInfo2, int command)
        {
            var size    = Marshal.SizeOf <PRINTER_INFO_2>();
            var address = Marshal.AllocHGlobal(size);

            try
            {
                Marshal.StructureToPtr(printerInfo2, address, false);

                if (NativeMethods.SetPrinter(handle, 2, address, command) == 0)
                {
                    throw new Win32Exception();
                }
            }
            finally
            {
                Marshal.FreeHGlobal(address);
            }
        }
Exemplo n.º 3
0
 internal static extern IntPtr AddPrinter(string pName, uint level, [MarshalAs(UnmanagedType.Struct)] ref PRINTER_INFO_2 pi2);