コード例 #1
0
ファイル: TwainLib.cs プロジェクト: yiqideren/naps2
        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);
        }
コード例 #2
0
ファイル: TwainLib.cs プロジェクト: yiqideren/naps2
        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);
        }
コード例 #3
0
ファイル: TwainLib.cs プロジェクト: yiqideren/naps2
        public bool GetNext()
        {
            TwReturnCode returnCode = DSMident(appid, IntPtr.Zero, TwDG.Control, TwData.Identity, TwMessageCode.GetNext, srcds);

            return(returnCode == TwReturnCode.Success);
        }