using System;
namespace NTwain
{
    /// 
    /// Contains various platform requirements and conditions for TWAIN.
    /// 
    public interface IPlatformInfo
    {
        /// 
        /// Gets a value indicating whether the applicable TWAIN DSM library exists in the operating system.
        /// 
        /// 
        ///   true if the TWAIN DSM; otherwise, false.
        /// 
        bool DsmExists { get; }
        /// 
        /// Gets the expected TWAIN DSM dll path.
        /// 
        /// 
        /// The expected DSM path.
        /// 
        string ExpectedDsmPath { get; }
        /// 
        /// Gets a value indicating whether the application is running in 64-bit.
        /// 
        /// 
        /// true if the application is 64-bit; otherwise, false.
        /// 
        bool IsApp64Bit { get; }
        /// 
        /// Gets a value indicating whether this library is supported on current OS.
        /// Check the other platform properties to determine the reason if this is false.
        /// 
        /// 
        /// true if this library is supported; otherwise, false.
        /// 
        bool IsSupported { get; }
        /// 
        /// Gets the  for communicating with data sources.
        /// This should only be used when a  is open.
        /// 
        /// 
        /// The memory manager.
        /// 
        IMemoryManager MemoryManager { get; }
    }
}