Added local 2.5 dsm to samples in case system doesn't have it.

This commit is contained in:
Eugene Wang
2023-04-05 18:53:55 -04:00
parent 5fa6edab28
commit 513dc96f64
6 changed files with 53 additions and 1 deletions

View File

@@ -0,0 +1,37 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
namespace WinFormSample
{
/// <summary>
/// For demoing loading dsm from custom path in case
/// it's not installed on system and can't be placed
/// besides the exe.
/// </summary>
static class DsmLoader
{
static IntPtr __dllPtr;
public static bool TryUseCustomDSM()
{
if (__dllPtr == IntPtr.Zero)
{
var dll = Path.Combine(
Path.GetDirectoryName(Environment.ProcessPath ?? Assembly.GetExecutingAssembly().Location)!,
"platforms\\TWAINDSM.dll");
__dllPtr = LoadLibraryW(dll);
}
return __dllPtr != IntPtr.Zero;
}
[DllImport("kernel32", SetLastError = true)]
static extern IntPtr LoadLibraryW([MarshalAs(UnmanagedType.LPWStr)] string lpFileName);
}
}