mirror of
https://github.com/soukoku/ntwain.git
synced 2025-10-24 10:11:20 +08:00
Added workaround for sources that don't support querysupport call.
This commit is contained in:
@@ -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>
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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>
|
||||
@@ -70,6 +70,10 @@ namespace Tester.Winform
|
||||
{
|
||||
Debug.WriteLine("State changed to " + _twain.State + " on thread " + Thread.CurrentThread.ManagedThreadId);
|
||||
};
|
||||
_twain.TransferError += (s, e) =>
|
||||
{
|
||||
Debug.WriteLine("Got xfer error on thread " + Thread.CurrentThread.ManagedThreadId);
|
||||
};
|
||||
_twain.DataTransferred += (s, e) =>
|
||||
{
|
||||
Debug.WriteLine("Transferred data event on thread " + Thread.CurrentThread.ManagedThreadId);
|
||||
@@ -223,7 +227,7 @@ namespace Tester.Winform
|
||||
|
||||
_stopScan = false;
|
||||
|
||||
if (_twain.CurrentSource.SupportedCaps.Contains(CapabilityId.CapUIControllable))
|
||||
if (_twain.CurrentSource.CapUIControllable.IsSupported)//.SupportedCaps.Contains(CapabilityId.CapUIControllable))
|
||||
{
|
||||
// hide scanner ui if possible
|
||||
if (_twain.CurrentSource.Enable(SourceEnableMode.NoUI, false, this.Handle) == ReturnCode.Success)
|
||||
@@ -292,8 +296,10 @@ namespace Tester.Winform
|
||||
private void LoadSourceCaps()
|
||||
{
|
||||
var src = _twain.CurrentSource;
|
||||
var caps = src.SupportedCaps;
|
||||
_loadingCaps = true;
|
||||
|
||||
var test = src.SupportedCaps;
|
||||
|
||||
if (groupDepth.Enabled = src.ICapPixelType.IsSupported)
|
||||
{
|
||||
LoadDepth(src.ICapPixelType);
|
||||
@@ -311,7 +317,7 @@ namespace Tester.Winform
|
||||
{
|
||||
LoadPaperSize(src.ICapSupportedSizes);
|
||||
}
|
||||
btnAllSettings.Enabled = caps.Contains(CapabilityId.CapEnableDSUIOnly);
|
||||
btnAllSettings.Enabled = src.CapEnableDSUIOnly.IsSupported;
|
||||
_loadingCaps = false;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user