質問するログイン新規登録

回答編集履歴

2

解決方法の入力

2018/11/07 05:07

投稿

aqaxliy
aqaxliy

スコア13

answer CHANGED
@@ -1,1 +1,8 @@
1
- 動くコードに変更しました
1
+ 一行目を下記のように変更すると正く取得できるようになりました
2
+ ```vb
3
+ <StructLayout(LayoutKind.Sequential)> _
4
+ ```
5
+
6
+ ```vb
7
+ <StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Auto)> _
8
+ ```

1

質問の変更

2018/11/07 05:07

投稿

aqaxliy
aqaxliy

スコア13

answer CHANGED
@@ -1,59 +1,1 @@
1
- とりあえず次のコードで取得できました
1
+ 動くコードに変更しました
2
-
3
- ```vb
4
- <StructLayout(LayoutKind.Sequential)> _
5
- Public Structure DEVMODE
6
- Public Const CCHDEVICENAME As Integer = 32
7
- Public Const CCHFORMNAME As Integer = 32
8
-
9
- <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=CCHDEVICENAME)> _
10
- Public dmDeviceName As String
11
- Public dmSpecVersion As Short
12
- Public dmDriverVersion As Short
13
- Public dmSize As Short
14
- Public dmDriverExtra As Short
15
- Public dmFields As Integer
16
-
17
- Public dmOrientation As Short
18
- Public dmPaperSize As Short
19
- Public dmPaperLength As Short
20
- Public dmPaperWidth As Short
21
-
22
- Public dmScale As Short
23
- Public dmCopies As Short
24
- Public dmDefaultSource As Short
25
- Public dmPrintQuality As Short
26
- Public dmColor As Short
27
- Public dmDuplex As Short
28
- Public dmYResolution As Short
29
- Public dmTTOption As Short
30
- Public dmCollate As Short
31
- <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=CCHFORMNAME)> _
32
- Public dmFormName As String
33
- Public dmLogPixels As Short
34
- Public dmBitsPerPel As Integer
35
- Public dmPelsWidth As Integer
36
- Public dmPelsHeight As Integer
37
- Public dmDisplayFlags As Integer
38
- Public dmDisplayFrequency As Integer
39
-
40
- Public dmICMMethod As Integer
41
- Public dmICMIntent As Integer
42
- Public dmMediaType As Integer
43
- Public dmDitherType As Integer
44
- Public dmReserved1 As Integer
45
- Public dmReserved2 As Integer
46
- Public dmPanningWidth As Integer
47
- Public dmPanningHeight As Integer
48
-
49
- Public dmPositionX As Integer
50
- Public dmPositionY As Integer
51
- End Structure
52
-
53
- Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
54
- PrintDocument1.PrinterSettings.PrinterName = "Microsoft Print to PDF"
55
- Dim devmodePtr As IntPtr = PrintDocument1.PrinterSettings.GetHdevmode()
56
- Dim dm As DEVMODE = CType(Marshal.PtrToStructure(devmodePtr, GetType(DEVMODE)), DEVMODE)
57
- GlobalFree(devmodePtr)
58
- End Sub
59
- ```