List 7-56 PrintDlg関数を使って[プリンタの設定]ダイアログボックスを表示する
1: Dim lpDevMode As Long, lpDevNames As Long
2: Dim hDevMode As Long, hDevNames As Long
3: Dim vPrintDlg As PRINTDLG
4:
5: ' vDevModeの内容をグローバルメモリに保存
6: hDevMode = GlobalAlloc(GHND, Len(vDevMode))
7: lpDevMode = GlobalLock(hDevMode)
8: CopyMemory ByVal lpDevMode, vDevMode, Len(vDevMode)
9: GlobalUnlock hDevMode
10:
11: ' vDevNamesの内容をグローバルメモリに保存
12: hDevNames = GlobalAlloc(GHND, Len(vDevNames))
13: lpDevNames = GlobalLock(hDevNames)
14: CopyMemory ByVal lpDevNames, vDevNames, Len(vDevNames)
15: GlobalUnlock hDevNames
16:
17: vPrintDlg.lStructSize = Len(vPrintDlg)
18: vPrintDlg.hwndOwner = Me.Hwnd
19: vPrintDlg.hDevMode = hDevMode
20: vPrintDlg.hDevNames = hDevNames
21: vPrintDlg.Flags = PD_PRINTSETUP
22:
23: ' [プリンタの設定]ダイアログボックスの表示
24: If PrintDlg(vPrintDlg) <> 0 Then
25: ' [OK]ボタンが押された
26: ' ここで,ユーザーが選択したプリンタの情報が
27: ' vPrintDlg変数のhDevModeメンバとhDevNamesメンバに
28: ' 格納されているから,そのとおりにプリンタを設定すればよい
29: End If