public TwainCommand PassMessage(ref Message m) { if (srcds.Id == IntPtr.Zero) { return(TwainCommand.Not); } int pos = GetMessagePos(); winmsg.hwnd = m.HWnd; winmsg.message = m.Msg; winmsg.wParam = m.WParam; winmsg.lParam = m.LParam; winmsg.time = GetMessageTime(); winmsg.x = (short)pos; winmsg.y = (short)(pos >> 16); Marshal.StructureToPtr(winmsg, evtmsg.EventPtr, false); evtmsg.Message = 0; TwReturnCode returnCode = DSevent(appid, srcds, TwDG.Control, TwData.Event, TwMessageCode.ProcessEvent, ref evtmsg); if (returnCode == TwReturnCode.NotDSEvent) { return(TwainCommand.Not); } if (evtmsg.Message == (short)TwMessageCode.XFerReady) { return(TwainCommand.TransferReady); } if (evtmsg.Message == (short)TwMessageCode.CloseDSReq) { return(TwainCommand.CloseRequest); } if (evtmsg.Message == (short)TwMessageCode.CloseDSOK) { return(TwainCommand.CloseOk); } if (evtmsg.Message == (short)TwMessageCode.DeviceEvent) { return(TwainCommand.DeviceEvent); } return(TwainCommand.Null); }
public bool Init(IntPtr hwndp) { Finish(); TwReturnCode returnCode = DSMparent(appid, IntPtr.Zero, TwDG.Control, TwData.Parent, TwMessageCode.OpenDSM, ref hwndp); if (returnCode == TwReturnCode.Success) { returnCode = DSMident(appid, IntPtr.Zero, TwDG.Control, TwData.Identity, TwMessageCode.GetFirst, srcds); if (returnCode == TwReturnCode.Success) { hwnd = hwndp; return(true); } else { returnCode = DSMparent(appid, IntPtr.Zero, TwDG.Control, TwData.Parent, TwMessageCode.CloseDSM, ref hwndp); return(false); } } return(false); }
public bool GetNext() { TwReturnCode returnCode = DSMident(appid, IntPtr.Zero, TwDG.Control, TwData.Identity, TwMessageCode.GetNext, srcds); return(returnCode == TwReturnCode.Success); }