using NTwain.Data;
using System;
using System.Collections.Generic;
namespace NTwain
{
///
/// Represents a TWAIN data source.
///
public interface IDataSource : ICapControl
{
///
/// Gets the source's product name.
///
///
/// The name.
///
string Name { get; }
///
/// Gets the supported data group.
///
///
/// The data group.
///
DataGroups DataGroup { get; }
///
/// Gets the source's manufacturer name.
///
///
/// The manufacturer.
///
string Manufacturer { get; }
///
/// Gets the source's product family.
///
///
/// The product family.
///
string ProductFamily { get; }
///
/// Gets the supported TWAIN protocol version.
///
///
/// The protocol version.
///
Version ProtocolVersion { get; }
///
/// Gets the supported caps for this source.
///
///
/// The supported caps.
///
IList SupportedCaps { get; }
///
/// Gets the source's version information.
///
///
/// The version.
///
TWVersion Version { get; }
///
/// Gets a value indicating whether this data source has been opened.
///
///
/// true if this data source is open; otherwise, false.
///
bool IsOpen { get; }
///
/// Opens the source for capability negotiation.
///
///
ReturnCode Open();
///
/// Closes the source.
///
///
ReturnCode Close();
///
/// Enables the source to start transferring.
///
/// The mode.
/// if set to true any driver UI will display as modal.
/// The window handle if modal.
///
ReturnCode Enable(SourceEnableMode mode, bool modal, IntPtr windowHandle);
///
/// Gets the source status. Only call this at state 4 or higher.
///
///
TWStatus GetStatus();
///
/// Gets the source status. Only call this at state 4 or higher.
///
///
TWStatusUtf8 GetStatusUtf8();
}
}