Exemplo n.º 1
0
        public void Close()
        {
            if (SourceId.Id != 0)
            {
                UserInterface userInterface = new UserInterface();

                TwainResult result = Twain32Native.DsUserInterface(
                    _applicationId,
                    SourceId,
                    DataGroup.Control,
                    DataArgumentType.UserInterface,
                    Message.DisableDS,
                    userInterface);

                if (result != TwainResult.Failure)
                {
                    result = Twain32Native.DsmIdentity(
                        _applicationId,
                        IntPtr.Zero,
                        DataGroup.Control,
                        DataArgumentType.Identity,
                        Message.CloseDS,
                        SourceId);
                }
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// 接下來就交給source控制這個流程。MSG_XFERREADY, MSG_CLOSEDSREQ, or MSG_CLOSEDSOK messages會傳回來,其中MSG_XFERREADY代表source準備好從state 5→6。
        /// </summary>
        /// <param name="settings"></param>
        /// <returns></returns>
        public bool Enable(ScanSettings settings)
        {
            UserInterface ui = new UserInterface();

            ui.ShowUI     = (settings.ShowTwainUI ? TwainBool.True : TwainBool.False);
            ui.ModalUI    = TwainBool.False;
            ui.ParentHand = _messageHook.WindowHandle;

            var result = Twain32Native.DsUserInterface(
                _applicationId,
                SourceId,
                DataGroup.Control,
                DataArgumentType.UserInterface,
                Message.EnableDS,
                ui);

            if (result != TwainResult.Success)
            {
                Console.WriteLine("Enable() error! return=" + result);
                Logger.WriteLog(LOG_LEVEL.LL_SUB_FUNC, "Enable() error! return=" + result);
                Dispose();
                return(false);
            }
            return(true);
        }
Exemplo n.º 3
0
        public void Close()
        {
            if (SourceId.Id != 0)
            {
                try
                {
                    UserInterface userInterface = new UserInterface();

                    TwainResult result = Twain32Native.DsUserInterface(
                        _applicationId,
                        SourceId,
                        DataGroup.Control,
                        DataArgumentType.UserInterface,
                        Message.DisableDS,
                        userInterface);

                    if (result != TwainResult.Failure)
                    {
                        result = Twain32Native.DsmIdentity(
                            _applicationId,
                            IntPtr.Zero,
                            DataGroup.Control,
                            DataArgumentType.Identity,
                            Message.CloseDS,
                            SourceId);
                    }
                }
                catch
                {
                    // ignore this is bypass an error that if trigerd needs the whole twain classto be reinitialised
                }
            }
        }
Exemplo n.º 4
0
        public bool Disable()
        {
            if (SourceState != null && SourceState >= TwainState.SourceEnabled)
            {
                if (SourceId.Id != 0)
                {
                    var userInterface = new UserInterface();

                    TwainResult result = Twain32Native.DsUserInterface(
                        _applicationId,
                        SourceId,
                        DataGroup.Control,
                        DataArgumentType.UserInterface,
                        Message.DisableDS,
                        userInterface);


                    if (result != TwainResult.Failure)
                    {
                        _log.Debug(string.Format("DisableDS, result: {0}", result));
                        SourceState = TwainState.SourceOpen;
                        return(true);
                    }
                    var condition = DataSourceManager.GetConditionCode(_applicationId, SourceId);
                    _log.Debug(string.Format("DisableDS, result: {0}, conditionCode: {1}", result, condition));
                    return(false);
                }
                return(false);
            }

            return(false);
        }
Exemplo n.º 5
0
        public bool Enable(ScanSettings settings)
        {
            var ui = new UserInterface();

            ui.ShowUI     = (short)(settings.ShowTwainUI ? 1 : 0);
            ui.ModalUI    = 0;
            ui.ParentHand = _messageHook.WindowHandle;

            var result = Twain32Native.DsUserInterface(
                _applicationId,
                SourceId,
                DataGroup.Control,
                DataArgumentType.UserInterface,
                Message.EnableDS,
                ui);

            _log.Debug(string.Format("EnableDS, result: {0}", result));
            if (result != TwainResult.Success)
            {
                Dispose();
                return(false);
            }

            SourceState = TwainState.SourceEnabled;
            return(true);
        }
Exemplo n.º 6
0
        public bool Enable(ScanSettings settings)
        {
            UserInterface ui = new UserInterface();

            ui.ShowUI     = (short)(settings.ShowTwainUI ? 1 : 0);
            ui.ModalUI    = 1;
            ui.ParentHand = _messageHook.WindowHandle;

            var result = Twain32Native.DsUserInterface(
                _applicationId,
                SourceId,
                DataGroup.Control,
                DataArgumentType.UserInterface,
                Message.EnableDS,
                ui);

            if (result != TwainResult.Success)
            {
                Dispose();
                return(false);
            }
            return(true);
        }