// 调用PrinterProperties private void printPropButton_Click(object sender, EventArgs e) { string printerName = printerList.SelectedItem.ToString(); if (printerName != null && printerName.Length > 0) { IntPtr pPrinter = IntPtr.Zero; IntPtr pDevModeOutput = IntPtr.Zero; IntPtr pDevModeInput = IntPtr.Zero; IntPtr nullPointer = IntPtr.Zero; WindowsAPI.OpenPrinter(printerName, ref pPrinter, ref nullPointer); int iNeeded = WindowsAPI.PrinterProperties(this.Handle, pPrinter); WindowsAPI.ClosePrinter(pPrinter); } }
//调用DocumentProperties private void documentPropButton_Click(object sender, EventArgs e) { string printerName = printerList.SelectedItem.ToString(); if (printerName != null && printerName.Length > 0) { IntPtr pPrinter = IntPtr.Zero; IntPtr pDevModeOutput = IntPtr.Zero; IntPtr pDevModeInput = IntPtr.Zero; IntPtr nullPointer = IntPtr.Zero; WindowsAPI.OpenPrinter(printerName, ref pPrinter, ref nullPointer); int iNeeded = WindowsAPI.DocumentProperties(this.Handle, pPrinter, printerName, ref pDevModeOutput, ref pDevModeInput, 0); pDevModeOutput = System.Runtime.InteropServices.Marshal.AllocHGlobal(iNeeded); WindowsAPI.DocumentProperties(this.Handle, pPrinter, printerName, ref pDevModeOutput, ref pDevModeInput, 4); WindowsAPI.ClosePrinter(pPrinter); } }