protected virtual void Dispose(bool disposing)
        {
            Marshal.FreeHGlobal(_eventMessage.EventPtr);

            if (disposing)
            {
                DataSource.Dispose();

                IntPtr windowHandle = _messageHook.WindowHandle;

                if (ApplicationId.Id != 0)
                {
                    // Close down the data source manager
                    Twain32Native.DsmParent(
                        ApplicationId,
                        IntPtr.Zero,
                        DataGroup.Control,
                        DataArgumentType.Parent,
                        Message.CloseDSM,
                        ref windowHandle);
                }

                ApplicationId.Id = 0;
            }
        }
        protected virtual void Dispose(bool disposing)
        {
            Marshal.FreeHGlobal(_eventMessage.EventPtr);

            if (disposing)
            {
                DataSource.Dispose();

                IntPtr windowHandle = _messageHook.WindowHandle;

                if (ApplicationId.Id != 0)
                {
                    // Close down the data source manager
                    var result = Twain32Native.DsmParent(
                        ApplicationId,
                        IntPtr.Zero,
                        DataGroup.Control,
                        DataArgumentType.Parent,
                        Message.CloseDSM,
                        ref windowHandle);

                    _log.Debug(string.Format("CloseDSM, result: {0}", result));

                    if (result != TwainResult.Failure)
                    {
                        _twainState = TwainState.SourceManagerLoaded;
                    }
                }

                ApplicationId.Id = 0;
            }
        }
 public void SelectSource(DataSource dataSource)
 {
     DataSource.Dispose();
     DataSource = dataSource;
 }
 public void SelectSource()
 {
     DataSource.Dispose();
     DataSource = DataSource.UserSelected(ApplicationId, _messageHook);
 }
Exemple #5
0
 public void SetScanSource(string sourceProductName)
 {
     DataSource.Dispose();
     DataSource = DataSource.GetSource(sourceProductName, ApplicationId, _messageHook);
 }