VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

投稿日: 2006/12/07(Thu) 14:08
投稿者太郎
Eメール
URL
タイトルRe^2: DEVMODE構造体で、プリンタ固有の情報の取得及び設定

K.J.K.さん。
おっしゃるとおり、下記のように、SetPrinterで、bytPrinterInfo2Bufferを復元するだけで
解決しました。
とても助かりました。

それから、宣言部も今後省略しないようにします。
どうもありがとうございました。



修正版
//////////////////////////////////////////////////////////////////////
'宣言
    Dim strPrinterDeviceName    As String
    Dim udtPrinterDefaults      As PRINTER_DEFAULTS
    Dim lngPrinterHandle        As Long
    Dim lngPrinterInfo2Level    As Long
    Dim lngPrinterInfo2Needed   As Long
    Dim bytPrinterInfo2Buffer() As Byte
    Dim udtPrinterInfo2         As PRINTER_INFO_2
    Dim lngResult               As Long


/////////////////////////////////////////////////////////////////////////////
Sub 印刷設定の取得()

    ' プリンタ名指定する
    strPrinterDeviceName = Combo1.Text

    ' プリンタのオブジェクトハンドルを取得する
    lngResult =  OpenPrinter( strPrinterDeviceName, lngPrinterHandle, _
            udtPrinterDefaults)
    ' 構造体のレベルを指定する
    lngPrinterInfo2Level = 2

    ' バッファに必要なサイズを取得する
    lngResult = _
        GetPrinter( _
            lngPrinterHandle, _
            lngPrinterInfo2Level, _
            ByVal vbNullString, _
            0, _
            lngPrinterInfo2Needed)
    ' バッファを確保する
    ReDim  bytPrinterInfo2Buffer  (lngPrinterInfo2Needed - 1)

    ' 詳細なプリンタ情報を取得する
    lngResult = _
        GetPrinter( _
            lngPrinterHandle, _
            lngPrinterInfo2Level, _
            bytPrinterInfo2Buffer(0), _
            lngPrinterInfo2Needed, _
            lngPrinterInfo2Needed)
    ' 取得した詳細なプリンタ情報を構造体へ移動する
    MoveMemory _
        udtPrinterInfo2, _
        bytPrinterInfo2Buffer(0), _
        Len(udtPrinterInfo2)

  
End Sub
/////////////////////////////////////////////////////////////////////////////
Sub 印刷設定の変更()


            '詳細なプリンタ情報を書き戻し
            lngResult = _
                SetPrinter( _
                    lngPrinterHandle, _
                    lngPrinterInfo2Level, _
                    udtPrinterInfo2, _
                    0)


End Sub


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -