private static void UpdateSettings(System.Windows.Forms.NativeMethods.PAGESETUPDLG data, System.Drawing.Printing.PageSettings pageSettings, System.Drawing.Printing.PrinterSettings printerSettings)
 {
     System.Windows.Forms.IntSecurity.AllPrintingAndUnmanagedCode.Assert();
     try
     {
         pageSettings.SetHdevmode(data.hDevMode);
         if (printerSettings != null)
         {
             printerSettings.SetHdevmode(data.hDevMode);
             printerSettings.SetHdevnames(data.hDevNames);
         }
     }
     finally
     {
         CodeAccessPermission.RevertAssert();
     }
     Margins margins = new Margins {
         Left = data.marginLeft,
         Top = data.marginTop,
         Right = data.marginRight,
         Bottom = data.marginBottom
     };
     PrinterUnit fromUnit = ((data.Flags & 8) != 0) ? PrinterUnit.HundredthsOfAMillimeter : PrinterUnit.ThousandthsOfAnInch;
     pageSettings.Margins = PrinterUnitConvert.Convert(margins, fromUnit, PrinterUnit.Display);
 }
 private static void UpdatePrinterSettings(IntPtr hDevMode, IntPtr hDevNames, short copies, int flags, System.Drawing.Printing.PrinterSettings settings, System.Drawing.Printing.PageSettings pageSettings)
 {
     settings.SetHdevmode(hDevMode);
     settings.SetHdevnames(hDevNames);
     if (pageSettings != null)
     {
         pageSettings.SetHdevmode(hDevMode);
     }
     if (settings.Copies == 1)
     {
         settings.Copies = copies;
     }
     settings.PrintRange = ((PrintRange) flags) & (PrintRange.CurrentPage | PrintRange.SomePages | PrintRange.Selection);
 }