|
|
|
@@ -1,7 +1,5 @@
|
|
|
|
|
using NTwain.Data;
|
|
|
|
|
using NTwain.Values;
|
|
|
|
|
using System;
|
|
|
|
|
using System.IO;
|
|
|
|
|
|
|
|
|
|
namespace NTwain.Triplets
|
|
|
|
|
{
|
|
|
|
@@ -12,33 +10,6 @@ namespace NTwain.Triplets
|
|
|
|
|
/// </summary>
|
|
|
|
|
static partial class Dsm
|
|
|
|
|
{
|
|
|
|
|
// Change pinvoke base on where running in 64bit mode.
|
|
|
|
|
// Theoretically [DllImport("twaindsm", EntryPoint = "#1")]
|
|
|
|
|
// works on both 32 and 64 bit
|
|
|
|
|
// but it's not installed on either system by default.
|
|
|
|
|
// A proper 64 bit twain driver would've installed it so
|
|
|
|
|
// in essence it only exists in 64 bit systems and thus
|
|
|
|
|
// the 2 sets of identical pinvokes for windows :(
|
|
|
|
|
|
|
|
|
|
internal static readonly bool UseNewDSM = CheckIfCanUseNewDSM();
|
|
|
|
|
|
|
|
|
|
private static bool CheckIfCanUseNewDSM()
|
|
|
|
|
{
|
|
|
|
|
#if DEBUG
|
|
|
|
|
return IntPtr.Size == 8;
|
|
|
|
|
#else
|
|
|
|
|
var path = Path.Combine(Environment.SystemDirectory, "twaindsm.dll");
|
|
|
|
|
// if 64bit or the new dll exists use it
|
|
|
|
|
return IntPtr.Size == 8 || File.Exists(path);
|
|
|
|
|
#endif
|
|
|
|
|
}
|
|
|
|
|
internal static readonly bool IsOnMono = Type.GetType("Mono.Runtime") != null;
|
|
|
|
|
|
|
|
|
|
internal static readonly bool IsWin = Environment.OSVersion.Platform == PlatformID.Win32NT;
|
|
|
|
|
static readonly bool IsLinux = Environment.OSVersion.Platform == PlatformID.Unix;
|
|
|
|
|
|
|
|
|
|
// define sig for each different data type since "object" doesn't work
|
|
|
|
|
|
|
|
|
|
#region wrapped calls
|
|
|
|
|
|
|
|
|
|
public static ReturnCode DsmEntry(
|
|
|
|
@@ -49,12 +20,12 @@ namespace NTwain.Triplets
|
|
|
|
|
Message msg,
|
|
|
|
|
ref IntPtr data)
|
|
|
|
|
{
|
|
|
|
|
if (IsWin)
|
|
|
|
|
if (Platform.IsWin)
|
|
|
|
|
{
|
|
|
|
|
if (UseNewDSM) { return NativeMethods.DsmWinNew(origin, destination, dg, dat, msg, ref data); }
|
|
|
|
|
if (Platform.UseNewDSM) { return NativeMethods.DsmWinNew(origin, destination, dg, dat, msg, ref data); }
|
|
|
|
|
else { return NativeMethods.DsmWinOld(origin, destination, dg, dat, msg, ref data); }
|
|
|
|
|
}
|
|
|
|
|
else if (IsLinux)
|
|
|
|
|
else if (Platform.IsLinux)
|
|
|
|
|
{
|
|
|
|
|
return NativeMethods.DsmLinux(origin, destination, dg, dat, msg, ref data);
|
|
|
|
|
}
|
|
|
|
@@ -69,12 +40,12 @@ namespace NTwain.Triplets
|
|
|
|
|
Message msg,
|
|
|
|
|
ref DataGroups data)
|
|
|
|
|
{
|
|
|
|
|
if (IsWin)
|
|
|
|
|
if (Platform.IsWin)
|
|
|
|
|
{
|
|
|
|
|
if (UseNewDSM) { return NativeMethods.DsmWinNew(origin, destination, dg, dat, msg, ref data); }
|
|
|
|
|
if (Platform.UseNewDSM) { return NativeMethods.DsmWinNew(origin, destination, dg, dat, msg, ref data); }
|
|
|
|
|
else { return NativeMethods.DsmWinOld(origin, destination, dg, dat, msg, ref data); }
|
|
|
|
|
}
|
|
|
|
|
else if (IsLinux)
|
|
|
|
|
else if (Platform.IsLinux)
|
|
|
|
|
{
|
|
|
|
|
return NativeMethods.DsmLinux(origin, destination, dg, dat, msg, ref data);
|
|
|
|
|
}
|
|
|
|
@@ -87,12 +58,12 @@ namespace NTwain.Triplets
|
|
|
|
|
Message msg,
|
|
|
|
|
TWAudioInfo data)
|
|
|
|
|
{
|
|
|
|
|
if (IsWin)
|
|
|
|
|
if (Platform.IsWin)
|
|
|
|
|
{
|
|
|
|
|
if (UseNewDSM) { return NativeMethods.DsmWinNew(origin, destination, DataGroups.Audio, DataArgumentType.AudioInfo, msg, data); }
|
|
|
|
|
if (Platform.UseNewDSM) { return NativeMethods.DsmWinNew(origin, destination, DataGroups.Audio, DataArgumentType.AudioInfo, msg, data); }
|
|
|
|
|
else { return NativeMethods.DsmWinOld(origin, destination, DataGroups.Audio, DataArgumentType.AudioInfo, msg, data); }
|
|
|
|
|
}
|
|
|
|
|
else if (IsLinux)
|
|
|
|
|
else if (Platform.IsLinux)
|
|
|
|
|
{
|
|
|
|
|
return NativeMethods.DsmLinux(origin, destination, DataGroups.Audio, DataArgumentType.AudioInfo, msg, data);
|
|
|
|
|
}
|
|
|
|
@@ -106,12 +77,12 @@ namespace NTwain.Triplets
|
|
|
|
|
Message msg,
|
|
|
|
|
TWCapability data)
|
|
|
|
|
{
|
|
|
|
|
if (IsWin)
|
|
|
|
|
if (Platform.IsWin)
|
|
|
|
|
{
|
|
|
|
|
if (UseNewDSM) { return NativeMethods.DsmWinNew(origin, destination, DataGroups.Control, DataArgumentType.Capability, msg, data); }
|
|
|
|
|
if (Platform.UseNewDSM) { return NativeMethods.DsmWinNew(origin, destination, DataGroups.Control, DataArgumentType.Capability, msg, data); }
|
|
|
|
|
else { return NativeMethods.DsmWinOld(origin, destination, DataGroups.Control, DataArgumentType.Capability, msg, data); }
|
|
|
|
|
}
|
|
|
|
|
else if (IsLinux)
|
|
|
|
|
else if (Platform.IsLinux)
|
|
|
|
|
{
|
|
|
|
|
return NativeMethods.DsmLinux(origin, destination, DataGroups.Control, DataArgumentType.Capability, msg, data);
|
|
|
|
|
}
|
|
|
|
@@ -125,12 +96,12 @@ namespace NTwain.Triplets
|
|
|
|
|
Message msg,
|
|
|
|
|
TWCustomDSData data)
|
|
|
|
|
{
|
|
|
|
|
if (IsWin)
|
|
|
|
|
if (Platform.IsWin)
|
|
|
|
|
{
|
|
|
|
|
if (UseNewDSM) { return NativeMethods.DsmWinNew(origin, destination, DataGroups.Control, DataArgumentType.CustomDSData, msg, data); }
|
|
|
|
|
if (Platform.UseNewDSM) { return NativeMethods.DsmWinNew(origin, destination, DataGroups.Control, DataArgumentType.CustomDSData, msg, data); }
|
|
|
|
|
else { return NativeMethods.DsmWinOld(origin, destination, DataGroups.Control, DataArgumentType.CustomDSData, msg, data); }
|
|
|
|
|
}
|
|
|
|
|
else if (IsLinux)
|
|
|
|
|
else if (Platform.IsLinux)
|
|
|
|
|
{
|
|
|
|
|
return NativeMethods.DsmLinux(origin, destination, DataGroups.Control, DataArgumentType.CustomDSData, msg, data);
|
|
|
|
|
}
|
|
|
|
@@ -144,12 +115,12 @@ namespace NTwain.Triplets
|
|
|
|
|
Message msg,
|
|
|
|
|
TWDeviceEvent data)
|
|
|
|
|
{
|
|
|
|
|
if (IsWin)
|
|
|
|
|
if (Platform.IsWin)
|
|
|
|
|
{
|
|
|
|
|
if (UseNewDSM) { return NativeMethods.DsmWinNew(origin, destination, DataGroups.Control, DataArgumentType.DeviceEvent, msg, data); }
|
|
|
|
|
if (Platform.UseNewDSM) { return NativeMethods.DsmWinNew(origin, destination, DataGroups.Control, DataArgumentType.DeviceEvent, msg, data); }
|
|
|
|
|
else { return NativeMethods.DsmWinOld(origin, destination, DataGroups.Control, DataArgumentType.DeviceEvent, msg, data); }
|
|
|
|
|
}
|
|
|
|
|
else if (IsLinux)
|
|
|
|
|
else if (Platform.IsLinux)
|
|
|
|
|
{
|
|
|
|
|
return NativeMethods.DsmLinux(origin, destination, DataGroups.Control, DataArgumentType.DeviceEvent, msg, data);
|
|
|
|
|
}
|
|
|
|
@@ -163,12 +134,12 @@ namespace NTwain.Triplets
|
|
|
|
|
Message msg,
|
|
|
|
|
TWCallback data)
|
|
|
|
|
{
|
|
|
|
|
if (IsWin)
|
|
|
|
|
if (Platform.IsWin)
|
|
|
|
|
{
|
|
|
|
|
if (UseNewDSM) { return NativeMethods.DsmWinNew(origin, destination, DataGroups.Control, DataArgumentType.Callback, msg, data); }
|
|
|
|
|
if (Platform.UseNewDSM) { return NativeMethods.DsmWinNew(origin, destination, DataGroups.Control, DataArgumentType.Callback, msg, data); }
|
|
|
|
|
else { return NativeMethods.DsmWinOld(origin, destination, DataGroups.Control, DataArgumentType.Callback, msg, data); }
|
|
|
|
|
}
|
|
|
|
|
else if (IsLinux)
|
|
|
|
|
else if (Platform.IsLinux)
|
|
|
|
|
{
|
|
|
|
|
return NativeMethods.DsmLinux(origin, destination, DataGroups.Control, DataArgumentType.Callback, msg, data);
|
|
|
|
|
}
|
|
|
|
@@ -182,12 +153,12 @@ namespace NTwain.Triplets
|
|
|
|
|
Message msg,
|
|
|
|
|
TWCallback2 data)
|
|
|
|
|
{
|
|
|
|
|
if (IsWin)
|
|
|
|
|
if (Platform.IsWin)
|
|
|
|
|
{
|
|
|
|
|
if (UseNewDSM) { return NativeMethods.DsmWinNew(origin, destination, DataGroups.Control, DataArgumentType.Callback, msg, data); }
|
|
|
|
|
if (Platform.UseNewDSM) { return NativeMethods.DsmWinNew(origin, destination, DataGroups.Control, DataArgumentType.Callback, msg, data); }
|
|
|
|
|
else { return NativeMethods.DsmWinOld(origin, destination, DataGroups.Control, DataArgumentType.Callback, msg, data); }
|
|
|
|
|
}
|
|
|
|
|
else if (IsLinux)
|
|
|
|
|
else if (Platform.IsLinux)
|
|
|
|
|
{
|
|
|
|
|
return NativeMethods.DsmLinux(origin, destination, DataGroups.Control, DataArgumentType.Callback, msg, data);
|
|
|
|
|
}
|
|
|
|
@@ -201,12 +172,12 @@ namespace NTwain.Triplets
|
|
|
|
|
Message msg,
|
|
|
|
|
TWEntryPoint data)
|
|
|
|
|
{
|
|
|
|
|
if (IsWin)
|
|
|
|
|
if (Platform.IsWin)
|
|
|
|
|
{
|
|
|
|
|
if (UseNewDSM) { return NativeMethods.DsmWinNew(origin, destination, DataGroups.Control, DataArgumentType.EntryPoint, msg, data); }
|
|
|
|
|
if (Platform.UseNewDSM) { return NativeMethods.DsmWinNew(origin, destination, DataGroups.Control, DataArgumentType.EntryPoint, msg, data); }
|
|
|
|
|
else { return NativeMethods.DsmWinOld(origin, destination, DataGroups.Control, DataArgumentType.EntryPoint, msg, data); }
|
|
|
|
|
}
|
|
|
|
|
else if (IsLinux)
|
|
|
|
|
else if (Platform.IsLinux)
|
|
|
|
|
{
|
|
|
|
|
return NativeMethods.DsmLinux(origin, destination, DataGroups.Control, DataArgumentType.EntryPoint, msg, data);
|
|
|
|
|
}
|
|
|
|
@@ -220,12 +191,12 @@ namespace NTwain.Triplets
|
|
|
|
|
Message msg,
|
|
|
|
|
TWEvent data)
|
|
|
|
|
{
|
|
|
|
|
if (IsWin)
|
|
|
|
|
if (Platform.IsWin)
|
|
|
|
|
{
|
|
|
|
|
if (UseNewDSM) { return NativeMethods.DsmWinNew(origin, destination, DataGroups.Control, DataArgumentType.Event, msg, data); }
|
|
|
|
|
if (Platform.UseNewDSM) { return NativeMethods.DsmWinNew(origin, destination, DataGroups.Control, DataArgumentType.Event, msg, data); }
|
|
|
|
|
else { return NativeMethods.DsmWinOld(origin, destination, DataGroups.Control, DataArgumentType.Event, msg, data); }
|
|
|
|
|
}
|
|
|
|
|
else if (IsLinux)
|
|
|
|
|
else if (Platform.IsLinux)
|
|
|
|
|
{
|
|
|
|
|
return NativeMethods.DsmLinux(origin, destination, DataGroups.Control, DataArgumentType.Event, msg, data);
|
|
|
|
|
}
|
|
|
|
@@ -239,12 +210,12 @@ namespace NTwain.Triplets
|
|
|
|
|
Message msg,
|
|
|
|
|
TWFileSystem data)
|
|
|
|
|
{
|
|
|
|
|
if (IsWin)
|
|
|
|
|
if (Platform.IsWin)
|
|
|
|
|
{
|
|
|
|
|
if (UseNewDSM) { return NativeMethods.DsmWinNew(origin, destination, DataGroups.Control, DataArgumentType.FileSystem, msg, data); }
|
|
|
|
|
if (Platform.UseNewDSM) { return NativeMethods.DsmWinNew(origin, destination, DataGroups.Control, DataArgumentType.FileSystem, msg, data); }
|
|
|
|
|
else { return NativeMethods.DsmWinOld(origin, destination, DataGroups.Control, DataArgumentType.FileSystem, msg, data); }
|
|
|
|
|
}
|
|
|
|
|
else if (IsLinux)
|
|
|
|
|
else if (Platform.IsLinux)
|
|
|
|
|
{
|
|
|
|
|
return NativeMethods.DsmLinux(origin, destination, DataGroups.Control, DataArgumentType.FileSystem, msg, data);
|
|
|
|
|
}
|
|
|
|
@@ -256,12 +227,12 @@ namespace NTwain.Triplets
|
|
|
|
|
Message msg,
|
|
|
|
|
TWIdentity data)
|
|
|
|
|
{
|
|
|
|
|
if (IsWin)
|
|
|
|
|
if (Platform.IsWin)
|
|
|
|
|
{
|
|
|
|
|
if (UseNewDSM) { return NativeMethods.DsmWinNew(origin, IntPtr.Zero, DataGroups.Control, DataArgumentType.Identity, msg, data); }
|
|
|
|
|
if (Platform.UseNewDSM) { return NativeMethods.DsmWinNew(origin, IntPtr.Zero, DataGroups.Control, DataArgumentType.Identity, msg, data); }
|
|
|
|
|
else { return NativeMethods.DsmWinOld(origin, IntPtr.Zero, DataGroups.Control, DataArgumentType.Identity, msg, data); }
|
|
|
|
|
}
|
|
|
|
|
else if (IsLinux)
|
|
|
|
|
else if (Platform.IsLinux)
|
|
|
|
|
{
|
|
|
|
|
return NativeMethods.DsmLinux(origin, IntPtr.Zero, DataGroups.Control, DataArgumentType.Identity, msg, data);
|
|
|
|
|
}
|
|
|
|
@@ -275,12 +246,12 @@ namespace NTwain.Triplets
|
|
|
|
|
Message msg,
|
|
|
|
|
TWPassThru data)
|
|
|
|
|
{
|
|
|
|
|
if (IsWin)
|
|
|
|
|
if (Platform.IsWin)
|
|
|
|
|
{
|
|
|
|
|
if (UseNewDSM) { return NativeMethods.DsmWinNew(origin, destination, DataGroups.Control, DataArgumentType.PassThru, msg, data); }
|
|
|
|
|
if (Platform.UseNewDSM) { return NativeMethods.DsmWinNew(origin, destination, DataGroups.Control, DataArgumentType.PassThru, msg, data); }
|
|
|
|
|
else { return NativeMethods.DsmWinOld(origin, destination, DataGroups.Control, DataArgumentType.PassThru, msg, data); }
|
|
|
|
|
}
|
|
|
|
|
else if (IsLinux)
|
|
|
|
|
else if (Platform.IsLinux)
|
|
|
|
|
{
|
|
|
|
|
return NativeMethods.DsmLinux(origin, destination, DataGroups.Control, DataArgumentType.PassThru, msg, data);
|
|
|
|
|
}
|
|
|
|
@@ -294,12 +265,12 @@ namespace NTwain.Triplets
|
|
|
|
|
Message msg,
|
|
|
|
|
TWPendingXfers data)
|
|
|
|
|
{
|
|
|
|
|
if (IsWin)
|
|
|
|
|
if (Platform.IsWin)
|
|
|
|
|
{
|
|
|
|
|
if (UseNewDSM) { return NativeMethods.DsmWinNew(origin, destination, DataGroups.Control, DataArgumentType.PendingXfers, msg, data); }
|
|
|
|
|
if (Platform.UseNewDSM) { return NativeMethods.DsmWinNew(origin, destination, DataGroups.Control, DataArgumentType.PendingXfers, msg, data); }
|
|
|
|
|
else { return NativeMethods.DsmWinOld(origin, destination, DataGroups.Control, DataArgumentType.PendingXfers, msg, data); }
|
|
|
|
|
}
|
|
|
|
|
else if (IsLinux)
|
|
|
|
|
else if (Platform.IsLinux)
|
|
|
|
|
{
|
|
|
|
|
return NativeMethods.DsmLinux(origin, destination, DataGroups.Control, DataArgumentType.PendingXfers, msg, data);
|
|
|
|
|
}
|
|
|
|
@@ -313,12 +284,12 @@ namespace NTwain.Triplets
|
|
|
|
|
Message msg,
|
|
|
|
|
TWSetupFileXfer data)
|
|
|
|
|
{
|
|
|
|
|
if (IsWin)
|
|
|
|
|
if (Platform.IsWin)
|
|
|
|
|
{
|
|
|
|
|
if (UseNewDSM) { return NativeMethods.DsmWinNew(origin, destination, DataGroups.Control, DataArgumentType.SetupFileXfer, msg, data); }
|
|
|
|
|
if (Platform.UseNewDSM) { return NativeMethods.DsmWinNew(origin, destination, DataGroups.Control, DataArgumentType.SetupFileXfer, msg, data); }
|
|
|
|
|
else { return NativeMethods.DsmWinOld(origin, destination, DataGroups.Control, DataArgumentType.SetupFileXfer, msg, data); }
|
|
|
|
|
}
|
|
|
|
|
else if (IsLinux)
|
|
|
|
|
else if (Platform.IsLinux)
|
|
|
|
|
{
|
|
|
|
|
return NativeMethods.DsmLinux(origin, destination, DataGroups.Control, DataArgumentType.SetupFileXfer, msg, data);
|
|
|
|
|
}
|
|
|
|
@@ -332,12 +303,12 @@ namespace NTwain.Triplets
|
|
|
|
|
Message msg,
|
|
|
|
|
TWSetupMemXfer data)
|
|
|
|
|
{
|
|
|
|
|
if (IsWin)
|
|
|
|
|
if (Platform.IsWin)
|
|
|
|
|
{
|
|
|
|
|
if (UseNewDSM) { return NativeMethods.DsmWinNew(origin, destination, DataGroups.Control, DataArgumentType.SetupMemXfer, msg, data); }
|
|
|
|
|
if (Platform.UseNewDSM) { return NativeMethods.DsmWinNew(origin, destination, DataGroups.Control, DataArgumentType.SetupMemXfer, msg, data); }
|
|
|
|
|
else { return NativeMethods.DsmWinOld(origin, destination, DataGroups.Control, DataArgumentType.SetupMemXfer, msg, data); }
|
|
|
|
|
}
|
|
|
|
|
else if (IsLinux)
|
|
|
|
|
else if (Platform.IsLinux)
|
|
|
|
|
{
|
|
|
|
|
return NativeMethods.DsmLinux(origin, destination, DataGroups.Control, DataArgumentType.SetupMemXfer, msg, data);
|
|
|
|
|
}
|
|
|
|
@@ -351,12 +322,12 @@ namespace NTwain.Triplets
|
|
|
|
|
Message msg,
|
|
|
|
|
TWStatusUtf8 data)
|
|
|
|
|
{
|
|
|
|
|
if (IsWin)
|
|
|
|
|
if (Platform.IsWin)
|
|
|
|
|
{
|
|
|
|
|
if (UseNewDSM) { return NativeMethods.DsmWinNew(origin, destination, DataGroups.Control, DataArgumentType.StatusUtf8, msg, data); }
|
|
|
|
|
if (Platform.UseNewDSM) { return NativeMethods.DsmWinNew(origin, destination, DataGroups.Control, DataArgumentType.StatusUtf8, msg, data); }
|
|
|
|
|
else { return NativeMethods.DsmWinOld(origin, destination, DataGroups.Control, DataArgumentType.StatusUtf8, msg, data); }
|
|
|
|
|
}
|
|
|
|
|
else if (IsLinux)
|
|
|
|
|
else if (Platform.IsLinux)
|
|
|
|
|
{
|
|
|
|
|
return NativeMethods.DsmLinux(origin, destination, DataGroups.Control, DataArgumentType.StatusUtf8, msg, data);
|
|
|
|
|
}
|
|
|
|
@@ -370,12 +341,12 @@ namespace NTwain.Triplets
|
|
|
|
|
Message msg,
|
|
|
|
|
TWUserInterface data)
|
|
|
|
|
{
|
|
|
|
|
if (IsWin)
|
|
|
|
|
if (Platform.IsWin)
|
|
|
|
|
{
|
|
|
|
|
if (UseNewDSM) { return NativeMethods.DsmWinNew(origin, destination, DataGroups.Control, DataArgumentType.UserInterface, msg, data); }
|
|
|
|
|
if (Platform.UseNewDSM) { return NativeMethods.DsmWinNew(origin, destination, DataGroups.Control, DataArgumentType.UserInterface, msg, data); }
|
|
|
|
|
else { return NativeMethods.DsmWinOld(origin, destination, DataGroups.Control, DataArgumentType.UserInterface, msg, data); }
|
|
|
|
|
}
|
|
|
|
|
else if (IsLinux)
|
|
|
|
|
else if (Platform.IsLinux)
|
|
|
|
|
{
|
|
|
|
|
return NativeMethods.DsmLinux(origin, destination, DataGroups.Control, DataArgumentType.UserInterface, msg, data);
|
|
|
|
|
}
|
|
|
|
@@ -389,12 +360,12 @@ namespace NTwain.Triplets
|
|
|
|
|
Message msg,
|
|
|
|
|
TWCieColor data)
|
|
|
|
|
{
|
|
|
|
|
if (IsWin)
|
|
|
|
|
if (Platform.IsWin)
|
|
|
|
|
{
|
|
|
|
|
if (UseNewDSM) { return NativeMethods.DsmWinNew(origin, destination, DataGroups.Image, DataArgumentType.CieColor, msg, data); }
|
|
|
|
|
if (Platform.UseNewDSM) { return NativeMethods.DsmWinNew(origin, destination, DataGroups.Image, DataArgumentType.CieColor, msg, data); }
|
|
|
|
|
else { return NativeMethods.DsmWinOld(origin, destination, DataGroups.Image, DataArgumentType.CieColor, msg, data); }
|
|
|
|
|
}
|
|
|
|
|
else if (IsLinux)
|
|
|
|
|
else if (Platform.IsLinux)
|
|
|
|
|
{
|
|
|
|
|
return NativeMethods.DsmLinux(origin, destination, DataGroups.Image, DataArgumentType.CieColor, msg, data);
|
|
|
|
|
}
|
|
|
|
@@ -408,12 +379,12 @@ namespace NTwain.Triplets
|
|
|
|
|
Message msg,
|
|
|
|
|
TWExtImageInfo data)
|
|
|
|
|
{
|
|
|
|
|
if (IsWin)
|
|
|
|
|
if (Platform.IsWin)
|
|
|
|
|
{
|
|
|
|
|
if (UseNewDSM) { return NativeMethods.DsmWinNew(origin, destination, DataGroups.Image, DataArgumentType.ExtImageInfo, msg, data); }
|
|
|
|
|
if (Platform.UseNewDSM) { return NativeMethods.DsmWinNew(origin, destination, DataGroups.Image, DataArgumentType.ExtImageInfo, msg, data); }
|
|
|
|
|
else { return NativeMethods.DsmWinOld(origin, destination, DataGroups.Image, DataArgumentType.ExtImageInfo, msg, data); }
|
|
|
|
|
}
|
|
|
|
|
else if (IsLinux)
|
|
|
|
|
else if (Platform.IsLinux)
|
|
|
|
|
{
|
|
|
|
|
return NativeMethods.DsmLinux(origin, destination, DataGroups.Image, DataArgumentType.ExtImageInfo, msg, data);
|
|
|
|
|
}
|
|
|
|
@@ -426,12 +397,12 @@ namespace NTwain.Triplets
|
|
|
|
|
Message msg,
|
|
|
|
|
TWFilter data)
|
|
|
|
|
{
|
|
|
|
|
if (IsWin)
|
|
|
|
|
if (Platform.IsWin)
|
|
|
|
|
{
|
|
|
|
|
if (UseNewDSM) { return NativeMethods.DsmWinNew(origin, destination, DataGroups.Image, DataArgumentType.Filter, msg, data); }
|
|
|
|
|
if (Platform.UseNewDSM) { return NativeMethods.DsmWinNew(origin, destination, DataGroups.Image, DataArgumentType.Filter, msg, data); }
|
|
|
|
|
else { return NativeMethods.DsmWinOld(origin, destination, DataGroups.Image, DataArgumentType.Filter, msg, data); }
|
|
|
|
|
}
|
|
|
|
|
else if (IsLinux)
|
|
|
|
|
else if (Platform.IsLinux)
|
|
|
|
|
{
|
|
|
|
|
return NativeMethods.DsmLinux(origin, destination, DataGroups.Image, DataArgumentType.Filter, msg, data);
|
|
|
|
|
}
|
|
|
|
@@ -444,12 +415,12 @@ namespace NTwain.Triplets
|
|
|
|
|
Message msg,
|
|
|
|
|
TWGrayResponse data)
|
|
|
|
|
{
|
|
|
|
|
if (IsWin)
|
|
|
|
|
if (Platform.IsWin)
|
|
|
|
|
{
|
|
|
|
|
if (UseNewDSM) { return NativeMethods.DsmWinNew(origin, destination, DataGroups.Image, DataArgumentType.GrayResponse, msg, data); }
|
|
|
|
|
if (Platform.UseNewDSM) { return NativeMethods.DsmWinNew(origin, destination, DataGroups.Image, DataArgumentType.GrayResponse, msg, data); }
|
|
|
|
|
else { return NativeMethods.DsmWinOld(origin, destination, DataGroups.Image, DataArgumentType.GrayResponse, msg, data); }
|
|
|
|
|
}
|
|
|
|
|
else if (IsLinux)
|
|
|
|
|
else if (Platform.IsLinux)
|
|
|
|
|
{
|
|
|
|
|
return NativeMethods.DsmLinux(origin, destination, DataGroups.Image, DataArgumentType.GrayResponse, msg, data);
|
|
|
|
|
}
|
|
|
|
@@ -463,12 +434,12 @@ namespace NTwain.Triplets
|
|
|
|
|
Message msg,
|
|
|
|
|
TWImageInfo data)
|
|
|
|
|
{
|
|
|
|
|
if (IsWin)
|
|
|
|
|
if (Platform.IsWin)
|
|
|
|
|
{
|
|
|
|
|
if (UseNewDSM) { return NativeMethods.DsmWinNew(origin, destination, DataGroups.Image, DataArgumentType.ImageInfo, msg, data); }
|
|
|
|
|
if (Platform.UseNewDSM) { return NativeMethods.DsmWinNew(origin, destination, DataGroups.Image, DataArgumentType.ImageInfo, msg, data); }
|
|
|
|
|
else { return NativeMethods.DsmWinOld(origin, destination, DataGroups.Image, DataArgumentType.ImageInfo, msg, data); }
|
|
|
|
|
}
|
|
|
|
|
else if (IsLinux)
|
|
|
|
|
else if (Platform.IsLinux)
|
|
|
|
|
{
|
|
|
|
|
return NativeMethods.DsmLinux(origin, destination, DataGroups.Image, DataArgumentType.ImageInfo, msg, data);
|
|
|
|
|
}
|
|
|
|
@@ -482,12 +453,12 @@ namespace NTwain.Triplets
|
|
|
|
|
Message msg,
|
|
|
|
|
TWImageLayout data)
|
|
|
|
|
{
|
|
|
|
|
if (IsWin)
|
|
|
|
|
if (Platform.IsWin)
|
|
|
|
|
{
|
|
|
|
|
if (UseNewDSM) { return NativeMethods.DsmWinNew(origin, destination, DataGroups.Image, DataArgumentType.ImageLayout, msg, data); }
|
|
|
|
|
if (Platform.UseNewDSM) { return NativeMethods.DsmWinNew(origin, destination, DataGroups.Image, DataArgumentType.ImageLayout, msg, data); }
|
|
|
|
|
else { return NativeMethods.DsmWinOld(origin, destination, DataGroups.Image, DataArgumentType.ImageLayout, msg, data); }
|
|
|
|
|
}
|
|
|
|
|
else if (IsLinux)
|
|
|
|
|
else if (Platform.IsLinux)
|
|
|
|
|
{
|
|
|
|
|
return NativeMethods.DsmLinux(origin, destination, DataGroups.Image, DataArgumentType.ImageLayout, msg, data);
|
|
|
|
|
}
|
|
|
|
@@ -501,12 +472,12 @@ namespace NTwain.Triplets
|
|
|
|
|
Message msg,
|
|
|
|
|
TWImageMemXfer data)
|
|
|
|
|
{
|
|
|
|
|
if (IsWin)
|
|
|
|
|
if (Platform.IsWin)
|
|
|
|
|
{
|
|
|
|
|
if (UseNewDSM) { return NativeMethods.DsmWinNew(origin, destination, DataGroups.Image, DataArgumentType.ImageMemXfer, msg, data); }
|
|
|
|
|
if (Platform.UseNewDSM) { return NativeMethods.DsmWinNew(origin, destination, DataGroups.Image, DataArgumentType.ImageMemXfer, msg, data); }
|
|
|
|
|
else { return NativeMethods.DsmWinOld(origin, destination, DataGroups.Image, DataArgumentType.ImageMemXfer, msg, data); }
|
|
|
|
|
}
|
|
|
|
|
else if (IsLinux)
|
|
|
|
|
else if (Platform.IsLinux)
|
|
|
|
|
{
|
|
|
|
|
return NativeMethods.DsmLinux(origin, destination, DataGroups.Image, DataArgumentType.ImageMemXfer, msg, data);
|
|
|
|
|
}
|
|
|
|
@@ -520,12 +491,12 @@ namespace NTwain.Triplets
|
|
|
|
|
Message msg,
|
|
|
|
|
TWJpegCompression data)
|
|
|
|
|
{
|
|
|
|
|
if (IsWin)
|
|
|
|
|
if (Platform.IsWin)
|
|
|
|
|
{
|
|
|
|
|
if (UseNewDSM) { return NativeMethods.DsmWinNew(origin, destination, DataGroups.Image, DataArgumentType.JpegCompression, msg, data); }
|
|
|
|
|
if (Platform.UseNewDSM) { return NativeMethods.DsmWinNew(origin, destination, DataGroups.Image, DataArgumentType.JpegCompression, msg, data); }
|
|
|
|
|
else { return NativeMethods.DsmWinOld(origin, destination, DataGroups.Image, DataArgumentType.JpegCompression, msg, data); }
|
|
|
|
|
}
|
|
|
|
|
else if (IsLinux)
|
|
|
|
|
else if (Platform.IsLinux)
|
|
|
|
|
{
|
|
|
|
|
return NativeMethods.DsmLinux(origin, destination, DataGroups.Image, DataArgumentType.JpegCompression, msg, data);
|
|
|
|
|
}
|
|
|
|
@@ -539,12 +510,12 @@ namespace NTwain.Triplets
|
|
|
|
|
Message msg,
|
|
|
|
|
TWPalette8 data)
|
|
|
|
|
{
|
|
|
|
|
if (IsWin)
|
|
|
|
|
if (Platform.IsWin)
|
|
|
|
|
{
|
|
|
|
|
if (UseNewDSM) { return NativeMethods.DsmWinNew(origin, destination, DataGroups.Image, DataArgumentType.Palette8, msg, data); }
|
|
|
|
|
if (Platform.UseNewDSM) { return NativeMethods.DsmWinNew(origin, destination, DataGroups.Image, DataArgumentType.Palette8, msg, data); }
|
|
|
|
|
else { return NativeMethods.DsmWinOld(origin, destination, DataGroups.Image, DataArgumentType.Palette8, msg, data); }
|
|
|
|
|
}
|
|
|
|
|
else if (IsLinux)
|
|
|
|
|
else if (Platform.IsLinux)
|
|
|
|
|
{
|
|
|
|
|
return NativeMethods.DsmLinux(origin, destination, DataGroups.Image, DataArgumentType.Palette8, msg, data);
|
|
|
|
|
}
|
|
|
|
@@ -558,12 +529,12 @@ namespace NTwain.Triplets
|
|
|
|
|
Message msg,
|
|
|
|
|
TWRgbResponse data)
|
|
|
|
|
{
|
|
|
|
|
if (IsWin)
|
|
|
|
|
if (Platform.IsWin)
|
|
|
|
|
{
|
|
|
|
|
if (UseNewDSM) { return NativeMethods.DsmWinNew(origin, destination, DataGroups.Image, DataArgumentType.RgbResponse, msg, data); }
|
|
|
|
|
if (Platform.UseNewDSM) { return NativeMethods.DsmWinNew(origin, destination, DataGroups.Image, DataArgumentType.RgbResponse, msg, data); }
|
|
|
|
|
else { return NativeMethods.DsmWinOld(origin, destination, DataGroups.Image, DataArgumentType.RgbResponse, msg, data); }
|
|
|
|
|
}
|
|
|
|
|
else if (IsLinux)
|
|
|
|
|
else if (Platform.IsLinux)
|
|
|
|
|
{
|
|
|
|
|
return NativeMethods.DsmLinux(origin, destination, DataGroups.Image, DataArgumentType.RgbResponse, msg, data);
|
|
|
|
|
}
|
|
|
|
@@ -577,12 +548,12 @@ namespace NTwain.Triplets
|
|
|
|
|
Message msg,
|
|
|
|
|
TWStatus data)
|
|
|
|
|
{
|
|
|
|
|
if (IsWin)
|
|
|
|
|
if (Platform.IsWin)
|
|
|
|
|
{
|
|
|
|
|
if (UseNewDSM) { return NativeMethods.DsmWinNew(origin, destination, DataGroups.Control, DataArgumentType.Status, msg, data); }
|
|
|
|
|
if (Platform.UseNewDSM) { return NativeMethods.DsmWinNew(origin, destination, DataGroups.Control, DataArgumentType.Status, msg, data); }
|
|
|
|
|
else { return NativeMethods.DsmWinOld(origin, destination, DataGroups.Control, DataArgumentType.Status, msg, data); }
|
|
|
|
|
}
|
|
|
|
|
else if (IsLinux)
|
|
|
|
|
else if (Platform.IsLinux)
|
|
|
|
|
{
|
|
|
|
|
return NativeMethods.DsmLinux(origin, destination, DataGroups.Control, DataArgumentType.Status, msg, data);
|
|
|
|
|
}
|
|
|
|
@@ -597,12 +568,12 @@ namespace NTwain.Triplets
|
|
|
|
|
Message msg,
|
|
|
|
|
ref TWMemory data)
|
|
|
|
|
{
|
|
|
|
|
if (IsWin)
|
|
|
|
|
if (Platform.IsWin)
|
|
|
|
|
{
|
|
|
|
|
if (UseNewDSM) { return NativeMethods.DsmWinNew(origin, destination, DataGroups.Control, dat, msg, ref data); }
|
|
|
|
|
if (Platform.UseNewDSM) { return NativeMethods.DsmWinNew(origin, destination, DataGroups.Control, dat, msg, ref data); }
|
|
|
|
|
else { return NativeMethods.DsmWinOld(origin, destination, DataGroups.Control, dat, msg, ref data); }
|
|
|
|
|
}
|
|
|
|
|
else if (IsLinux)
|
|
|
|
|
else if (Platform.IsLinux)
|
|
|
|
|
{
|
|
|
|
|
return NativeMethods.DsmLinux(origin, destination, DataGroups.Control, dat, msg, ref data);
|
|
|
|
|
}
|
|
|
|
|