Dim printerName As String = m_printDoc.PrinterSettings.PrinterName
If String.IsNullOrEmpty(printerName) = False Then
Dim hPrinter As IntPtr
If OpenPrinter(printerName, hPrinter, IntPtr.Zero) = False Then
Exit Sub
End If
Dim ps As PrinterSettings = m_printDoc.PrinterSettings 'New PrinterSettings()
Dim hDevMode As IntPtr = ps.GetHdevmode()
' Dim hDevMode As IntPtr = ps.GetHdevmode(ps.DefaultPageSettings)
Dim pDevMode As IntPtr = GlobalLock(hDevMode)
Dim sizeNeeded As Integer = DocumentProperties(Me.Handle, hPrinter, ps.PrinterName, pDevMode, pDevMode, 0)
Dim devModeData As IntPtr = System.Runtime.InteropServices.Marshal.AllocHGlobal(sizeNeeded)
DocumentProperties(Me.Handle, hPrinter, ps.PrinterName, devModeData, pDevMode, 14)
GlobalUnlock(hDevMode)
ClosePrinter(hPrinter)
ps.SetHdevmode(devModeData)
ps.DefaultPageSettings.SetHdevmode(devModeData)
GlobalFree(hDevMode)
System.Runtime.InteropServices.Marshal.FreeHGlobal(devModeData)
End If