From 8fe54398b9f903900bd07dec794500f09b22edbc Mon Sep 17 00:00:00 2001 From: Eugene Wang <8755753+soukoku@users.noreply.github.com> Date: Sun, 25 Apr 2021 13:44:14 -0400 Subject: [PATCH] Moved to src folder and put Windows things in own proj. --- NTwain.sln | 12 +- NTwain/ThreadMarshaller.cs | 104 --- samples/Net5Console/Net5Console.csproj | 4 +- .../Directory.Build.props | 47 +- src/NTwain.Win/DispatcherMarshaller.cs | 31 + src/NTwain.Win/NTwain.Win.csproj | 16 + src/NTwain.Win/WinformMarshaller.cs | 31 + {NTwain => src/NTwain}/CapWrapper.cs | 0 {NTwain => src/NTwain}/Capabilities.cs | 0 src/NTwain/NTwain.csproj | 34 + .../NTwain}/TWAINWorkingGroup/CSV.cs | 0 .../NTwain}/TWAINWorkingGroup/Consts.cs | 0 .../TWAINWorkingGroup/CsvSerializer.cs | 0 .../NTwain}/TWAINWorkingGroup/Language.cs | 0 .../NTwain}/TWAINWorkingGroup/Log.cs | 0 .../TWAINWorkingGroup/NativeMethods.cs | 0 .../TWAINWorkingGroup/PlatformTools.cs | 0 .../NTwain}/TWAINWorkingGroup/README.md | 0 .../NTwain}/TWAINWorkingGroup/TWAIN.cs | 786 +++++++++--------- .../NTwain}/TWAINWorkingGroup/TWAINH.cs | 0 .../TWAINWorkingGroup/TWAINH_EXTRAS.cs | 0 src/NTwain/ThreadMarshaller.cs | 49 ++ {NTwain => src/NTwain}/TwainSession.cs | 0 {NTwain => src/NTwain}/ValueReader.cs | 0 twain-doc/TWAIN_Errata_for_Version_2.4.pdf | Bin 0 -> 152880 bytes 25 files changed, 569 insertions(+), 545 deletions(-) delete mode 100644 NTwain/ThreadMarshaller.cs rename NTwain/NTwain.csproj => src/Directory.Build.props (52%) create mode 100644 src/NTwain.Win/DispatcherMarshaller.cs create mode 100644 src/NTwain.Win/NTwain.Win.csproj create mode 100644 src/NTwain.Win/WinformMarshaller.cs rename {NTwain => src/NTwain}/CapWrapper.cs (100%) rename {NTwain => src/NTwain}/Capabilities.cs (100%) create mode 100644 src/NTwain/NTwain.csproj rename {NTwain => src/NTwain}/TWAINWorkingGroup/CSV.cs (100%) rename {NTwain => src/NTwain}/TWAINWorkingGroup/Consts.cs (100%) rename {NTwain => src/NTwain}/TWAINWorkingGroup/CsvSerializer.cs (100%) rename {NTwain => src/NTwain}/TWAINWorkingGroup/Language.cs (100%) rename {NTwain => src/NTwain}/TWAINWorkingGroup/Log.cs (100%) rename {NTwain => src/NTwain}/TWAINWorkingGroup/NativeMethods.cs (100%) rename {NTwain => src/NTwain}/TWAINWorkingGroup/PlatformTools.cs (100%) rename {NTwain => src/NTwain}/TWAINWorkingGroup/README.md (100%) rename {NTwain => src/NTwain}/TWAINWorkingGroup/TWAIN.cs (96%) rename {NTwain => src/NTwain}/TWAINWorkingGroup/TWAINH.cs (100%) rename {NTwain => src/NTwain}/TWAINWorkingGroup/TWAINH_EXTRAS.cs (100%) create mode 100644 src/NTwain/ThreadMarshaller.cs rename {NTwain => src/NTwain}/TwainSession.cs (100%) rename {NTwain => src/NTwain}/ValueReader.cs (100%) create mode 100644 twain-doc/TWAIN_Errata_for_Version_2.4.pdf diff --git a/NTwain.sln b/NTwain.sln index 4666bd1..ddb7661 100644 --- a/NTwain.sln +++ b/NTwain.sln @@ -5,19 +5,21 @@ VisualStudioVersion = 16.0.31205.134 MinimumVisualStudioVersion = 10.0.40219.1 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "common", "common", "{4CE0B9ED-2CD1-440F-B4EC-35ECA6D61EFE}" ProjectSection(SolutionItems) = preProject + src\Directory.Build.props = src\Directory.Build.props LICENSE.txt = LICENSE.txt - size-test\main.cpp = size-test\main.cpp README.md = README.md twain-doc\TWAIN-2.4-Specification.pdf = twain-doc\TWAIN-2.4-Specification.pdf twain-doc\twain2.4.h = twain-doc\twain2.4.h EndProjectSection EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NTwain", "NTwain\NTwain.csproj", "{B391C1B7-5647-4B7A-9079-81E835E633DD}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NTwain", "src\NTwain\NTwain.csproj", "{B391C1B7-5647-4B7A-9079-81E835E633DD}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Net5Console", "samples\Net5Console\Net5Console.csproj", "{9F6C1B39-D0C9-4466-96A0-AB41C58762A9}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Net5Console", "samples\Net5Console\Net5Console.csproj", "{9F6C1B39-D0C9-4466-96A0-AB41C58762A9}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Samples", "Samples", "{707B4313-8EF8-4D0F-A95E-590783422187}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NTwain.Win", "src\NTwain.Win\NTwain.Win.csproj", "{F836149E-E64D-476E-A325-478D18BE1CC7}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -32,6 +34,10 @@ Global {9F6C1B39-D0C9-4466-96A0-AB41C58762A9}.Debug|Any CPU.Build.0 = Debug|Any CPU {9F6C1B39-D0C9-4466-96A0-AB41C58762A9}.Release|Any CPU.ActiveCfg = Release|Any CPU {9F6C1B39-D0C9-4466-96A0-AB41C58762A9}.Release|Any CPU.Build.0 = Release|Any CPU + {F836149E-E64D-476E-A325-478D18BE1CC7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F836149E-E64D-476E-A325-478D18BE1CC7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F836149E-E64D-476E-A325-478D18BE1CC7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F836149E-E64D-476E-A325-478D18BE1CC7}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/NTwain/ThreadMarshaller.cs b/NTwain/ThreadMarshaller.cs deleted file mode 100644 index 5fd7197..0000000 --- a/NTwain/ThreadMarshaller.cs +++ /dev/null @@ -1,104 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Linq; -using System.Text; -using System.Threading; -using System.Threading.Tasks; - -namespace NTwain -{ - /// - /// Allows work to be marshalled to a different (usually UI) thread if necessary. - /// - public interface IThreadMarshaller - { - /// - /// Starts work asynchronously and returns immediately. - /// - /// - void BeginInvoke(Delegate work, params object[] args); - - /// - /// Starts work synchronously until it returns. - /// - /// - /// - /// - object Invoke(Delegate work, params object[] args); - } - - /// - /// Doesn't actually use any particular thread. - /// Should only be used in non-UI apps. - /// - public class NoParticularMarshaller : IThreadMarshaller - { - public bool InvokeRequired => throw new NotImplementedException(); - - public void BeginInvoke(Delegate work, params object[] args) - { - Task.Run(() => work.DynamicInvoke(args)); - } - - public object Invoke(Delegate work, params object[] args) - { - return work.DynamicInvoke(args); - } - } - - - /// - /// Uses a winform UI thread to do the work. - /// - public class WinformMarshaller : IThreadMarshaller - { - private readonly System.Windows.Forms.Control _uiControl; - - /// - /// Uses a control whose UI thread is used to run the work. - /// - /// - public WinformMarshaller(System.Windows.Forms.Control uiControl) - { - _uiControl = uiControl ?? throw new ArgumentNullException(nameof(uiControl)); - } - - public void BeginInvoke(Delegate work, params object[] args) - { - _uiControl.BeginInvoke(work, args); - } - - public object Invoke(Delegate work, params object[] args) - { - return _uiControl.Invoke(work, args); - } - } - - /// - /// Uses a WPF dispatcher to do the work. - /// - public class DispatcherMarshaller : IThreadMarshaller - { - private readonly System.Windows.Threading.Dispatcher _dispatcher; - - /// - /// Uses a dispatcher whose UI thread is used to run the work. - /// - /// - public DispatcherMarshaller(System.Windows.Threading.Dispatcher dispatcher) - { - _dispatcher = dispatcher ?? throw new ArgumentNullException(nameof(dispatcher)); - } - - public void BeginInvoke(Delegate work, params object[] args) - { - _dispatcher.BeginInvoke(work, args); - } - - public object Invoke(Delegate work, params object[] args) - { - return _dispatcher.Invoke(work, args); - } - } -} diff --git a/samples/Net5Console/Net5Console.csproj b/samples/Net5Console/Net5Console.csproj index 62a4f97..c2ff29c 100644 --- a/samples/Net5Console/Net5Console.csproj +++ b/samples/Net5Console/Net5Console.csproj @@ -2,12 +2,12 @@ Exe - net5.0-windows + net5.0 x86 - + diff --git a/NTwain/NTwain.csproj b/src/Directory.Build.props similarity index 52% rename from NTwain/NTwain.csproj rename to src/Directory.Build.props index 76c6d30..2d27c60 100644 --- a/NTwain/NTwain.csproj +++ b/src/Directory.Build.props @@ -1,10 +1,11 @@ - - + - NTwain - 4.0.0 - Library containing the TWAIN API for dotnet. - net45;netcoreapp3.1;net5.0-windows + + 4.0.0 + + + 4.0.0.0 + https://github.com/soukoku/ntwain twain scan MIT @@ -14,11 +15,12 @@ en-US Eugene Wang - 4.0.0.0 - 4.0.0.0 + + $(PkgVersion) + $(PkgVersion) 7.1 - true - true + + 1591 @@ -31,28 +33,5 @@ - - - - - - - 5.0.0 - - - - - - 5.0.0 - - - - + \ No newline at end of file diff --git a/src/NTwain.Win/DispatcherMarshaller.cs b/src/NTwain.Win/DispatcherMarshaller.cs new file mode 100644 index 0000000..87297fd --- /dev/null +++ b/src/NTwain.Win/DispatcherMarshaller.cs @@ -0,0 +1,31 @@ +using System; + +namespace NTwain +{ + /// + /// Uses a WPF dispatcher to do the work. + /// + public class DispatcherMarshaller : IThreadMarshaller + { + private readonly System.Windows.Threading.Dispatcher _dispatcher; + + /// + /// Uses a dispatcher whose UI thread is used to run the work. + /// + /// + public DispatcherMarshaller(System.Windows.Threading.Dispatcher dispatcher) + { + _dispatcher = dispatcher ?? throw new ArgumentNullException(nameof(dispatcher)); + } + + public void BeginInvoke(Delegate work, params object[] args) + { + _dispatcher.BeginInvoke(work, args); + } + + public object Invoke(Delegate work, params object[] args) + { + return _dispatcher.Invoke(work, args); + } + } +} diff --git a/src/NTwain.Win/NTwain.Win.csproj b/src/NTwain.Win/NTwain.Win.csproj new file mode 100644 index 0000000..5aa6aa9 --- /dev/null +++ b/src/NTwain.Win/NTwain.Win.csproj @@ -0,0 +1,16 @@ + + + + NTwain.Win + Contains Windows specific things for NTwain. + net45;netcoreapp3.1;net5.0-windows + true + true + NTwain + + + + + + + diff --git a/src/NTwain.Win/WinformMarshaller.cs b/src/NTwain.Win/WinformMarshaller.cs new file mode 100644 index 0000000..b1f7e25 --- /dev/null +++ b/src/NTwain.Win/WinformMarshaller.cs @@ -0,0 +1,31 @@ +using System; + +namespace NTwain +{ + /// + /// Uses a winform UI thread to do the work. + /// + public class WinformMarshaller : IThreadMarshaller + { + private readonly System.Windows.Forms.Control _uiControl; + + /// + /// Uses a control whose UI thread is used to run the work. + /// + /// + public WinformMarshaller(System.Windows.Forms.Control uiControl) + { + _uiControl = uiControl ?? throw new ArgumentNullException(nameof(uiControl)); + } + + public void BeginInvoke(Delegate work, params object[] args) + { + _uiControl.BeginInvoke(work, args); + } + + public object Invoke(Delegate work, params object[] args) + { + return _uiControl.Invoke(work, args); + } + } +} diff --git a/NTwain/CapWrapper.cs b/src/NTwain/CapWrapper.cs similarity index 100% rename from NTwain/CapWrapper.cs rename to src/NTwain/CapWrapper.cs diff --git a/NTwain/Capabilities.cs b/src/NTwain/Capabilities.cs similarity index 100% rename from NTwain/Capabilities.cs rename to src/NTwain/Capabilities.cs diff --git a/src/NTwain/NTwain.csproj b/src/NTwain/NTwain.csproj new file mode 100644 index 0000000..7f539f8 --- /dev/null +++ b/src/NTwain/NTwain.csproj @@ -0,0 +1,34 @@ + + + + NTwain + Library containing the TWAIN API for dotnet. + net45;netcoreapp3.1;net5.0 + + + + + + + + + + + 5.0.0 + + + + + + 5.0.0 + + + + diff --git a/NTwain/TWAINWorkingGroup/CSV.cs b/src/NTwain/TWAINWorkingGroup/CSV.cs similarity index 100% rename from NTwain/TWAINWorkingGroup/CSV.cs rename to src/NTwain/TWAINWorkingGroup/CSV.cs diff --git a/NTwain/TWAINWorkingGroup/Consts.cs b/src/NTwain/TWAINWorkingGroup/Consts.cs similarity index 100% rename from NTwain/TWAINWorkingGroup/Consts.cs rename to src/NTwain/TWAINWorkingGroup/Consts.cs diff --git a/NTwain/TWAINWorkingGroup/CsvSerializer.cs b/src/NTwain/TWAINWorkingGroup/CsvSerializer.cs similarity index 100% rename from NTwain/TWAINWorkingGroup/CsvSerializer.cs rename to src/NTwain/TWAINWorkingGroup/CsvSerializer.cs diff --git a/NTwain/TWAINWorkingGroup/Language.cs b/src/NTwain/TWAINWorkingGroup/Language.cs similarity index 100% rename from NTwain/TWAINWorkingGroup/Language.cs rename to src/NTwain/TWAINWorkingGroup/Language.cs diff --git a/NTwain/TWAINWorkingGroup/Log.cs b/src/NTwain/TWAINWorkingGroup/Log.cs similarity index 100% rename from NTwain/TWAINWorkingGroup/Log.cs rename to src/NTwain/TWAINWorkingGroup/Log.cs diff --git a/NTwain/TWAINWorkingGroup/NativeMethods.cs b/src/NTwain/TWAINWorkingGroup/NativeMethods.cs similarity index 100% rename from NTwain/TWAINWorkingGroup/NativeMethods.cs rename to src/NTwain/TWAINWorkingGroup/NativeMethods.cs diff --git a/NTwain/TWAINWorkingGroup/PlatformTools.cs b/src/NTwain/TWAINWorkingGroup/PlatformTools.cs similarity index 100% rename from NTwain/TWAINWorkingGroup/PlatformTools.cs rename to src/NTwain/TWAINWorkingGroup/PlatformTools.cs diff --git a/NTwain/TWAINWorkingGroup/README.md b/src/NTwain/TWAINWorkingGroup/README.md similarity index 100% rename from NTwain/TWAINWorkingGroup/README.md rename to src/NTwain/TWAINWorkingGroup/README.md diff --git a/NTwain/TWAINWorkingGroup/TWAIN.cs b/src/NTwain/TWAINWorkingGroup/TWAIN.cs similarity index 96% rename from NTwain/TWAINWorkingGroup/TWAIN.cs rename to src/NTwain/TWAINWorkingGroup/TWAIN.cs index 40d985e..dac0c39 100644 --- a/NTwain/TWAINWorkingGroup/TWAIN.cs +++ b/src/NTwain/TWAINWorkingGroup/TWAIN.cs @@ -116,7 +116,6 @@ namespace TWAINWorkingGroup /// Function to handle scanning /// Help us run in the GUI thread on Windows /// window handle - [PermissionSet(SecurityAction.LinkDemand, Name = "FullTrust", Unrestricted = false)] public TWAIN ( string a_szManufacturer, @@ -264,10 +263,10 @@ namespace TWAINWorkingGroup // we find an old DSM... foreach (string szDsm in aszDsm) { - if ( szDsm.EndsWith("so.2.0") || szDsm.Contains(".so.2.0.") - || szDsm.EndsWith("so.2.1") || szDsm.Contains(".so.2.1.") - || szDsm.EndsWith("so.2.2") || szDsm.Contains(".so.2.2.") - || szDsm.EndsWith("so.2.3") || szDsm.Contains(".so.2.3.")) + if (szDsm.EndsWith("so.2.0") || szDsm.Contains(".so.2.0.") + || szDsm.EndsWith("so.2.1") || szDsm.Contains(".so.2.1.") + || szDsm.EndsWith("so.2.2") || szDsm.Contains(".so.2.2.") + || szDsm.EndsWith("so.2.3") || szDsm.Contains(".so.2.3.")) { // If we get a match, see if the symbolic link is // pointing to old junk... @@ -281,11 +280,11 @@ namespace TWAINWorkingGroup p.WaitForExit(); p.Dispose(); // We never did any 1.x stuff... - if ( (szOutput != null) - && (szOutput.EndsWith(".so.2.0") || szOutput.Contains(".so.2.0.") - || szOutput.EndsWith(".so.2.1") || szOutput.Contains(".so.2.1.") - || szOutput.EndsWith(".so.2.2") || szOutput.Contains(".so.2.2.") - || szOutput.EndsWith(".so.2.3") || szOutput.Contains(".so.2.3."))) + if ((szOutput != null) + && (szOutput.EndsWith(".so.2.0") || szOutput.Contains(".so.2.0.") + || szOutput.EndsWith(".so.2.1") || szOutput.Contains(".so.2.1.") + || szOutput.EndsWith(".so.2.2") || szOutput.Contains(".so.2.2.") + || szOutput.EndsWith(".so.2.3") || szOutput.Contains(".so.2.3."))) { // libtwaindsm.so is pointing to an old DSM... blCheckForNewDsm = false; @@ -301,19 +300,19 @@ namespace TWAINWorkingGroup foreach (string szDsm in aszDsm) { // I guess this is reasonably future-proof... - if ( szDsm.Contains("so.2.4") - || szDsm.Contains("so.2.5") - || szDsm.Contains("so.2.6") - || szDsm.Contains("so.2.7") - || szDsm.Contains("so.2.8") - || szDsm.Contains("so.2.9") - || szDsm.Contains("so.2.10") - || szDsm.Contains("so.2.11") - || szDsm.Contains("so.2.12") - || szDsm.Contains("so.2.13") - || szDsm.Contains("so.2.14") - || szDsm.Contains("so.3") - || szDsm.Contains("so.4")) + if (szDsm.Contains("so.2.4") + || szDsm.Contains("so.2.5") + || szDsm.Contains("so.2.6") + || szDsm.Contains("so.2.7") + || szDsm.Contains("so.2.8") + || szDsm.Contains("so.2.9") + || szDsm.Contains("so.2.10") + || szDsm.Contains("so.2.11") + || szDsm.Contains("so.2.12") + || szDsm.Contains("so.2.13") + || szDsm.Contains("so.2.14") + || szDsm.Contains("so.3") + || szDsm.Contains("so.4")) { // libtwaindsm.so is pointing to a new DSM... if (szDsm.Contains("lib64")) @@ -474,7 +473,6 @@ namespace TWAINWorkingGroup /// /// Number of bytes to allocate /// Point to memory - [PermissionSet(SecurityAction.LinkDemand, Name = "FullTrust", Unrestricted = false)] public IntPtr DsmMemAlloc(uint a_u32Size, bool a_blForcePointer = false) { IntPtr intptr; @@ -540,7 +538,6 @@ namespace TWAINWorkingGroup /// Free memory used with the data source... /// /// Pointer to free - [PermissionSet(SecurityAction.LinkDemand, Name = "FullTrust", Unrestricted = false)] public void DsmMemFree(ref IntPtr a_intptrHandle, bool a_blForcePointer = false) { // Validate... @@ -593,7 +590,6 @@ namespace TWAINWorkingGroup /// /// Handle to lock /// Locked pointer - [PermissionSet(SecurityAction.LinkDemand, Name = "FullTrust", Unrestricted = false)] public IntPtr DsmMemLock(IntPtr a_intptrHandle) { // Validate... @@ -636,7 +632,6 @@ namespace TWAINWorkingGroup /// Unlock memory used with the data source... /// /// Handle to unlock - [PermissionSet(SecurityAction.LinkDemand, Name = "FullTrust", Unrestricted = false)] public void DsmMemUnlock(IntPtr a_intptrHandle) { // Validate... @@ -748,7 +743,6 @@ namespace TWAINWorkingGroup /// a parameter for the message /// another parameter for the message /// - [PermissionSet(SecurityAction.LinkDemand, Name = "FullTrust", Unrestricted = false)] public bool PreFilterMessage ( IntPtr a_intptrHwnd, @@ -925,7 +919,7 @@ namespace TWAINWorkingGroup m_blAcceptXferReady = false; m_blIsMsgclosedsok = false; m_blIsMsgclosedsreq = false; - m_blIsMsgxferready = false; + m_blIsMsgxferready = false; } // State 4 --> State 3... @@ -1324,13 +1318,14 @@ namespace TWAINWorkingGroup break; // DAT_IMAGENATIVEXFER... - case (int)DAT.IMAGENATIVEXFER: - { - IntPtr intptrBitmapHandle = IntPtr.Zero; - sts = DatImagenativexferHandle((DG)iDg, (MSG)iMsg, ref intptrBitmapHandle); - a_szTwmemref = intptrBitmapHandle.ToString(); - } - break; + // TODO: Recode later + //case (int)DAT.IMAGENATIVEXFER: + // { + // IntPtr intptrBitmapHandle = IntPtr.Zero; + // sts = DatImagenativexferHandle((DG)iDg, (MSG)iMsg, ref intptrBitmapHandle); + // a_szTwmemref = intptrBitmapHandle.ToString(); + // } + // break; // DAT_JPEGCOMPRESSION... case (int)DAT.JPEGCOMPRESSION: @@ -1601,7 +1596,6 @@ namespace TWAINWorkingGroup /// /// A TWAIN structure /// A CSV string of the TWAIN structure - [PermissionSet(SecurityAction.LinkDemand, Name = "FullTrust", Unrestricted = false)] public string CapabilityToCsv(TW_CAPABILITY a_twcapability, bool a_blUseSymbols) { IntPtr intptr; @@ -1951,7 +1945,6 @@ namespace TWAINWorkingGroup /// A CSV string of the TWAIN structure /// The container for this capability /// True if the conversion is successful - [PermissionSet(SecurityAction.LinkDemand, Name = "FullTrust", Unrestricted = false)] public bool CsvToCapability(ref TW_CAPABILITY a_twcapability, ref string a_szSetting, string a_szValue) { int ii = 0; @@ -1989,7 +1982,7 @@ namespace TWAINWorkingGroup else { a_twcapability.Cap = (CAP)Enum.Parse(typeof(CAP), asz[0], true); - } + } } catch { @@ -2285,7 +2278,6 @@ namespace TWAINWorkingGroup /// /// A TWAIN structure /// A CSV string of the TWAIN structure - [PermissionSet(SecurityAction.LinkDemand, Name = "FullTrust", Unrestricted = false)] public string CustomdsdataToCsv(TW_CUSTOMDSDATA a_twcustomdsdata) { try @@ -2310,7 +2302,6 @@ namespace TWAINWorkingGroup /// A TWAIN structure /// A CSV string of the TWAIN structure /// True if the conversion is successful - [PermissionSet(SecurityAction.LinkDemand, Name = "FullTrust", Unrestricted = false)] public bool CsvToCustomdsdata(ref TW_CUSTOMDSDATA a_twcustomdsdata, string a_szCustomdsdata) { // Init stuff... @@ -3112,7 +3103,6 @@ namespace TWAINWorkingGroup ref m_threaddataDatAudionativexfer.intptrAudio ); } - [PermissionSet(SecurityAction.LinkDemand, Name = "FullTrust", Unrestricted = false)] public STS DatAudionativexfer(DG a_dg, MSG a_msg, ref IntPtr a_intptrAudio) { STS sts; @@ -3596,7 +3586,6 @@ namespace TWAINWorkingGroup /// Operation /// CAPABILITY structure /// TWAIN status - [PermissionSet(SecurityAction.LinkDemand, Name = "FullTrust", Unrestricted = false)] private void DatCapabilityWindowsTwain32() { // If you get a first chance exception, be aware that some drivers @@ -3656,7 +3645,7 @@ namespace TWAINWorkingGroup ThreadToCallerWaitOne(); // Hmmm... - if ( (a_msg == MSG.GETCURRENT) + if ((a_msg == MSG.GETCURRENT) && (m_twaincommand.Get(lIndex).sts == STS.SUCCESS) && (m_twaincommand.Get(lIndex).twcapability.ConType == (TWON)0) && (m_twaincommand.Get(lIndex).twcapability.hContainer == IntPtr.Zero)) @@ -3876,7 +3865,7 @@ namespace TWAINWorkingGroup int result; if (int.TryParse(astr[astr.Length - 1], out result)) { - twlg = (TWLG)result; + twlg = (TWLG)result; } } catch @@ -4042,7 +4031,6 @@ namespace TWAINWorkingGroup /// Operation /// CUSTOMDSDATA structure /// TWAIN status - [PermissionSet(SecurityAction.LinkDemand, Name = "FullTrust", Unrestricted = false)] public STS DatCustomdsdata(DG a_dg, MSG a_msg, ref TW_CUSTOMDSDATA a_twcustomdsdata) { STS sts; @@ -4333,7 +4321,6 @@ namespace TWAINWorkingGroup /// Operation /// ENTRYPOINT structure /// TWAIN status - [PermissionSet(SecurityAction.LinkDemand, Name = "FullTrust", Unrestricted = false)] public STS DatEntrypoint(DG a_dg, MSG a_msg, ref TW_ENTRYPOINT a_twentrypoint) { STS sts; @@ -4489,7 +4476,7 @@ namespace TWAINWorkingGroup m_twentrypointdelegates.DSM_Entry = a_twentrypoint.DSM_Entry; if (a_twentrypoint.DSM_MemAllocate != null) { - m_twentrypointdelegates.DSM_MemAllocate = (DSM_MEMALLOC)Marshal.GetDelegateForFunctionPointer(a_twentrypoint.DSM_MemAllocate,typeof(DSM_MEMALLOC)); + m_twentrypointdelegates.DSM_MemAllocate = (DSM_MEMALLOC)Marshal.GetDelegateForFunctionPointer(a_twentrypoint.DSM_MemAllocate, typeof(DSM_MEMALLOC)); } if (a_twentrypoint.DSM_MemFree != null) { @@ -5554,7 +5541,6 @@ namespace TWAINWorkingGroup ref m_threaddataDatIdentity.twidentitylegacy ); } - [PermissionSet(SecurityAction.LinkDemand, Name = "FullTrust", Unrestricted = false)] public STS DatIdentity(DG a_dg, MSG a_msg, ref TW_IDENTITY a_twidentity) { STS sts; @@ -7313,220 +7299,218 @@ namespace TWAINWorkingGroup ref m_threaddataDatImagenativexfer.intptrBitmap ); } - [PermissionSet(SecurityAction.LinkDemand, Name = "FullTrust", Unrestricted = false)] - public STS DatImagenativexfer(DG a_dg, MSG a_msg, ref Bitmap a_bitmap) - { - IntPtr intptrBitmapHandle = IntPtr.Zero; - return (DatImagenativexferBitmap(a_dg, a_msg, ref a_bitmap, ref intptrBitmapHandle, false)); - } - [PermissionSet(SecurityAction.LinkDemand, Name = "FullTrust", Unrestricted = false)] - public STS DatImagenativexferHandle(DG a_dg, MSG a_msg, ref IntPtr a_intptrBitmapHandle) - { - Bitmap bitmap = null; - return (DatImagenativexferBitmap(a_dg, a_msg, ref bitmap, ref a_intptrBitmapHandle, true)); - } - [PermissionSet(SecurityAction.LinkDemand, Name = "FullTrust", Unrestricted = false)] - public STS DatImagenativexferBitmap(DG a_dg, MSG a_msg, ref Bitmap a_bitmap, ref IntPtr a_intptrBitmapHandle, bool a_blUseBitmapHandle) - { - STS sts; - IntPtr intptrBitmap = IntPtr.Zero; + // TODO: Recode later + //public STS DatImagenativexfer(DG a_dg, MSG a_msg, ref Bitmap a_bitmap) + //{ + // IntPtr intptrBitmapHandle = IntPtr.Zero; + // return (DatImagenativexferBitmap(a_dg, a_msg, ref a_bitmap, ref intptrBitmapHandle, false)); + //} + //public STS DatImagenativexferHandle(DG a_dg, MSG a_msg, ref IntPtr a_intptrBitmapHandle) + //{ + // Bitmap bitmap = null; + // return (DatImagenativexferBitmap(a_dg, a_msg, ref bitmap, ref a_intptrBitmapHandle, true)); + //} + //public STS DatImagenativexferBitmap(DG a_dg, MSG a_msg, ref Bitmap a_bitmap, ref IntPtr a_intptrBitmapHandle, bool a_blUseBitmapHandle) + //{ + // STS sts; + // IntPtr intptrBitmap = IntPtr.Zero; - // Submit the work to the TWAIN thread... - if (this.m_runinuithreaddelegate == null) - { - if ((m_threadTwain != null) && (m_threadTwain.ManagedThreadId != Thread.CurrentThread.ManagedThreadId)) - { - lock (m_lockTwain) - { - // Set our command variables... - ThreadData threaddata = default(ThreadData); - threaddata.bitmap = a_bitmap; - threaddata.blUseBitmapHandle = a_blUseBitmapHandle; - threaddata.dg = a_dg; - threaddata.msg = a_msg; - threaddata.dat = DAT.IMAGENATIVEXFER; - long lIndex = m_twaincommand.Submit(threaddata); + // // Submit the work to the TWAIN thread... + // if (this.m_runinuithreaddelegate == null) + // { + // if ((m_threadTwain != null) && (m_threadTwain.ManagedThreadId != Thread.CurrentThread.ManagedThreadId)) + // { + // lock (m_lockTwain) + // { + // // Set our command variables... + // ThreadData threaddata = default(ThreadData); + // threaddata.bitmap = a_bitmap; + // threaddata.blUseBitmapHandle = a_blUseBitmapHandle; + // threaddata.dg = a_dg; + // threaddata.msg = a_msg; + // threaddata.dat = DAT.IMAGENATIVEXFER; + // long lIndex = m_twaincommand.Submit(threaddata); - // Submit the command and wait for the reply... - CallerToThreadSet(); - ThreadToCallerWaitOne(); + // // Submit the command and wait for the reply... + // CallerToThreadSet(); + // ThreadToCallerWaitOne(); - // Return the result... - a_bitmap = m_twaincommand.Get(lIndex).bitmap; - a_intptrBitmapHandle = m_twaincommand.Get(lIndex).intptrBitmap; - sts = m_twaincommand.Get(lIndex).sts; + // // Return the result... + // a_bitmap = m_twaincommand.Get(lIndex).bitmap; + // a_intptrBitmapHandle = m_twaincommand.Get(lIndex).intptrBitmap; + // sts = m_twaincommand.Get(lIndex).sts; - // Clear the command variables... - m_twaincommand.Delete(lIndex); - } - return (sts); - } - } + // // Clear the command variables... + // m_twaincommand.Delete(lIndex); + // } + // return (sts); + // } + // } - // Log it... - if (Log.GetLevel() > 0) - { - Log.LogSendBefore(a_dg.ToString(), DAT.IMAGENATIVEXFER.ToString(), a_msg.ToString(), ""); - } + // // Log it... + // if (Log.GetLevel() > 0) + // { + // Log.LogSendBefore(a_dg.ToString(), DAT.IMAGENATIVEXFER.ToString(), a_msg.ToString(), ""); + // } - // Windows... - if (ms_platform == Platform.WINDOWS) - { - // Issue the command... - try - { - if (m_threaddataDatImagenativexfer.blIsInuse || (this.m_runinuithreaddelegate == null)) - { - if (m_blUseLegacyDSM) - { - sts = (STS)NativeMethods.WindowsTwain32DsmEntryImagenativexfer(ref m_twidentitylegacyApp, ref m_twidentitylegacyDs, a_dg, DAT.IMAGENATIVEXFER, a_msg, ref intptrBitmap); - } - else - { - sts = (STS)NativeMethods.WindowsTwaindsmDsmEntryImagenativexfer(ref m_twidentitylegacyApp, ref m_twidentitylegacyDs, a_dg, DAT.IMAGENATIVEXFER, a_msg, ref intptrBitmap); - } - } - else - { - if (m_blUseLegacyDSM) - { - lock (m_lockTwain) - { - m_threaddataDatImagenativexfer = default(ThreadData); - m_threaddataDatImagenativexfer.blIsInuse = true; - m_threaddataDatImagenativexfer.dg = a_dg; - m_threaddataDatImagenativexfer.msg = a_msg; - m_threaddataDatImagenativexfer.dat = DAT.IMAGENATIVEXFER; - RunInUiThread(DatImagenativexferWindowsTwain32); - intptrBitmap = a_intptrBitmapHandle = m_threaddataDatImagenativexfer.intptrBitmap; - sts = m_threaddataDatImagenativexfer.sts; - m_threaddataDatImagenativexfer = default(ThreadData); - } - } - else - { - lock (m_lockTwain) - { - m_threaddataDatImagenativexfer = default(ThreadData); - m_threaddataDatImagenativexfer.blIsInuse = true; - m_threaddataDatImagenativexfer.dg = a_dg; - m_threaddataDatImagenativexfer.msg = a_msg; - m_threaddataDatImagenativexfer.dat = DAT.IMAGENATIVEXFER; - RunInUiThread(DatImagenativexferWindowsTwainDsm); - intptrBitmap = a_intptrBitmapHandle = m_threaddataDatImagenativexfer.intptrBitmap; - sts = m_threaddataDatImagenativexfer.sts; - m_threaddataDatImagenativexfer = default(ThreadData); - } - } - } - } - catch (Exception exception) - { - // The driver crashed... - Log.Error("crash - " + exception.Message); - Log.LogSendAfter(STS.BUMMER, ""); - return (STS.BUMMER); - } - } + // // Windows... + // if (ms_platform == Platform.WINDOWS) + // { + // // Issue the command... + // try + // { + // if (m_threaddataDatImagenativexfer.blIsInuse || (this.m_runinuithreaddelegate == null)) + // { + // if (m_blUseLegacyDSM) + // { + // sts = (STS)NativeMethods.WindowsTwain32DsmEntryImagenativexfer(ref m_twidentitylegacyApp, ref m_twidentitylegacyDs, a_dg, DAT.IMAGENATIVEXFER, a_msg, ref intptrBitmap); + // } + // else + // { + // sts = (STS)NativeMethods.WindowsTwaindsmDsmEntryImagenativexfer(ref m_twidentitylegacyApp, ref m_twidentitylegacyDs, a_dg, DAT.IMAGENATIVEXFER, a_msg, ref intptrBitmap); + // } + // } + // else + // { + // if (m_blUseLegacyDSM) + // { + // lock (m_lockTwain) + // { + // m_threaddataDatImagenativexfer = default(ThreadData); + // m_threaddataDatImagenativexfer.blIsInuse = true; + // m_threaddataDatImagenativexfer.dg = a_dg; + // m_threaddataDatImagenativexfer.msg = a_msg; + // m_threaddataDatImagenativexfer.dat = DAT.IMAGENATIVEXFER; + // RunInUiThread(DatImagenativexferWindowsTwain32); + // intptrBitmap = a_intptrBitmapHandle = m_threaddataDatImagenativexfer.intptrBitmap; + // sts = m_threaddataDatImagenativexfer.sts; + // m_threaddataDatImagenativexfer = default(ThreadData); + // } + // } + // else + // { + // lock (m_lockTwain) + // { + // m_threaddataDatImagenativexfer = default(ThreadData); + // m_threaddataDatImagenativexfer.blIsInuse = true; + // m_threaddataDatImagenativexfer.dg = a_dg; + // m_threaddataDatImagenativexfer.msg = a_msg; + // m_threaddataDatImagenativexfer.dat = DAT.IMAGENATIVEXFER; + // RunInUiThread(DatImagenativexferWindowsTwainDsm); + // intptrBitmap = a_intptrBitmapHandle = m_threaddataDatImagenativexfer.intptrBitmap; + // sts = m_threaddataDatImagenativexfer.sts; + // m_threaddataDatImagenativexfer = default(ThreadData); + // } + // } + // } + // } + // catch (Exception exception) + // { + // // The driver crashed... + // Log.Error("crash - " + exception.Message); + // Log.LogSendAfter(STS.BUMMER, ""); + // return (STS.BUMMER); + // } + // } - // Linux... - else if (ms_platform == Platform.LINUX) - { - // Issue the command... - try - { - if (m_blFoundLatestDsm64 && (m_linuxdsm == LinuxDsm.IsLatestDsm)) - { - sts = (STS)NativeMethods.Linux64DsmEntryImagenativexfer(ref m_twidentitylegacyApp, ref m_twidentitylegacyDs, a_dg, DAT.IMAGENATIVEXFER, a_msg, ref intptrBitmap); - } - else if (m_blFoundLatestDsm && (m_linuxdsm == LinuxDsm.IsLatestDsm)) - { - sts = (STS)NativeMethods.LinuxDsmEntryImagenativexfer(ref m_twidentitylegacyApp, ref m_twidentitylegacyDs, a_dg, DAT.IMAGENATIVEXFER, a_msg, ref intptrBitmap); - } - else if (m_blFound020302Dsm64bit && (m_linuxdsm == LinuxDsm.Is020302Dsm64bit)) - { - sts = (STS)NativeMethods.Linux020302Dsm64bitEntryImagenativexfer(ref m_twidentityApp, ref m_twidentityDs, a_dg, DAT.IMAGENATIVEXFER, a_msg, ref intptrBitmap); - } - else - { - Log.Error("apparently we don't have a DSM..."); - sts = STS.BUMMER; - } - } - catch (Exception exception) - { - // The driver crashed... - Log.Error("crash - " + exception.Message); - Log.LogSendAfter(STS.BUMMER, ""); - return (STS.BUMMER); - } - } + // // Linux... + // else if (ms_platform == Platform.LINUX) + // { + // // Issue the command... + // try + // { + // if (m_blFoundLatestDsm64 && (m_linuxdsm == LinuxDsm.IsLatestDsm)) + // { + // sts = (STS)NativeMethods.Linux64DsmEntryImagenativexfer(ref m_twidentitylegacyApp, ref m_twidentitylegacyDs, a_dg, DAT.IMAGENATIVEXFER, a_msg, ref intptrBitmap); + // } + // else if (m_blFoundLatestDsm && (m_linuxdsm == LinuxDsm.IsLatestDsm)) + // { + // sts = (STS)NativeMethods.LinuxDsmEntryImagenativexfer(ref m_twidentitylegacyApp, ref m_twidentitylegacyDs, a_dg, DAT.IMAGENATIVEXFER, a_msg, ref intptrBitmap); + // } + // else if (m_blFound020302Dsm64bit && (m_linuxdsm == LinuxDsm.Is020302Dsm64bit)) + // { + // sts = (STS)NativeMethods.Linux020302Dsm64bitEntryImagenativexfer(ref m_twidentityApp, ref m_twidentityDs, a_dg, DAT.IMAGENATIVEXFER, a_msg, ref intptrBitmap); + // } + // else + // { + // Log.Error("apparently we don't have a DSM..."); + // sts = STS.BUMMER; + // } + // } + // catch (Exception exception) + // { + // // The driver crashed... + // Log.Error("crash - " + exception.Message); + // Log.LogSendAfter(STS.BUMMER, ""); + // return (STS.BUMMER); + // } + // } - // Mac OS X, which has to be different... - else if (ms_platform == Platform.MACOSX) - { - // Issue the command... - try - { - intptrBitmap = IntPtr.Zero; - if (m_blUseLegacyDSM) - { - sts = (STS)NativeMethods.MacosxTwainDsmEntryImagenativexfer(ref m_twidentitymacosxApp, ref m_twidentitymacosxDs, a_dg, DAT.IMAGENATIVEXFER, a_msg, ref intptrBitmap); - } - else - { - sts = (STS)NativeMethods.MacosxTwaindsmDsmEntryImagenativexfer(ref m_twidentitymacosxApp, ref m_twidentitymacosxDs, a_dg, DAT.IMAGENATIVEXFER, a_msg, ref intptrBitmap); - } - } - catch (Exception exception) - { - // The driver crashed... - Log.Error("crash - " + exception.Message); - Log.LogSendAfter(STS.BUMMER, ""); - return (STS.BUMMER); - } - } + // // Mac OS X, which has to be different... + // else if (ms_platform == Platform.MACOSX) + // { + // // Issue the command... + // try + // { + // intptrBitmap = IntPtr.Zero; + // if (m_blUseLegacyDSM) + // { + // sts = (STS)NativeMethods.MacosxTwainDsmEntryImagenativexfer(ref m_twidentitymacosxApp, ref m_twidentitymacosxDs, a_dg, DAT.IMAGENATIVEXFER, a_msg, ref intptrBitmap); + // } + // else + // { + // sts = (STS)NativeMethods.MacosxTwaindsmDsmEntryImagenativexfer(ref m_twidentitymacosxApp, ref m_twidentitymacosxDs, a_dg, DAT.IMAGENATIVEXFER, a_msg, ref intptrBitmap); + // } + // } + // catch (Exception exception) + // { + // // The driver crashed... + // Log.Error("crash - " + exception.Message); + // Log.LogSendAfter(STS.BUMMER, ""); + // return (STS.BUMMER); + // } + // } - // Uh-oh... - else - { - Log.LogSendAfter(STS.BUMMER, ""); - return (STS.BUMMER); - } + // // Uh-oh... + // else + // { + // Log.LogSendAfter(STS.BUMMER, ""); + // return (STS.BUMMER); + // } - // Get DAT_STATUS, if needed... - STS stsRcOrCc = AutoDatStatus(sts); + // // Get DAT_STATUS, if needed... + // STS stsRcOrCc = AutoDatStatus(sts); - // Log it... - if (Log.GetLevel() > 0) - { - Log.LogSendAfter(stsRcOrCc, ""); - } + // // Log it... + // if (Log.GetLevel() > 0) + // { + // Log.LogSendAfter(stsRcOrCc, ""); + // } - // If we had a successful transfer, then convert the data... - if (sts == STS.XFERDONE) - { - if (a_blUseBitmapHandle) - { - a_intptrBitmapHandle = intptrBitmap; - } - else - { - // Bump our state... - m_state = STATE.S7; + // // If we had a successful transfer, then convert the data... + // if (sts == STS.XFERDONE) + // { + // if (a_blUseBitmapHandle) + // { + // a_intptrBitmapHandle = intptrBitmap; + // } + // else + // { + // // Bump our state... + // m_state = STATE.S7; - // Turn the DIB into a Bitmap object... - a_bitmap = NativeToBitmap(ms_platform, intptrBitmap); + // // Turn the DIB into a Bitmap object... + // a_bitmap = NativeToBitmap(ms_platform, intptrBitmap); - // We're done with the data we got from the driver... - Marshal.FreeHGlobal(intptrBitmap); - intptrBitmap = IntPtr.Zero; - } - } + // // We're done with the data we got from the driver... + // Marshal.FreeHGlobal(intptrBitmap); + // intptrBitmap = IntPtr.Zero; + // } + // } - // All done... - return (stsRcOrCc); - } + // // All done... + // return (stsRcOrCc); + //} /// /// Get/Set JPEG compression tables... @@ -7998,7 +7982,6 @@ namespace TWAINWorkingGroup ref m_threaddataDatParent.intptrHwnd ); } - [PermissionSet(SecurityAction.LinkDemand, Name = "FullTrust", Unrestricted = false)] public STS DatParent(DG a_dg, MSG a_msg, ref IntPtr a_intptrHwnd) { STS sts; @@ -10720,16 +10703,17 @@ namespace TWAINWorkingGroup break; // Native transfer... - case DAT.IMAGENATIVEXFER: - if (threaddata.blUseBitmapHandle) - { - threaddata.sts = DatImagenativexferHandle(threaddata.dg, threaddata.msg, ref threaddata.intptrBitmap); - } - else - { - threaddata.sts = DatImagenativexfer(threaddata.dg, threaddata.msg, ref threaddata.bitmap); - } - break; + // TODO: Recode later + //case DAT.IMAGENATIVEXFER: + // if (threaddata.blUseBitmapHandle) + // { + // threaddata.sts = DatImagenativexferHandle(threaddata.dg, threaddata.msg, ref threaddata.intptrBitmap); + // } + // else + // { + // threaddata.sts = DatImagenativexfer(threaddata.dg, threaddata.msg, ref threaddata.bitmap); + // } + // break; // JPEG compression... case DAT.JPEGCOMPRESSION: @@ -11189,7 +11173,6 @@ namespace TWAINWorkingGroup /// Pointer to the data /// Index of the item in the data /// Data in CSV form - [PermissionSet(SecurityAction.LinkDemand, Name = "FullTrust", Unrestricted = false)] public string GetIndexedItem(TW_CAPABILITY a_twcapability, TWTY a_twty, IntPtr a_intptr, int a_iIndex) { IntPtr intptr; @@ -11301,7 +11284,6 @@ namespace TWAINWorkingGroup /// Index for item in the data /// CSV value to be used to set the data /// Empty string or an error string - [PermissionSet(SecurityAction.LinkDemand, Name = "FullTrust", Unrestricted = false)] public string SetIndexedItem(TW_CAPABILITY a_twcapability, TWTY a_twty, IntPtr a_intptr, int a_iIndex, string a_szValue) { IntPtr intptr; @@ -11479,7 +11461,6 @@ namespace TWAINWorkingGroup /// Pointer to the data /// List of strings /// Empty string or an error string - [PermissionSet(SecurityAction.LinkDemand, Name = "FullTrust", Unrestricted = false)] public string SetRangeItem(TWTY a_twty, IntPtr a_intptr, string[] a_asz) { TW_RANGE twrange = default(TW_RANGE); @@ -11819,167 +11800,167 @@ namespace TWAINWorkingGroup return ((UInt16)STS.SUCCESS); } - /// - /// Get .NET 'Bitmap' object from memory DIB via stream constructor. - /// This should work for most DIBs. - /// - /// Our operating system - /// The pointer to something (presumably a BITMAP or a TIFF image) - /// C# Bitmap of image - private Bitmap NativeToBitmap(Platform a_platform, IntPtr a_intptrNative) - { - ushort u16Magic; - IntPtr intptrNative; + ///// + ///// Get .NET 'Bitmap' object from memory DIB via stream constructor. + ///// This should work for most DIBs. + ///// + ///// Our operating system + ///// The pointer to something (presumably a BITMAP or a TIFF image) + ///// C# Bitmap of image + //private Bitmap NativeToBitmap(Platform a_platform, IntPtr a_intptrNative) + //{ + // ushort u16Magic; + // IntPtr intptrNative; - // We need the first two bytes to decide if we have a DIB or a TIFF. Don't - // forget to lock the silly thing... - intptrNative = DsmMemLock(a_intptrNative); - u16Magic = (ushort)Marshal.PtrToStructure(intptrNative, typeof(ushort)); + // // We need the first two bytes to decide if we have a DIB or a TIFF. Don't + // // forget to lock the silly thing... + // intptrNative = DsmMemLock(a_intptrNative); + // u16Magic = (ushort)Marshal.PtrToStructure(intptrNative, typeof(ushort)); - // Windows uses a DIB, the first usigned short is 40... - if (u16Magic == 40) - { - byte[] bBitmap; - BITMAPFILEHEADER bitmapfileheader; - BITMAPINFOHEADER bitmapinfoheader; + // // Windows uses a DIB, the first usigned short is 40... + // if (u16Magic == 40) + // { + // byte[] bBitmap; + // BITMAPFILEHEADER bitmapfileheader; + // BITMAPINFOHEADER bitmapinfoheader; - // Our incoming DIB is a bitmap info header... - bitmapinfoheader = (BITMAPINFOHEADER)Marshal.PtrToStructure(intptrNative, typeof(BITMAPINFOHEADER)); + // // Our incoming DIB is a bitmap info header... + // bitmapinfoheader = (BITMAPINFOHEADER)Marshal.PtrToStructure(intptrNative, typeof(BITMAPINFOHEADER)); - // Build our file header... - bitmapfileheader = new BITMAPFILEHEADER(); - bitmapfileheader.bfType = 0x4D42; // "BM" - bitmapfileheader.bfSize - = (uint)Marshal.SizeOf(typeof(BITMAPFILEHEADER)) + - bitmapinfoheader.biSize + - (bitmapinfoheader.biClrUsed * 4) + - bitmapinfoheader.biSizeImage; - bitmapfileheader.bfOffBits - = (uint)Marshal.SizeOf(typeof(BITMAPFILEHEADER)) + - bitmapinfoheader.biSize + - (bitmapinfoheader.biClrUsed * 4); + // // Build our file header... + // bitmapfileheader = new BITMAPFILEHEADER(); + // bitmapfileheader.bfType = 0x4D42; // "BM" + // bitmapfileheader.bfSize + // = (uint)Marshal.SizeOf(typeof(BITMAPFILEHEADER)) + + // bitmapinfoheader.biSize + + // (bitmapinfoheader.biClrUsed * 4) + + // bitmapinfoheader.biSizeImage; + // bitmapfileheader.bfOffBits + // = (uint)Marshal.SizeOf(typeof(BITMAPFILEHEADER)) + + // bitmapinfoheader.biSize + + // (bitmapinfoheader.biClrUsed * 4); - // Copy the file header into our byte array... - IntPtr intptr = Marshal.AllocHGlobal(Marshal.SizeOf(bitmapfileheader)); - Marshal.StructureToPtr(bitmapfileheader, intptr, true); - bBitmap = new byte[bitmapfileheader.bfSize]; - Marshal.Copy(intptr, bBitmap, 0, Marshal.SizeOf(bitmapfileheader)); - Marshal.FreeHGlobal(intptr); - intptr = IntPtr.Zero; + // // Copy the file header into our byte array... + // IntPtr intptr = Marshal.AllocHGlobal(Marshal.SizeOf(bitmapfileheader)); + // Marshal.StructureToPtr(bitmapfileheader, intptr, true); + // bBitmap = new byte[bitmapfileheader.bfSize]; + // Marshal.Copy(intptr, bBitmap, 0, Marshal.SizeOf(bitmapfileheader)); + // Marshal.FreeHGlobal(intptr); + // intptr = IntPtr.Zero; - // Copy the rest of the DIB into our byte array...... - Marshal.Copy(intptrNative, bBitmap, Marshal.SizeOf(typeof(BITMAPFILEHEADER)), (int)bitmapfileheader.bfSize - Marshal.SizeOf(typeof(BITMAPFILEHEADER))); + // // Copy the rest of the DIB into our byte array...... + // Marshal.Copy(intptrNative, bBitmap, Marshal.SizeOf(typeof(BITMAPFILEHEADER)), (int)bitmapfileheader.bfSize - Marshal.SizeOf(typeof(BITMAPFILEHEADER))); - // Now we can turn the in-memory bitmap file into a Bitmap object... - MemoryStream memorystream = new MemoryStream(bBitmap); + // // Now we can turn the in-memory bitmap file into a Bitmap object... + // MemoryStream memorystream = new MemoryStream(bBitmap); - // Unfortunately the stream has to be kept with the bitmap... - Bitmap bitmapStream = new Bitmap(memorystream); + // // Unfortunately the stream has to be kept with the bitmap... + // Bitmap bitmapStream = new Bitmap(memorystream); - // So we make a copy (ick)... - Bitmap bitmap; - switch (bitmapinfoheader.biBitCount) - { - default: - case 24: - bitmap = bitmapStream.Clone(new Rectangle(0, 0, bitmapStream.Width, bitmapStream.Height), System.Drawing.Imaging.PixelFormat.Format24bppRgb); - break; - case 8: - bitmap = bitmapStream.Clone(new Rectangle(0, 0, bitmapStream.Width, bitmapStream.Height), System.Drawing.Imaging.PixelFormat.Format8bppIndexed); - break; - case 1: - bitmap = bitmapStream.Clone(new Rectangle(0, 0, bitmapStream.Width, bitmapStream.Height), System.Drawing.Imaging.PixelFormat.Format1bppIndexed); - break; - } + // // So we make a copy (ick)... + // Bitmap bitmap; + // switch (bitmapinfoheader.biBitCount) + // { + // default: + // case 24: + // bitmap = bitmapStream.Clone(new Rectangle(0, 0, bitmapStream.Width, bitmapStream.Height), System.Drawing.Imaging.PixelFormat.Format24bppRgb); + // break; + // case 8: + // bitmap = bitmapStream.Clone(new Rectangle(0, 0, bitmapStream.Width, bitmapStream.Height), System.Drawing.Imaging.PixelFormat.Format8bppIndexed); + // break; + // case 1: + // bitmap = bitmapStream.Clone(new Rectangle(0, 0, bitmapStream.Width, bitmapStream.Height), System.Drawing.Imaging.PixelFormat.Format1bppIndexed); + // break; + // } - // Fix the resolution... - bitmap.SetResolution((int)(bitmap.HorizontalResolution + 0.5), (int)(bitmap.VerticalResolution + 0.5)); + // // Fix the resolution... + // bitmap.SetResolution((int)(bitmap.HorizontalResolution + 0.5), (int)(bitmap.VerticalResolution + 0.5)); - // Cleanup... - //bitmapStream.Dispose(); - //memorystream.Close(); - bitmapStream = null; - memorystream = null; - bBitmap = null; + // // Cleanup... + // //bitmapStream.Dispose(); + // //memorystream.Close(); + // bitmapStream = null; + // memorystream = null; + // bBitmap = null; - // Return our bitmap... - DsmMemUnlock(a_intptrNative); - return (bitmap); - } + // // Return our bitmap... + // DsmMemUnlock(a_intptrNative); + // return (bitmap); + // } - // Linux and Mac OS X use TIFF. We'll handle a simple Intel TIFF ("II")... - else if (u16Magic == 0x4949) - { - int iTiffSize; - ulong u64; - ulong u64Pointer; - ulong u64TiffHeaderSize; - ulong u64TiffTagSize; - byte[] abTiff; - TIFFHEADER tiffheader; - TIFFTAG tifftag; + // // Linux and Mac OS X use TIFF. We'll handle a simple Intel TIFF ("II")... + // else if (u16Magic == 0x4949) + // { + // int iTiffSize; + // ulong u64; + // ulong u64Pointer; + // ulong u64TiffHeaderSize; + // ulong u64TiffTagSize; + // byte[] abTiff; + // TIFFHEADER tiffheader; + // TIFFTAG tifftag; - // Init stuff... - tiffheader = new TIFFHEADER(); - tifftag = new TIFFTAG(); - u64TiffHeaderSize = (ulong)Marshal.SizeOf(tiffheader); - u64TiffTagSize = (ulong)Marshal.SizeOf(tifftag); + // // Init stuff... + // tiffheader = new TIFFHEADER(); + // tifftag = new TIFFTAG(); + // u64TiffHeaderSize = (ulong)Marshal.SizeOf(tiffheader); + // u64TiffTagSize = (ulong)Marshal.SizeOf(tifftag); - // Find the size of the image so we can turn it into a memory stream... - iTiffSize = 0; - tiffheader = (TIFFHEADER)Marshal.PtrToStructure(intptrNative, typeof(TIFFHEADER)); - for (u64 = 0; u64 < 999; u64++) - { - u64Pointer = (ulong)intptrNative + u64TiffHeaderSize + (u64TiffTagSize * u64); - tifftag = (TIFFTAG)Marshal.PtrToStructure((IntPtr)u64Pointer, typeof(TIFFTAG)); + // // Find the size of the image so we can turn it into a memory stream... + // iTiffSize = 0; + // tiffheader = (TIFFHEADER)Marshal.PtrToStructure(intptrNative, typeof(TIFFHEADER)); + // for (u64 = 0; u64 < 999; u64++) + // { + // u64Pointer = (ulong)intptrNative + u64TiffHeaderSize + (u64TiffTagSize * u64); + // tifftag = (TIFFTAG)Marshal.PtrToStructure((IntPtr)u64Pointer, typeof(TIFFTAG)); - // StripOffsets... - if (tifftag.u16Tag == 273) - { - iTiffSize += (int)tifftag.u32Value; - } + // // StripOffsets... + // if (tifftag.u16Tag == 273) + // { + // iTiffSize += (int)tifftag.u32Value; + // } - // StripByteCounts... - if (tifftag.u16Tag == 279) - { - iTiffSize += (int)tifftag.u32Value; - } - } + // // StripByteCounts... + // if (tifftag.u16Tag == 279) + // { + // iTiffSize += (int)tifftag.u32Value; + // } + // } - // No joy... - if (iTiffSize == 0) - { - DsmMemUnlock(a_intptrNative); - return (null); - } + // // No joy... + // if (iTiffSize == 0) + // { + // DsmMemUnlock(a_intptrNative); + // return (null); + // } - // Copy the data to our byte array... - abTiff = new byte[iTiffSize]; - Marshal.Copy(intptrNative, abTiff, 0, iTiffSize); + // // Copy the data to our byte array... + // abTiff = new byte[iTiffSize]; + // Marshal.Copy(intptrNative, abTiff, 0, iTiffSize); - // Move the image into a memory stream... - MemoryStream memorystream = new MemoryStream(abTiff); + // // Move the image into a memory stream... + // MemoryStream memorystream = new MemoryStream(abTiff); - // Turn the memory stream into an in-memory TIFF image... - Image imageTiff = Image.FromStream(memorystream); + // // Turn the memory stream into an in-memory TIFF image... + // Image imageTiff = Image.FromStream(memorystream); - // Convert the in-memory tiff to a Bitmap object... - Bitmap bitmap = new Bitmap(imageTiff); + // // Convert the in-memory tiff to a Bitmap object... + // Bitmap bitmap = new Bitmap(imageTiff); - // Cleanup... - abTiff = null; - memorystream = null; - imageTiff = null; + // // Cleanup... + // abTiff = null; + // memorystream = null; + // imageTiff = null; - // Return our bitmap... - DsmMemUnlock(a_intptrNative); - return (bitmap); - } + // // Return our bitmap... + // DsmMemUnlock(a_intptrNative); + // return (bitmap); + // } - // Uh-oh... - DsmMemUnlock(a_intptrNative); - return (null); - } + // // Uh-oh... + // DsmMemUnlock(a_intptrNative); + // return (null); + //} /// /// Get .NET 'Bitmap' object from memory DIB via stream constructor. @@ -12316,8 +12297,9 @@ namespace TWAINWorkingGroup public IntPtr intptrBitmap; public IntPtr intptrAudio; public IntPtr twmemref; - public Bitmap bitmap; - public bool blUseBitmapHandle; + // TODO: Recode later + //public Bitmap bitmap; + //public bool blUseBitmapHandle; public UInt32 twuint32; public TW_AUDIOINFO twaudioinfo; public TW_CALLBACK twcallback; @@ -12729,7 +12711,7 @@ namespace TWAINWorkingGroup a_threaddata = default(ThreadData); // Cycle once through the commands to see if we have any... - for (;;) + for (; ; ) { // We found something, copy it out, point to the next // item (so we know we're looking at the whole list) @@ -12771,7 +12753,7 @@ namespace TWAINWorkingGroup long ll; // We won't leave until we've submitted the beastie... - for (;;) + for (; ; ) { // Look for a free slot... for (ll = 0; ll < m_athreaddata.Length; ll++) diff --git a/NTwain/TWAINWorkingGroup/TWAINH.cs b/src/NTwain/TWAINWorkingGroup/TWAINH.cs similarity index 100% rename from NTwain/TWAINWorkingGroup/TWAINH.cs rename to src/NTwain/TWAINWorkingGroup/TWAINH.cs diff --git a/NTwain/TWAINWorkingGroup/TWAINH_EXTRAS.cs b/src/NTwain/TWAINWorkingGroup/TWAINH_EXTRAS.cs similarity index 100% rename from NTwain/TWAINWorkingGroup/TWAINH_EXTRAS.cs rename to src/NTwain/TWAINWorkingGroup/TWAINH_EXTRAS.cs diff --git a/src/NTwain/ThreadMarshaller.cs b/src/NTwain/ThreadMarshaller.cs new file mode 100644 index 0000000..606cf24 --- /dev/null +++ b/src/NTwain/ThreadMarshaller.cs @@ -0,0 +1,49 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading; +using System.Threading.Tasks; + +namespace NTwain +{ + /// + /// Allows work to be marshalled to a different (usually UI) thread if necessary. + /// + public interface IThreadMarshaller + { + /// + /// Starts work asynchronously and returns immediately. + /// + /// + void BeginInvoke(Delegate work, params object[] args); + + /// + /// Starts work synchronously until it returns. + /// + /// + /// + /// + object Invoke(Delegate work, params object[] args); + } + + /// + /// Doesn't actually use any particular thread. + /// Should only be used in non-UI apps. + /// + public class NoParticularMarshaller : IThreadMarshaller + { + public bool InvokeRequired => throw new NotImplementedException(); + + public void BeginInvoke(Delegate work, params object[] args) + { + Task.Run(() => work.DynamicInvoke(args)); + } + + public object Invoke(Delegate work, params object[] args) + { + return work.DynamicInvoke(args); + } + } +} diff --git a/NTwain/TwainSession.cs b/src/NTwain/TwainSession.cs similarity index 100% rename from NTwain/TwainSession.cs rename to src/NTwain/TwainSession.cs diff --git a/NTwain/ValueReader.cs b/src/NTwain/ValueReader.cs similarity index 100% rename from NTwain/ValueReader.cs rename to src/NTwain/ValueReader.cs diff --git a/twain-doc/TWAIN_Errata_for_Version_2.4.pdf b/twain-doc/TWAIN_Errata_for_Version_2.4.pdf new file mode 100644 index 0000000000000000000000000000000000000000..c784b69fd0f7a086d832918a7a6f1b1d73439281 GIT binary patch literal 152880 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

`AQol8}7s9nu6IZV85 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 ZMj=+-_~|p9z%N()#%?$kh5OU+{{mdt(JTM} literal 0 HcmV?d00001