diff --git a/samples/WinForm32/Form1.cs b/samples/WinForm32/Form1.cs index 125a186..1243f30 100644 --- a/samples/WinForm32/Form1.cs +++ b/samples/WinForm32/Form1.cs @@ -1,6 +1,7 @@ using NTwain; using NTwain.Data; using System; +using System.Collections.Generic; using System.ComponentModel; using System.Diagnostics; using System.Reflection; @@ -42,7 +43,15 @@ namespace WinFormSample foreach (var c in caps) listCaps.Items.Add(c); - var sts = twain.GetCapLabel(CAP.ICAP_XRESOLUTION, out string? test); + // never seen a driver support these but here it is + var sts = twain.GetCapLabel(CAP.ICAP_SUPPORTEDSIZES, out string? test); + var sts2 = twain.GetCapHelp(CAP.ICAP_SUPPORTEDSIZES, out string? test2); + var sts3 = twain.GetCapLabelEnum(CAP.ICAP_SUPPORTEDSIZES, out IList? test3); + + if (sts.RC == TWRC.SUCCESS || sts2.RC == TWRC.SUCCESS || sts3.RC == TWRC.SUCCESS) + { + Debugger.Break(); + } } else { diff --git a/src/NTwain/Data/TWAINH_EXTRAS.cs b/src/NTwain/Data/TWAINH_EXTRAS.cs index 87f1f0a..a9583a3 100644 --- a/src/NTwain/Data/TWAINH_EXTRAS.cs +++ b/src/NTwain/Data/TWAINH_EXTRAS.cs @@ -232,6 +232,11 @@ namespace NTwain.Data //{ // return new STS { RC = rc }; //} + + public override string ToString() + { + return $"{RC} - {STATUS.ConditionCode}"; + } } partial struct TW_STATUS diff --git a/src/NTwain/Data/ValueReader.cs b/src/NTwain/Data/ValueReader.cs index 06dd741..ecfca3e 100644 --- a/src/NTwain/Data/ValueReader.cs +++ b/src/NTwain/Data/ValueReader.cs @@ -424,8 +424,6 @@ namespace NTwain.Data intptr += 2 * itemIndex; if (isEnum) { - var shor = MarshalTo(intptr); - if (shor == 0x1125) Debugger.Break(); return NumericToEnum(MarshalTo(intptr)); } return MarshalTo(intptr); diff --git a/src/NTwain/TwainAppSession.Caps.cs b/src/NTwain/TwainAppSession.Caps.cs index 16b5008..f04517b 100644 --- a/src/NTwain/TwainAppSession.Caps.cs +++ b/src/NTwain/TwainAppSession.Caps.cs @@ -129,7 +129,7 @@ namespace NTwain /// /// /// - public STS GetCapLabelEnum(CAP cap, out string[]? labels) + public STS GetCapLabelEnum(CAP cap, out IList? labels) { labels = null; var value = new TW_CAPABILITY(cap); @@ -137,7 +137,7 @@ namespace NTwain if (rc == TWRC.SUCCESS) { // spec says they're utf8 - labels = value.ReadArray(this, false).Select(t => t.Get(Encoding.UTF8)).ToArray(); + labels = value.ReadArray(this, false).Select(t => t.Get(Encoding.UTF8)).ToList(); } value.Free(this); return WrapInSTS(rc);