using NTwain.Data;
using NTwain.Internals;
namespace NTwain.Triplets
{
sealed class Event : OpBase
{
internal Event(ITwainStateInternal session) : base(session) { }
///
/// This operation supports the distribution of events from the application to Sources so that the
/// Source can maintain its user interface and return messages to the application. Once the
/// application has enabled the Source, it must immediately begin sending to the Source all events
/// that enter the application’s main event loop. This allows the Source to update its user interface
/// in real-time and to return messages to the application which cause state transitions. Even if the
/// application overrides the Source’s user interface, it must forward all events once the Source has
/// been enabled. The Source will tell the application whether or not each event belongs to the
/// Source.
///
/// The event.
///
public ReturnCode ProcessEvent(TWEvent theEvent)
{
Session.VerifyState(4, 7, DataGroups.Control, DataArgumentType.Event, Message.ProcessEvent);
return Dsm.DsmEntry(Session.AppId, Session.SourceId, Message.ProcessEvent, theEvent);
}
}
}