mirror of
https://github.com/soukoku/ntwain.git
synced 2026-02-25 13:04:07 +08:00
Added local 2.5 dsm to samples in case system doesn't have it.
This commit is contained in:
37
samples/WinForm32/DsmLoader.cs
Normal file
37
samples/WinForm32/DsmLoader.cs
Normal 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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user