⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 yaodurant.drawing.printing.vb

📁 Programming the .NET Compact Framework with vb 源代码
💻 VB
字号:
' YaoDurant.Drawing.Printing.cs - Printing support class.
'
' Code from _Programming the .NET Compact Framework with C#_
' and _Programming the .NET Compact Framework with VB_
' (c) Copyright 2002-2003 Paul Yao and David Durant. 
' All rights reserved.
Imports System
Imports System.Runtime.InteropServices

Namespace YaoDurant.Drawing
   Public Class Printing
      ' Generic version of CreateDC
      <DllImport("coredll.dll", CharSet:=CharSet.Unicode)> _
      Public Shared Function CreateDC( _
      ByVal lpszDriver As String, ByVal lpszDevice As String, _
      ByVal lpszOutput As String, ByRef lpInitData As DEVMODE) _
      As IntPtr
      End Function

      ' Slightly more efficient version of CreateDC
      <DllImport("coredll.dll", CharSet:=CharSet.Unicode)> _
      Public Shared Function CreateDC( _
      ByVal lpszDriver As IntPtr, ByVal lpszDevice As IntPtr, _
      ByVal lpszOutput As IntPtr, ByVal lpInitData As IntPtr) _
      As IntPtr
      End Function

      <DllImport("coredll.dll", CharSet:=CharSet.Unicode)> _
      Public Shared Function DeleteDC(ByVal hdc As IntPtr) _
      As Integer
      End Function

      <DllImport("coredll.dll", CharSet:=CharSet.Unicode)> _
      Public Shared Function StartDoc(ByVal hdc As IntPtr, _
      ByRef lpdi As DOCINFO) As Integer
      End Function

      <DllImport("coredll.dll", CharSet:=CharSet.Unicode)> _
      Public Shared Function EndDoc(ByVal hdc As IntPtr) As Integer
      End Function

      <DllImport("coredll.dll", CharSet:=CharSet.Unicode)> _
      Public Shared Function StartPage(ByVal hDC As IntPtr) As Integer
      End Function

      <DllImport("coredll.dll", CharSet:=CharSet.Unicode)> _
      Public Shared Function EndPage(ByVal hdc As IntPtr) As Integer
      End Function

      '--------------------------------------------------------
      ' Create a DC using return values from PageSetupDlgW
      '--------------------------------------------------------
      Public Shared Function CreatePrinterDC(ByRef lppsd As PAGESETUPDLGSTRUCT) As IntPtr
         ' Create managed structure for DEVNAMES
         Dim dn As DEVNAMES = New DEVNAMES
         Marshal.PtrToStructure(lppsd.hDevNames, dn)

         ' Get base address of native structure
         Dim iBase As Integer = lppsd.hDevNames.ToInt32()

         ' Get pointer to driver name.
         Dim iptrDriver As IntPtr = New IntPtr(iBase + dn.wDriverOffset)
         Dim strDriver As String = Marshal.PtrToStringUni(iptrDriver)

         ' Get pointer to device name. 
         Dim iptrDevice As IntPtr = New IntPtr(iBase + dn.wDeviceOffset)
         Dim strDevice As String = Marshal.PtrToStringUni(iptrDevice)

         ' Get pointer to output port.
         Dim iptrOutput As IntPtr = New IntPtr(iBase + dn.wOutputOffset)
         Dim strOutput As String = Marshal.PtrToStringUni(iptrOutput)

         Dim hdc As IntPtr = _
            CreateDC(iptrDriver, iptrDevice, iptrOutput, lppsd.hDevMode)
         Return hdc
      End Function

   End Class


   Public Structure DOCINFO
      Public cbSize As Integer
      Public lpszDocName As IntPtr
      Public lpszOutput As IntPtr
      Public lpszDatatype As IntPtr
      Public fwType As Integer
   End Structure


   Public Structure DEVMODE
      Public dmDeviceName As CHARNAME32 ' WCHAR  dmDeviceName[CCHDEVICENAME]
      Public dmSpecVersion As Short
      Public dmDriverVersion As Short
      Public dmSize As Short
      Public dmDriverExtra As Short
      Public dmFields As Integer
      Public dmOrientation As Short
      Public dmPaperSize As Short
      Public dmPaperLength As Short
      Public dmPaperWidth As Short
      Public dmScale As Short
      Public dmCopies As Short
      Public dmDefaultSource As Short
      Public dmPrintQuality As Short
      Public dmColor As Short
      Public dmDuplex As Short
      Public dmYResolution As Short
      Public dmTTOption As Short
      Public dmCollate As Short
      Public dmFormName As CHARNAME32 ' WCHAR  dmFormName[CCHFORMNAME];
      Public dmLogPixels As Short
      Public dmBitsPerPel As Integer
      Public dmPelsWidth As Integer
      Public dmPelsHeight As Integer
      Public dmDisplayFlags As Integer
      Public dmDisplayFrequency As Integer
   End Structure

End Namespace

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -