链接: http: //www.codeproject.com/KB/dotnet/twaindotnet.aspx
我正在尝试为 TWAIN 的这个开源 .NET 实现创建一个包装类,但我无法理解它实际上是如何获取图像的。
我已经下载了源代码,在 GUI 中有一个名为 Acquire 的按钮。当我单击此按钮转到它的事件处理程序时,我找到了我假设获取图像的这段代码:
private void menuItemScan_Click(object sender, System.EventArgs e)
{
if (!msgfilter)
{
this.Enabled = false;
msgfilter = true;
Application.AddMessageFilter(this);
}
tw.Acquire();
}
如果我按照 Acquire() 方法查看它的内容,我会看到:
public void Acquire()
{
TwRC rc;
CloseSrc();
if (appid.Id == IntPtr.Zero)
{
Init(hwnd);
if (appid.Id == IntPtr.Zero)
return;
}
rc = DSMident(appid, IntPtr.Zero, TwDG.Control, TwDAT.Identity, TwMSG.OpenDS, srcds);
if (rc != TwRC.Success)
return;
TwCapability cap = new TwCapability(TwCap.XferCount, 1);
rc = DScap(appid, srcds, TwDG.Control, TwDAT.Capability, TwMSG.Set, cap);
if (rc != TwRC.Success)
{
CloseSrc();
return;
}
TwUserInterface guif = new TwUserInterface();
guif.ShowUI = 1;
guif.ModalUI = 1;
guif.ParentHand = hwnd;
rc = DSuserif(appid, srcds, TwDG.Control, TwDAT.UserInterface, TwMSG.EnableDS, guif);
if (rc != TwRC.Success)
{
CloseSrc();
return;
}
}
我不明白的是,具有“void”返回类型的方法实际上如何具有 return 语句。另外,它在哪里获取和返回图像?
任何人都可以帮忙吗?
我正在尝试创建一个有用的包装器并将其开源,因为就目前而言,在 C# 中扫描图像没有简单的拖放解决方案。
谢谢您的帮助!
编辑:感谢有关提前退货的帮助。直到!现在我很好奇应用程序如何让图像显示在表单上。
有什么指导吗?