mirror of
https://github.com/soukoku/ntwain.git
synced 2025-08-20 09:15:24 +08:00
* Added my old struct size tester cpp proj. * Added transfercanceled event like PR #35. * Renamed datatransferred event. * Idea for getting EXT_IMAGEINFO in transferred event. * Renamed twain const and platform classes to shorter name. * First attempt at reading TW_INFO, probably not correct.
60 lines
1.9 KiB
C#
60 lines
1.9 KiB
C#
using NTwain.Data;
|
|
using NTwain.DSM;
|
|
|
|
namespace NTwain.Triplets.ImageDATs
|
|
{
|
|
/// <summary>
|
|
/// Contains calls used with <see cref="DG.IMAGE"/> and <see cref="DAT.IMAGELAYOUT"/>.
|
|
/// </summary>
|
|
public class ImageLayout
|
|
{
|
|
public TWRC Get(ref TW_IDENTITY_LEGACY app, ref TW_IDENTITY_LEGACY ds, out TW_IMAGELAYOUT data)
|
|
{
|
|
data = default;
|
|
return DoIt(ref app, ref ds, MSG.GET, ref data);
|
|
}
|
|
public TWRC GetDefault(ref TW_IDENTITY_LEGACY app, ref TW_IDENTITY_LEGACY ds, out TW_IMAGELAYOUT data)
|
|
{
|
|
data = default;
|
|
return DoIt(ref app, ref ds, MSG.GETDEFAULT, ref data);
|
|
}
|
|
public TWRC Set(ref TW_IDENTITY_LEGACY app, ref TW_IDENTITY_LEGACY ds, ref TW_IMAGELAYOUT data)
|
|
=> DoIt(ref app, ref ds, MSG.SET, ref data);
|
|
public TWRC Reset(ref TW_IDENTITY_LEGACY app, ref TW_IDENTITY_LEGACY ds, out TW_IMAGELAYOUT data)
|
|
{
|
|
data = default;
|
|
return DoIt(ref app, ref ds, MSG.RESET, ref data);
|
|
}
|
|
|
|
static TWRC DoIt(ref TW_IDENTITY_LEGACY app, ref TW_IDENTITY_LEGACY ds, MSG msg, ref TW_IMAGELAYOUT data)
|
|
{
|
|
var rc = TWRC.FAILURE;
|
|
if (TWPlatform.IsWindows)
|
|
{
|
|
if (TWPlatform.Is32bit && TWPlatform.PreferLegacyDSM)
|
|
{
|
|
rc = WinLegacyDSM.DSM_Entry(ref app, ref ds, DG.IMAGE, DAT.IMAGELAYOUT, msg, ref data);
|
|
}
|
|
else
|
|
{
|
|
rc = WinNewDSM.DSM_Entry(ref app, ref ds, DG.IMAGE, DAT.IMAGELAYOUT, msg, ref data);
|
|
}
|
|
}
|
|
else if (TWPlatform.IsMacOSX)
|
|
{
|
|
TW_IDENTITY_MACOSX app2 = app;
|
|
TW_IDENTITY_MACOSX ds2 = ds;
|
|
if (TWPlatform.PreferLegacyDSM)
|
|
{
|
|
rc = OSXLegacyDSM.DSM_Entry(ref app2, ref ds2, DG.IMAGE, DAT.IMAGELAYOUT, msg, ref data);
|
|
}
|
|
else
|
|
{
|
|
rc = OSXNewDSM.DSM_Entry(ref app2, ref ds2, DG.IMAGE, DAT.IMAGELAYOUT, msg, ref data);
|
|
}
|
|
}
|
|
return rc;
|
|
}
|
|
}
|
|
}
|