From af40d111039fd19b0bd980ce0ead5af78b4b6fdc Mon Sep 17 00:00:00 2001 From: soukoku Date: Tue, 15 Apr 2014 18:45:41 -0400 Subject: [PATCH] Fixed #5 for TWFix32 conversion exception in extension method. --- NTwain/TwainSessionExtensions.cs | 3 ++- NTwain/Values/ValueConverter.cs | 17 ++++++++++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/NTwain/TwainSessionExtensions.cs b/NTwain/TwainSessionExtensions.cs index b81e525..00044f3 100644 --- a/NTwain/TwainSessionExtensions.cs +++ b/NTwain/TwainSessionExtensions.cs @@ -372,7 +372,8 @@ namespace NTwain /// public static IList CapGetDPIs(this TwainSession session) { - return session.GetCapabilityValues(CapabilityId.ICapXResolution).Cast().ToList(); + var list = session.GetCapabilityValues(CapabilityId.ICapXResolution); + return list.Select(o => o.ConvertToFix32()).ToList(); } /// diff --git a/NTwain/Values/ValueConverter.cs b/NTwain/Values/ValueConverter.cs index 3b08d17..a2921a9 100644 --- a/NTwain/Values/ValueConverter.cs +++ b/NTwain/Values/ValueConverter.cs @@ -1,4 +1,5 @@ -using System; +using NTwain.Data; +using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -67,5 +68,19 @@ namespace NTwain.Values { return (ushort)(value >> 16); } + + /// + /// Tries to convert to a value to if possible. + /// + /// The value. + /// + public static TWFix32 ConvertToFix32(this object value) + { + if (value is TWFix32) + { + return (TWFix32)value; + } + return (TWFix32)Convert.ToSingle(value); + } } }