Added workaround for sources that don't support querysupport call.

This commit is contained in:
soukoku
2015-02-13 21:34:12 -05:00
parent 0f4e258970
commit bace6e6323
17 changed files with 418 additions and 144 deletions

View File

@@ -70,7 +70,7 @@
</Reference>
<Reference Include="ModernWPF, Version=1.0.0.0, Culture=neutral, PublicKeyToken=c99d0cfbea7491ef, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\packages\ModernWPF.1.2.9.1\lib\net40-Client\ModernWPF.dll</HintPath>
<HintPath>..\..\packages\ModernWPF.1.2.9.4\lib\net40-Client\ModernWPF.dll</HintPath>
</Reference>
<Reference Include="ModernWPF.Mvvm">
<HintPath>..\..\packages\ModernWPF.Mvvm.0.7.0\lib\net40-Client\ModernWPF.Mvvm.dll</HintPath>

View File

@@ -21,7 +21,7 @@ namespace Tester.WPF
{
_ds = ds;
Cap = cap;
Supports = ds.CapQuerySupport(cap);
var capName = cap.ToString();
var wrapProperty = ds.GetType().GetProperty(capName);
@@ -33,6 +33,22 @@ namespace Tester.WPF
_getCurrentMethod = wrapperType.GetMethod("GetCurrent");
_setMethod = wrapperType.GetMethods().FirstOrDefault(m => m.Name == "Set");
}
var supportTest = ds.CapQuerySupport(cap);
if (supportTest.HasValue)
{
Supports = supportTest.Value;
}
else
{
if (_wrapper != null)
{
var wrapperType = _wrapper.GetType();
QuerySupports? supports = (QuerySupports?)wrapperType.GetProperty("SupportedActions").GetGetMethod().Invoke(_wrapper, null);
Supports = supports.GetValueOrDefault();
}
}
}
public IEnumerable Get()

View File

@@ -49,7 +49,7 @@ namespace Tester.WPF
//rc = DGControl.Status.Get(dsId, ref stat);
if (rc == ReturnCode.Success)
{
foreach (var c in DS.SupportedCaps.Select(o => new CapVM(DS, o)))
foreach (var c in DS.CapSupportedCaps.Get().Select(o => new CapVM(DS, o)))
{
Caps.Add(c);
}

View File

@@ -35,6 +35,7 @@ namespace Tester.WPF
_session.TransferReady += _session_TransferReady;
_session.DataTransferred += _session_DataTransferred;
_session.SourceDisabled += _session_SourceDisabled;
_session.StateChanged += (s, e) => { RaisePropertyChanged(() => State); };
}
TwainSession _session;

View File

@@ -4,7 +4,7 @@
<package id="CommonWin32" version="2.0.5.5" targetFramework="net40-Client" />
<package id="Microsoft.WindowsAPICodePack-Core" version="1.1.0.0" targetFramework="net40-Client" />
<package id="Microsoft.WindowsAPICodePack-Shell" version="1.1.0.0" targetFramework="net40-Client" />
<package id="ModernWPF" version="1.2.9.1" targetFramework="net40-Client" />
<package id="ModernWPF" version="1.2.9.4" targetFramework="net40-Client" />
<package id="ModernWPF.Mvvm" version="0.7.0" targetFramework="net40-Client" />
<package id="MvvmLightLibs" version="5.0.2.0" targetFramework="net40-Client" />
</packages>