<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>技術情報ブログ &#187; ．ＮＥＴ</title>
	<atom:link href="http://tecblog.oarts.jp/?cat=8&#038;feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://tecblog.oarts.jp</link>
	<description>Posted by Oriental Arts</description>
	<lastBuildDate>Wed, 26 Sep 2012 03:11:25 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>VB.NET2005でプリンターの設定</title>
		<link>http://tecblog.oarts.jp/?p=10</link>
		<comments>http://tecblog.oarts.jp/?p=10#comments</comments>
		<pubDate>Wed, 23 Dec 2009 17:49:16 +0000</pubDate>
		<dc:creator>oakita</dc:creator>
				<category><![CDATA[．ＮＥＴ]]></category>

		<guid isPermaLink="false">http://tecblog.oarts.jp/?p=10</guid>
		<description><![CDATA[ 
 
 
Imports System.Drawing.Printing
Imports System.Runtime.InteropServices
Imports System.ComponentModel
Public Class PrnDrvClass
    &#8216; Constants for DEVMODE
    Dim CCHFORMNAME As Integer = 32
    Dim CCHDEVICENAME As Integer = 32
    &#8216; Constants for PRINTER_DEFAULTS.DesiredAccess
    Dim PRINTER_ACCESS_ADMINISTER As Integer = &#38;H4
    Dim PRINTER_ACCESS_USE As Integer = &#38;H8
    Dim STANDARD_RIGHTS_REQUIRED As Integer = &#38;HF0000
    Dim PRINTER_ALL_ACCESS As Integer = (STANDARD_RIGHTS_REQUIRED Or _
      PRINTER_ACCESS_ADMINISTER Or PRINTER_ACCESS_USE)
    [...]]]></description>
			<content:encoded><![CDATA[<p> </p>
<p> </p>
<p> <br />
Imports System.Drawing.Printing<br />
Imports System.Runtime.InteropServices<br />
Imports System.ComponentModel</p>
<p>Public Class PrnDrvClass</p>
<p>    &#8216; Constants for DEVMODE<br />
    Dim CCHFORMNAME As Integer = 32<br />
    Dim CCHDEVICENAME As Integer = 32</p>
<p>    &#8216; Constants for PRINTER_DEFAULTS.DesiredAccess<br />
    Dim PRINTER_ACCESS_ADMINISTER As Integer = &amp;H4<br />
    Dim PRINTER_ACCESS_USE As Integer = &amp;H8<br />
    Dim STANDARD_RIGHTS_REQUIRED As Integer = &amp;HF0000<br />
    Dim PRINTER_ALL_ACCESS As Integer = (STANDARD_RIGHTS_REQUIRED Or _<br />
      PRINTER_ACCESS_ADMINISTER Or PRINTER_ACCESS_USE)</p>
<p>    &#8216; Constants for DocumentProperties() call<br />
    Dim DM_MODIFY As Integer = 8<br />
    &#8216;  Dim DM_IN_BUFFER As Integer = DM_MODIFY<br />
    Dim DM_COPY As Integer = 2<br />
    &#8216; Dim DM_OUT_BUFFER As Integer = DM_COPY</p>
<p>    &#8216; Custom constants for this sample&#8217;s SelectForm function<br />
    Dim FORM_NOT_SELECTED As Integer = 0<br />
    Dim FORM_SELECTED As Integer = 1<br />
    Dim FORM_ADDED As Integer = 2</p>
<p>    &#8216; ユーザー定義の用紙を示す定数の宣言<br />
    Dim FORM_USER As Int32 = &amp;H0&amp;</p>
<p>    &#8216;/* orientation selections */<br />
    Dim DMORIENT_PORTRAIT As Short = 1<br />
    Dim DMORIENT_LANDSCAPE As Short = 2</p>
<p>    Dim DMPAPER_USER As Integer = 256<br />
    &#8216;/* field selection bits */</p>
<p>    &#8216;    Dim DM_ORIENTATION As Integer = &amp;H1&amp;<br />
    Dim DM_FORMNAME As Integer = &amp;H10000<br />
    Dim DM_ORIENTATION As Integer = &amp;H1<br />
    Dim DM_PAPERSIZE As Integer = &amp;H2<br />
    Dim DM_PAPERLENGTH As Integer = &amp;H4<br />
    Dim DM_PAPERWIDTH As Integer = &amp;H8<br />
    Dim DM_SCALE As Integer = &amp;H10<br />
    Dim DM_DEFAULTSOURCE As Integer = &amp;H200<br />
    Dim DMPAPER_A3 As Short = 8 &#8216; /* A3 297 x 420 mm                    */<br />
    Dim DMPAPER_A4 As Short = 9  &#8216;/* A4 210 x 297 mm                    */<br />
    Dim DMPAPER_A4SMALL As Short = 10  &#8216;/* A4 Small 210 x 297 mm              */<br />
    Dim DMPAPER_A5 As Short = 11  &#8216;/* A5 148 x 210 mm                    */<br />
    Dim DMPAPER_B4 As Short = 12  &#8216;/* B4 (JIS) 250 x 354                 */<br />
    Dim DMPAPER_B5 As Short = 13  &#8216;/* B5 (JIS) 182 x 257 mm              */</p>
<p>    &#8216;DocumentProperties Use<br />
    Private Const DM_OUT_BUFFER As Short = 2<br />
    Private Const DM_PROMPT As Short = 4<br />
    Private Const DM_IN_PROMPT As Short = DM_PROMPT<br />
    Private Const DM_IN_BUFFER As Short = 8</p>
<p>    &#8216;幅と高さを定義する構造体の宣言<br />
    &lt;StructLayout(LayoutKind.Sequential)&gt; _<br />
    Public Structure SIZEL<br />
        Public cx As Int32<br />
        Public cy As Int32<br />
    End Structure</p>
<p>    &#8216;矩形を定義する構造体の宣言<br />
    &lt;StructLayout(LayoutKind.Sequential)&gt; _<br />
    Public Structure RECTL<br />
        Public left As Int32<br />
        Public top As Int32<br />
        Public right As Int32<br />
        Public bottom As Int32<br />
    End Structure</p>
<p>    Public Structure PRINTER_DEFAULTS<br />
        &#8216;      Dim pDatatype As String<br />
        &#8216;      Dim pDevMode As IntPtr    &#8216; DEVMODE<br />
        &#8216;      Dim DesiredAccess As Long<br />
        Dim pDatatype As IntPtr<br />
        Dim pDevMode As IntPtr    &#8216; DEVMODE<br />
        Dim DesiredAccess As Long<br />
    End Structure</p>
<p>    &#8216;FORM_INFO_1 (用紙情報を定義する構造体)<br />
    &lt;StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Auto)&gt; _<br />
    Public Structure FORM_INFO_1<br />
        &lt;MarshalAs(UnmanagedType.I4)&gt; Public Flags As Int32<br />
        &lt;MarshalAs(UnmanagedType.LPTStr)&gt; Public pName As String<br />
        Public Size As SIZEL<br />
        Public ImageableArea As RECTL<br />
    End Structure</p>
<p>    &lt;StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Auto)&gt; _<br />
    Public Structure PRINTER_INFO_2<br />
        Public pServerName As String<br />
        Public pPrinterName As String<br />
        Public pShareName As String<br />
        Public pPortName As String<br />
        Public pDriverName As String<br />
        Public pComment As String<br />
        Public pLocation As String<br />
        Public pDevMode As IntPtr<br />
        Public pSepFile As String<br />
        Public pPrintProcessor As String<br />
        Public pDatatype As String<br />
        Public pParameters As String<br />
        Public pSecurityDescriptor As IntPtr<br />
        Public Attributes As System.UInt32<br />
        Public Priority As System.UInt32<br />
        Public DefaultPriority As System.UInt32<br />
        Public StartTime As System.UInt32<br />
        Public UntilTime As System.UInt32<br />
        Public Status As System.UInt32<br />
        Public cJobs As System.UInt32<br />
        Public AveragePPM As System.UInt32<br />
    End Structure<br />
    &lt;StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Auto)&gt; _<br />
     Public Class DEVMODE<br />
        &lt;MarshalAs(UnmanagedType.ByValTStr, sizeconst:=&amp;H20)&gt; _<br />
        Public dmDeviceName As String<br />
        Public dmSpecVersion As Short<br />
        Public dmDriverVersion As Short<br />
        Public dmSize As Short<br />
        Public dmDriverExtra As Short<br />
        Public dmFields As Integer<br />
        Public dmOrientation As Short<br />
        Public dmPaperSize As Short<br />
        Public dmPaperLength As Short<br />
        Public dmPaperWidth As Short<br />
        Public dmScale As Short<br />
        Public dmCopies As Short<br />
        Public dmDefaultSource As Short<br />
        Public dmPrintQuality As Short<br />
        Public dmColor As Short<br />
        Public dmDuplex As Short<br />
        Public dmYResolution As Short<br />
        Public dmTTOption As Short<br />
        Public dmCollate As Short<br />
        &lt;MarshalAs(UnmanagedType.ByValTStr, SizeConst:=&amp;H20)&gt; _<br />
        Public dmFormName As String<br />
        Public dmLogPixels As Short<br />
        Public dmBitsPerPel As Integer<br />
        Public dmPelsWidth As Integer<br />
        Public dmPelsHeight As Integer<br />
        Public dmDisplayFlags As Integer<br />
        Public dmDisplayFrequency As Integer<br />
        Public dmICMMethod As Integer<br />
        Public dmICMIntent As Integer<br />
        Public dmMediaType As Integer<br />
        Public dmDitherType As Integer<br />
        Public dmICCManufacturer As Integer<br />
        Public dmICCModel As Integer<br />
        Public dmPanningWidth As Integer<br />
        Public dmPanningHeight As Integer<br />
        Public Overrides Function ToString() As String<br />
            Return String.Concat(New Object() {&#8221;[DEVMODE: dmDeviceName=", Me.dmDeviceName, ", dmSpecVersion=", Me.dmSpecVersion, ", dmDriverVersion=", Me.dmDriverVersion, ", dmSize=", Me.dmSize, ", dmDriverExtra=", Me.dmDriverExtra, ", dmFields=", Me.dmFields, ", dmOrientation=", Me.dmOrientation, ", dmPaperSize=", Me.dmPaperSize, ", dmPaperLength=", Me.dmPaperLength, ", dmPaperWidth=", Me.dmPaperWidth, ", dmScale=", Me.dmScale, ", dmCopies=", Me.dmCopies, ", dmDefaultSource=", Me.dmDefaultSource, ", dmPrintQuality=", Me.dmPrintQuality, ", dmColor=", Me.dmColor, ", dmDuplex=", Me.dmDuplex, ", dmYResolution=", Me.dmYResolution, ", dmTTOption=", Me.dmTTOption, ", dmCollate=", Me.dmCollate, ", dmFormName=", Me.dmFormName, ", dmLogPixels=", Me.dmLogPixels, ", dmBitsPerPel=", Me.dmBitsPerPel, ", dmPelsWidth=", Me.dmPelsWidth, ", dmPelsHeight=", Me.dmPelsHeight, ", dmDisplayFlags=", Me.dmDisplayFlags, ", dmDisplayFrequency=", Me.dmDisplayFrequency, ", dmICMMethod=", Me.dmICMMethod, ", dmICMIntent=", Me.dmICMIntent, ", dmMediaType=", Me.dmMediaType, ", dmDitherType=", Me.dmDitherType, ", dmICCManufacturer=", Me.dmICCManufacturer, ", dmICCModel=", Me.dmICCModel, ", dmPanningWidth=", Me.dmPanningWidth, ", dmPanningHeight=", Me.dmPanningHeight, "]&#8220;})<br />
        End Function<br />
    End Class<br />
    &#8216;================================================================<br />
    &#8216; <br />
    &#8216;<br />
    &#8216;<br />
    &#8216;================================================================</p>
<p>    &#8216;Win32API</p>
<p>    Private Declare Auto Function DocumentProperties Lib &#8220;winspool.drv&#8221; ( _<br />
        ByVal hwnd As IntPtr, _<br />
        ByVal hPrinter As IntPtr, _<br />
        &lt;MarshalAs(UnmanagedType.LPTStr)&gt; ByVal pDeviceNameg As String, _<br />
        ByVal pDevModeOutput As IntPtr, _<br />
        ByVal pDevModeInput As IntPtr, _<br />
        ByVal fMode As Integer) As Int32</p>
<p>    Private Declare Auto Function GlobalLock Lib &#8220;kernel32&#8243; (ByVal hmem As IntPtr) As IntPtr<br />
    Private Declare Auto Function GlobalFree Lib &#8220;kernel32&#8243; (ByVal hmem As IntPtr) As Int32<br />
    Private Declare Auto Function GlobalUnlock Lib &#8220;kernel32&#8243; (ByVal hMem As IntPtr) As Int32<br />
    Private Declare Auto Function OpenPrinter Lib &#8220;winspool.drv&#8221; ( _<br />
        &lt;MarshalAs(UnmanagedType.LPTStr)&gt; ByVal pPrinterName As String, _<br />
        ByRef phPrinter As IntPtr, _<br />
        ByRef pDefault As PRINTER_DEFAULTS) As Int32</p>
<p>    Private Declare Auto Function ClosePrinter Lib &#8220;winspool.drv&#8221; (ByVal hPrinter As IntPtr) As Int32</p>
<p>    Private Declare Auto Function SetPrinter Lib &#8220;winspool.drv&#8221; ( _<br />
        ByVal hPrinter As IntPtr, _<br />
        ByVal Level As Integer, _<br />
        ByVal pForm As IntPtr, _<br />
        ByVal Command As Integer) As Boolean<br />
    Private Declare Auto Function GetPrinter Lib &#8220;winspool.drv&#8221; ( _<br />
    ByVal hPrinter As IntPtr, ByVal dwLevel As Integer, _<br />
      ByVal pPrinter As IntPtr, ByVal cbBuf As Integer, _<br />
      ByRef pcbNeeded As Integer) As Boolean<br />
    Private Declare Auto Function AddForm Lib &#8220;winspool.drv&#8221; ( _<br />
        ByVal hPrinter As IntPtr, _<br />
        ByVal Level As Integer, _<br />
        ByVal pForm As IntPtr) As Integer</p>
<p>    Private Declare Auto Function DeleteForm Lib &#8220;winspool.drv&#8221; (ByVal hPrinter As IntPtr, _<br />
    &lt;MarshalAs(UnmanagedType.LPTStr)&gt; ByVal pName As String) As Integer<br />
    &#8216;================================================================<br />
    &#8216; プリンター設定を指定された用紙サイズと名前で追加し<br />
    &#8216; デフォルト設定する<br />
    &#8216;<br />
    &#8216;　パラメータ<br />
    &#8216;　hwnd         ：Wndハンドルを指定する<br />
    &#8216;　printerName  ：設定したいプリンター名（コントロールパネルで設定済みのもの）<br />
    &#8216;　paper        ：用紙名称　好きな名前を付ける、削除する際に必要<br />
    &#8216;　width        ：用紙幅<br />
    &#8216;　height       ：用紙高さ<br />
    &#8216;<br />
    &#8216;　戻り値　なし<br />
    &#8216;<br />
    &#8216;<br />
    &#8216;================================================================<br />
    Public Sub addPaper(ByVal hwnd As IntPtr, ByVal printerName As String, _<br />
         ByVal paper As String, ByVal width As Integer, ByVal height As Integer)<br />
        Dim ret As Integer<br />
        Dim hPrinter As IntPtr<br />
        Dim FormInfo1Level As Integer = 1<br />
        Dim FormInfo1 As FORM_INFO_1<br />
        Dim prtFormInfo1 As IntPtr<br />
        Dim pDevMode As DEVMODE<br />
        Dim _PrinterName As String = printerName</p>
<p>        Dim pd As New PRINTER_DEFAULTS<br />
        Dim pPrinterDef As IntPtr = IntPtr.Zero</p>
<p>        Dim pi2 As PRINTER_INFO_2<br />
        Dim pPrinterInfo As IntPtr = IntPtr.Zero<br />
        Try</p>
<p>            pd.DesiredAccess = PRINTER_ALL_ACCESS</p>
<p>            &#8216; プリンタのハンドルを取得<br />
            ret = OpenPrinter(printerName, hPrinter, pd)<br />
            If ret = 0 Or hPrinter.Equals(IntPtr.Zero) Then<br />
                Throw New Win32Exception(Marshal.GetLastWin32Error())<br />
                Return<br />
            End If<br />
            With FormInfo1<br />
                &#8216; 特性にユーザー定義を指定<br />
                .Flags = FORM_USER<br />
                &#8216; 用紙名を指定<br />
                .pName = paper<br />
                &#8216; 幅と高さを指定<br />
                .Size.cx = width<br />
                .Size.cy = height<br />
                &#8216;印刷範囲を指定()<br />
                .ImageableArea.left = 50<br />
                .ImageableArea.top = 50<br />
                .ImageableArea.right = width &#8211; 50<br />
                .ImageableArea.bottom = height &#8211; 50<br />
            End With</p>
<p>            prtFormInfo1 = Marshal.AllocHGlobal(Marshal.SizeOf(GetType(FORM_INFO_1)))</p>
<p>            Marshal.StructureToPtr(FormInfo1, prtFormInfo1, True)</p>
<p>            &#8216; 用紙情報を追加<br />
            ret = AddForm(hPrinter, FormInfo1Level, prtFormInfo1)</p>
<p>            Dim Struct1 As FORM_INFO_1<br />
            Struct1 = CType(Marshal.PtrToStructure(prtFormInfo1, GetType(FORM_INFO_1)), FORM_INFO_1)</p>
<p>            &#8216;=========================================</p>
<p>            &#8216;必要なバイト数を取得する<br />
            Dim needed As Integer<br />
            GetPrinter(hPrinter, 2, IntPtr.Zero, 0, needed)<br />
            If needed &lt;= 0 Then<br />
                Throw New Exception(&#8221;失敗しました。&#8221;)<br />
            End If</p>
<p>            Debug.Print(&#8221;needed=&#8221; &amp; needed)</p>
<p>            &#8216;メモリを割り当てる<br />
            pPrinterInfo = Marshal.AllocHGlobal(needed)</p>
<p>            &#8216;            Dim globalDevIn As IntPtr = GlobalLock(PtrDMIn)</p>
<p>            &#8216;プリンタ情報を取得する<br />
            Dim temp As Integer<br />
            If Not GetPrinter(hPrinter, 2, pPrinterInfo, needed, temp) Then<br />
                Throw New Win32Exception(Marshal.GetLastWin32Error())<br />
            End If</p>
<p>            Debug.Print(&#8221;temp=&#8221; &amp; temp)</p>
<p>            &#8216;PRINTER_INFO_2型にマーシャリングする<br />
            pi2 = CType(Marshal.PtrToStructure( _<br />
                pPrinterInfo, GetType(PRINTER_INFO_2)), PRINTER_INFO_2)<br />
            &#8216; 構造体とポインターの変換 pi2.pDevMode<br />
            pDevMode = CType(Marshal.PtrToStructure(pi2.pDevMode, _<br />
                GetType(DEVMODE)), DEVMODE)<br />
            Debug.Print(&#8221;変更前＝&#8221; &amp; pDevMode.dmFormName)<br />
            Debug.Print(&#8221;変更前dmPaperWidth＝&#8221; &amp; pDevMode.dmPaperWidth)<br />
            Debug.Print(&#8221;変更前dmPaperLength＝&#8221; &amp; pDevMode.dmPaperLength)<br />
            pDevMode.dmFormName = paper &amp; Chr(0)   &#8216; Must be NULL terminated!</p>
<p>            &#8216; Set the dmFields bit flag to indicate what you are changing.<br />
            pDevMode.dmFields = DM_FORMNAME</p>
<p>            Debug.Print(&#8221;変更後＝&#8221; &amp; pDevMode.dmFormName)<br />
            Debug.Print(&#8221;変更後dmPaperWidth＝&#8221; &amp; pDevMode.dmPaperWidth)<br />
            Debug.Print(&#8221;変更後dmPaperLength＝&#8221; &amp; pDevMode.dmPaperLength)</p>
<p>            Marshal.StructureToPtr(pDevMode, pi2.pDevMode, False)</p>
<p>            ret = DocumentProperties(hwnd, hPrinter, _PrinterName, pi2.pDevMode, _<br />
                pi2.pDevMode, DM_IN_BUFFER Or DM_OUT_BUFFER)</p>
<p>            Marshal.StructureToPtr(pi2, pPrinterInfo, False)</p>
<p>            &#8216;/* プリンタ情報のアップデート */<br />
            Dim b As Boolean = SetPrinter(hPrinter, 2, pPrinterInfo, 0)<br />
            If b = True Then<br />
                MsgBox(&#8221;プリンタードライバーの設定。&#8221;)<br />
            Else<br />
                Debug.Print(&#8221;err=&#8221; &amp; Marshal.GetLastWin32Error())</p>
<p>                &#8216;     Dim LangOptions As Long<br />
                &#8216;     LangOptions = &amp;H0<br />
                &#8216;     Dim buffer As String<br />
                &#8216;     buffer = Space(256)<br />
                &#8216;     lngReturn = FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, 0&amp;, Err.LastDllError, LangOptions, buffer, Len(buffer), 0&amp;)<br />
                &#8216;     MsgBox(&#8221;Could not set printer: &#8221; &amp; buffer)</p>
<p>                MsgBox(Marshal.GetLastWin32Error())<br />
                &#8216;             Throw New Win32Exception(Marshal.GetLastWin32Error())<br />
            End If</p>
<p> </p>
<p>            If ret &lt;= 0 Then<br />
                Throw New Win32Exception(Marshal.GetLastWin32Error())<br />
            End If</p>
<p>        Catch ex As Exception<br />
            MessageBox.Show(ex.Message, &#8220;エラー&#8221;)</p>
<p>        Finally</p>
<p>            &#8216;後始末をする<br />
            Marshal.FreeHGlobal(pPrinterInfo)</p>
<p>            If Not hPrinter.Equals(IntPtr.Zero) Then<br />
                ClosePrinter(hPrinter)<br />
            End If<br />
            &#8216;        Marshal.FreeHGlobal(prtFormInfo1)</p>
<p>        End Try<br />
    End Sub<br />
    &#8216;================================================================<br />
    &#8216;ユーザー定義サイズ用紙削除<br />
    &#8216;<br />
    &#8216;　パラメータ<br />
    &#8216;　printerName  ：設定したいプリンター名（コントロールパネルで設定済みのもの）<br />
    &#8216;　paper        ：用紙名称　好きな名前を付ける、削除する際に必要<br />
    &#8216;<br />
    &#8216;　戻り値　なし<br />
    &#8216;<br />
    &#8216;<br />
    &#8216;================================================================<br />
    Public Sub DeletePaperForm(ByVal printerName As String, ByVal paper As String)<br />
        Dim ret As Integer<br />
        Dim hPrinter As IntPtr<br />
        Dim pd As New PRINTER_DEFAULTS</p>
<p>        pd.DesiredAccess = PRINTER_ALL_ACCESS</p>
<p>        Try<br />
            &#8216; プリンタのハンドルを取得<br />
            ret = OpenPrinter(printerName, hPrinter, pd)<br />
            If ret = 0 Or hPrinter.Equals(IntPtr.Zero) Then<br />
                Return<br />
            End If</p>
<p>            &#8216;　用紙の削除<br />
            ret = DeleteForm(hPrinter, paper)</p>
<p>            If ret &lt;= 0 Then<br />
                Throw New Win32Exception(Marshal.GetLastWin32Error())<br />
            End If<br />
            MsgBox(&#8221;delete sucess&#8221;)<br />
        Catch ex As Exception<br />
            MessageBox.Show(ex.Message, &#8220;エラー&#8221;)<br />
        Finally<br />
            If Not hPrinter.Equals(IntPtr.Zero) Then<br />
                ClosePrinter(hPrinter)<br />
            End If<br />
        End Try<br />
    End Sub</p>
<p>End Class</p>
]]></content:encoded>
			<wfw:commentRss>http://tecblog.oarts.jp/?feed=rss2&amp;p=10</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
