using System; namespace NTwain.Data { // these are from the corresponding twain.h sections /**************************************************************************** * Generic Constants * ****************************************************************************/ #region gen constants /// /// Indicates the type of container used in capability. /// Corresponds to TWON_* values. /// public enum ContainerType : ushort { Invalid = 0, /// /// The container is . /// Array = 3, /// /// The container is . /// Enum = 4, /// /// The container is . /// OneValue = 5, /// /// The container is . /// Range = 6, DontCare = TwainConst.DontCare16, } /// /// Flags used in . /// Corresponds to TWMF_* values. /// [Flags] public enum MemoryFlags : uint { Invalid = 0, AppOwns = 0x1, DsmOwns = 0x2, DSOwns = 0x4, Pointer = 0x8, Handle = 0x10 } /// /// The data types of item in TWAIN, used in the /// capability containers. /// Corresponds to TWTY_* values. /// public enum ItemType : ushort { /// /// Means Item is a an 8 bit value. /// Int8 = 0, /// /// Means Item is a 16 bit value. /// Int16 = 1, /// /// Means Item is a 32 bit value. /// Int32 = 2, /// /// Means Item is an unsigned 8 bit value. /// UInt8 = 3, /// /// Means Item is an unsigned 16 bit value. /// UInt16 = 4, /// /// Means Item is an unsigned 32 bit value. /// UInt32 = 5, /// /// Means Item is an unsigned 16 bit value (supposedly, YMMV). /// Bool = 6, /// /// Means Item is a . /// Fix32 = 7, /// /// Means Item is a . /// Frame = 8, /// /// Means Item is a 32 char string (max). /// String32 = 9, /// /// Means Item is a 64 char string (max). /// String64 = 0xa, /// /// Means Item is a 128 char string (max). /// String128 = 0xb, /// /// Means Item is a char string shorter than 255. /// String255 = 0xc, //String1024 = 0xd, //Unicode512 = 0xe, /// /// Means Item is a handle (pointer). /// Handle = 0xf } #endregion /**************************************************************************** * Capability Constants * ****************************************************************************/ #region cap constants /// /// CapAlarms values. /// Corresponds to TWAL_* values. /// public enum AlarmType : ushort { Alarm = 0, FeederError = 1, FeederWarning = 2, Barcode = 3, DoubleFeed = 4, Jam = 5, PatchCode = 6, Power = 7, Skew = 8 } /// /// ICapAutoSize values. /// Corresponds to TWAS_* values. /// public enum AutoSize : ushort { None = 0, Auto = 1, Current = 2 } /// /// The bar code’s orientation on the scanned image is described in /// reference to a Western-style interpretation of the image. /// Corresponds to TWBCOR_* values. /// public enum BarcodeRotation : uint { /// /// Normal reading orientation. /// Rot0 = 0, /// /// Rotated 90 degrees clockwise. /// Rot90 = 1, /// /// Rotated 180 degrees clockwise. /// Rot180 = 2, /// /// Rotated 270 degrees clockwise. /// Rot270 = 3, /// /// The orientation is not known. /// RotX = 4 } /// /// ICapBarcodeSearchMode values, /// ICapPatchCodeSearchMode values. /// Corresponds to TWBD_* values. /// public enum BarcodeDirection : ushort { Horz = 0, Vert = 1, HorzVert = 2, VertHorz = 3 } /// /// ICapBitOrder/ICapBitOrderCodes values. /// Corresponds to TWBO_* values. /// public enum BitOrder : ushort { LsbFirst = 0, MsbFirst = 1 } /// /// ICapAutoDiscardBlankPages values. /// Corresponds to TWBP_* values. /// public enum BlankPage : short { Invalid = 0, Disable = -2, Auto = -1 } /// /// Values for ICapBitDepthReduction. /// Corresponds to TWBR_* values. /// public enum BitDepthReduction : ushort { Threshold = 0, Halftone = 1, CustHalftone = 2, Diffusion = 3, DynamicThreashold = 4 } /// /// ICapBarcodeSearchPriorities values, /// ICapSupportedBarcodeTypes values. /// Corresponds to TWBT_* values. /// public enum BarcodeType : ushort { ThreeOfNine = 0, TwoOfFiveInterleaved = 1, TwoOfFiveNonInterleaved = 2, Code92 = 3, Code128 = 4, Ucc128 = 5, Codabar = 6, UpcA = 7, UpcE = 8, Ean8 = 9, Ean13 = 10, PostNet = 11, Pdf417 = 12, TwoOfFiveIndustrial = 13, TwoOfFiveMatrix = 14, TwoOfFiveDataLogic = 15, TwoOfFiveIata = 16, ThreeOfNineFullAscii = 17, CodabarWithStartStop = 18, MaxiCode = 19, QRCode = 20 } /// /// ICapCompression values. Allows the application and Source to identify which compression schemes they have in common /// for Buffered Memory and File transfers. Since only certain file formats support compression, this capability must be negotiated after /// setting the desired file format with ICAP_IMAGEFILEFORMAT. /// Corresponds to TWCP_* values. /// public enum CompressionType : ushort { /// /// All Sources must support this. /// None = 0, /// /// Can be used with TIFF or PICT /// PackBits = 1, /// /// From the CCITT specification (now ITU), intended for document images (can be used with TIFF). /// Group31D = 2, /// /// From the CCITT specification (now ITU), intended for document images (can be used with TIFF). /// Group31DEol = 3, /// /// From the CCITT specification (now ITU), intended for document images (can be used with TIFF). /// Group32D = 4, /// /// From the CCITT specification (now ITU), intended for document images (can be used with TIFF). /// Group4 = 5, /// /// Intended for the compression of color photographs (can be used with TIFF, JFIF or SPIFF). /// Jpeg = 6, /// /// A compression licensed by UNISYS (can be used with TIFF). /// Lzw = 7, /// /// Intended for bitonal and grayscale document images (can be used with TIFF or SPIFF). /// Jbig = 8, /// /// This compression can only be used if ICAP_IMAGEFILEFORMAT is set to TWFF_PNG. /// Png = 9, /// /// Can only be used if ICAP_IMAGEFILEFORMAT is set to TWFF_BMP. /// Rle4 = 10, /// /// Can only be used if ICAP_IMAGEFILEFORMAT is set to TWFF_BMP. /// Rle8 = 11, /// /// Can only be used if ICAP_IMAGEFILEFORMAT is set to TWFF_BMP. /// BitFields = 12, /// /// Per RFC 1951 (AKA 'Flate' and 'Deflate') /// Zip = 13, /// /// Per ISO/IEC 15444 /// Jpeg2000 = 14 } /// /// CapCameraSide/TWEI_PAGESIDE values. /// Corresponds to TWCS_* values. /// public enum CameraSide : ushort { Both = 0, Top = 1, Bottom = 2 } /// /// CapClearBuffers values. /// Corresponds to TWCB_* values. /// public enum ClearBuffer : ushort { Auto = 0, Clear = 1, NoClear = 2 } /// /// Indicates the type of event from the source. /// Also CapDeviceEvent values. If used as /// a cap value it's ushort. /// Corresponds to TWDE_* values. /// public enum DeviceEvent : uint // using uint to support custom event values { CheckAutomaticCapture = 0, CheckBattery = 1, CheckDeviceOnline = 2, CheckFlash = 3, CheckPowerSupply = 4, CheckResolution = 5, DeviceAdded = 6, DeviceOffline = 7, DeviceReady = 8, DeviceRemoved = 9, ImageCaptured = 10, ImageDeleted = 11, PaperDoubleFeed = 12, PaperJam = 13, LampFailure = 14, PowerSave = 15, PowerSaveNotify = 16, CustomEvents = 0x8000 } /// /// values. /// Corresponds to TWDR_* values. /// public enum Direction // using int to match TWPassThru { Invalid = 0, Get = 1, Set = 2 } /// /// TWEI_DESKEWSTATUS values. /// Corresponds to TWDSK_* values. /// public enum DeskewStatus : uint { Success = 0, ReportOnly = 1, Fail = 2, Disabled = 3 } /// /// CapDuplex values. /// Corresponds to TWDX_* values. /// public enum Duplex : ushort { None = 0, OnePass = 1, TwoPass = 2 } /// /// CapFeederAlignment values. /// Corresponds to TWFA_* values. /// public enum FeederAlignment : ushort { None = 0, Left = 1, Center = 2, Right = 3 } /// /// ICapFeederType values. /// Corresponds to TWFE_* values. /// public enum FeederType : ushort { General = 0, Photo = 1 } /// /// ICapImageFileFormat values. /// Corresponds to TWFF_* values. /// public enum FileFormat : ushort { /// /// Used for document imaging. Native Linux format. /// Tiff = 0, /// /// Native Macintosh format /// Pict = 1, /// /// Native Microsoft format /// Bmp = 2, /// /// Used for document imaging /// Xbm = 3, /// /// Wrapper for JPEG images /// Jfif = 4, /// /// FlashPix, used with digital cameras /// Fpx = 5, /// /// Multi-page TIFF files /// TiffMulti = 6, /// /// An image format standard intended for use on the web, replaces GIF /// Png = 7, /// /// A standard from JPEG, intended to replace JFIF, also supports JBIG /// Spiff = 8, /// /// File format for use with digital cameras. /// Exif = 9, /// /// A file format from Adobe /// Pdf = 10, /// /// A file format from the Joint Photographic Experts Group ISO/IEC 15444-1 /// Jp2 = 11, /// /// A file format from the Joint Photographic Experts Group ISO/IEC 15444-2 /// Jpx = 13, /// /// A file format from LizardTech /// Dejavu = 14, /// /// A file format from Adobe PDF/A, Version 1 /// PdfA = 15, /// /// A file format from Adobe PDF/A, Version 2 /// PdfA2 = 16 } /// /// ICapFlashUsed2 values. /// Corresponds to TWFL_* values. /// public enum FlashedUsed : ushort { None = 0, Off = 1, On = 2, Auto = 3, RedEye = 4 } /// /// CapFeederOrder values. /// Corresponds to TWFO_* values. /// public enum FeederOrder : ushort { FirstPageFirst = 0, LastPageFirst = 1 } /// /// CapFeederPocket values. /// Corresponds to TWFP_* values. /// public enum FeederPocket : ushort { PocketError = 0, Pocket1 = 1, Pocket2 = 2, Pocket3 = 3, Pocket4 = 4, Pocket5 = 5, Pocket6 = 6, Pocket7 = 7, Pocket8 = 8, Pocket9 = 9, Pocket10 = 10, Pocket11 = 11, Pocket12 = 12, Pocket13 = 13, Pocket14 = 14, Pocket15 = 15, Pocket16 = 16, } /// /// ICapFlipRotation values. /// Corresponds to TWFR_* values. /// public enum FlipRotation : ushort { Book = 0, FanFold = 1 } /// /// ICapFilter values. /// Corresponds to TWFT_* values. /// public enum FilterType : ushort { Red = 0, Green = 1, Blue = 2, None = 3, White = 4, Cyan = 5, Magenta = 6, Yellow = 7, Black = 8 } /// /// values. /// Corresponds to TWFY_* values. /// public enum FileType // using int to match value { Camera = 0, CameraTop = 1, CameraBottom = 2, CameraPreview = 3, Domain = 4, Host = 5, Directory = 6, Image = 7, Unknown = 8 } /// /// ICapIccProfile values. /// Corresponds to TWIC* values. /// public enum IccProfile : ushort { None = 0, Link = 1, Embed = 2 } /// /// ICapImageFilter values. /// Corresponds to TWIF_* values. /// public enum ImageFilter : ushort { None = 0, Auto = 1, LowPass = 2, BandPass = 3, HighPass = 4, Text = BandPass, FineLine = HighPass } /// /// ICapImageMerge values. /// Corresponds to TWIM_* values. /// public enum ImageMerge : ushort { None = 0, FrontOnTop = 1, FrontOnBottom = 2, FrontOnLeft = 3, FrontOnRight = 4 } /// /// CapJobControl values. /// Corresponds to TWJC_* values. /// public enum JobControl : ushort { /// /// No job control. /// None = 0, /// /// Detect and include job separator and continue scanning. /// IncludeContinue = 1, /// /// Detect and include job separator and stop scanning. /// IncludeStop = 2, /// /// Detect and exclude job separator and continue scanning. /// ExcludeContinue = 3, /// /// Detect and exclude job separator and stop scanning. /// ExcludeStop = 4 } /// /// ICapJpegQuality values. /// Corresponds to TWJQ_* values. /// public enum JpegQuality : short { Invalid = 0, Unknown = -4, Low = -3, Medium = -2, High = -1 } /// /// ICapLightPath values. /// Corresponds to TWLP_* values. /// public enum LightPath : ushort { Reflective = 0, Transmissive = 1 } /// /// ICapLightSource values. /// Corresponds to TWLS_* values. /// public enum LightSource : ushort { Red = 0, Green = 1, Blue = 2, None = 3, White = 4, UV = 5, IR = 6 } /// /// TWEI_MAGTYPE values. /// Corresponds to TWMD_* values. /// public enum MagType : ushort { Micr = 0, Raw = 1, Invalid = 2 } /// /// ICapNoiseFilter values. /// Corresponds to TWNF_* values. /// public enum NoiseFilter : ushort { None = 0, Auto = 1, LonePixel = 2, MajorityRule = 3 } /// /// ICapOrientation values. /// Corresponds to TWOR_* values. /// public enum OrientationType : ushort { Rot0 = 0, Rot90 = 1, Rot180 = 2, Rot270 = 3, Portrait = Rot0, Landscape = Rot270, Auto = 4, AutoTet = 5, AutoPicture = 6 } /// /// ICapOverscan values. /// Corresponds to TWOV_* values. /// public enum OverScan : ushort { None = 0, Auto = 1, TopBottom = 2, LeftRight = 3, All = 4 } /// /// values. /// Corresponds to TWPA_* values. /// public enum PaletteType : ushort { Rgb = 0, Gray = 1, Cmy = 2 } /// /// ICapPlanarChunky values. /// Corresponds to TWPC_* values. /// public enum PlanarChunky : ushort { Chunky = 0, Planar = 1 } /// /// ICapPatchCodeSearchPriorities, /// ICapSupportedPatchCodeTypes values. /// Corresponds to TWPCH_* values. /// public enum PatchCode : ushort { Patch1 = 0, Patch2 = 1, Patch3 = 2, Patch4 = 3, Patch6 = 4, PatchT = 5 } /// /// ICapPixelFlavor, ICapPixelFlavorCodes values. /// Corresponds to TWPF_* values. /// public enum PixelFlavor : ushort { Chocolate = 0, Vanilla = 1 } /// /// CapPrinterMode values. /// Corresponds to TWPM_* values. /// public enum PrinterMode : ushort { SingleString = 0, MultiString = 1, CompoundString = 2 } /// /// CapPrinter values. /// Corresponds to TWPR_* values. /// public enum Printer : ushort { ImprinterTopBefore = 0, ImprinterTopAfter = 1, ImprinterBottomBefore = 2, ImprinterBottomAfter = 3, EndorserTopBefore = 4, EndorserTopAfter = 5, EndorserBottomBefore = 6, EndorserBottomAfter = 7 } /// /// CapPrinterFontStyle values. /// Corresponds to TWPF_* values. /// public enum PrinterFontStyle : ushort { Normal = 0, Bold = 1, Italic = 2, LargeSize = 3, SmallSize = 4 } /// /// CapPrinterIndexTrigger values. /// Corresponds to TWCT_* values. /// public enum PrinterIndexTrigger : ushort { Page = 0, Patch1 = 1, Patch2 = 2, Patch3 = 3, Patch4 = 4, PatchT = 5, Patch6 = 6 } /// /// CapPowerSupply values. /// Corresponds to TWPS_* values. /// public enum PowerSupply : ushort { External = 0, Battery = 1 } /// /// Also ICapAutomaticColorNonColorPixelType (bw/gray), /// ICapJpegPixelType, ICapPixelType values. /// Corresponds to TWPT_* values. /// public enum PixelType : ushort { BlackWhite = 0, Gray = 1, RGB = 2, Palette = 3, CMY = 4, CMYK = 5, YUV = 6, YUVK = 7, CieXYZ = 8, Lab = 9, SRGB = 10, SCRGB = 11, Infrared = 16 } /// /// CapSegmented values. /// Corresponds to TWSG_* values. /// public enum Segmented : ushort { None = 0, Auto = 1, Manual = 2 } /// /// ICapFilmType values. /// Corresponds to TWFM_* values. /// public enum FilmType : ushort { Positive = 0, Negative = 1 } /// /// CapDoubleFeedDetection values. /// Corresponds to TWDF_* values. /// public enum DoubleFeedDetection : ushort { UltraSonic = 0, ByLength = 1, Infrared = 2 } /// /// CapDoubleFeedDetectionSensitivity values. /// Corresponds to TWUS_* values. /// public enum DoubleFeedDetectionSensitivity : ushort { Low = 0, Medium = 1, High = 2 } /// /// CapDoubleFeedDetectionResponse values. /// Corresponds to TWDP_* values. /// public enum DoubleFeedDetectionResponse : ushort { Stop = 0, StopAndWait = 1, Sound = 2, DoNotImprint = 3 } /// /// ICapMirror values. /// Corresponds to TWMR* values. /// public enum Mirror : ushort { None = 0, Vertical = 1, Horizontal = 2 } /// /// ICapJpegSubSampling values. /// Corresponds to TWJS_* values. /// public enum JpegSubSampling : ushort { x444YCBCR = 0, x444RGB = 1, x422 = 2, x421 = 3, x411 = 4, x420 = 5, x410 = 6, x311 = 7 } /// /// CapPaperHandling values. /// Corresponds to TWPH_* values. /// public enum PaperHandling : ushort { Normal = 0, Fragile = 1, Thick = 2, TriFold = 3, Photograph = 4 } /// /// CapIndicatorsMode values. /// Corresponds to TWCI_* values. /// public enum IndicatorsMode : ushort { Info = 0, Warning = 1, Error = 2, Warmup = 3 } /// /// ICapSupportedSizes values. /// Corresponds to TWSS_* values. /// public enum SupportedSize : ushort { None = 0, A4 = 1, JisB5 = 2, USLetter = 3, USLegal = 4, A5 = 5, IsoB4 = 6, IsoB6 = 7, USLedger = 9, USExecutive = 10, A3 = 11, IsoB3 = 12, A6 = 13, C4 = 14, C5 = 15, C6 = 16, FourA0 = 17, TwoA0 = 18, A0 = 19, A1 = 20, A2 = 21, A7 = 22, A8 = 23, A9 = 24, A10 = 25, IsoB0 = 26, IsoB1 = 27, IsoB2 = 28, IsoB5 = 29, IsoB7 = 30, IsoB8 = 31, IsoB9 = 31, IsoB10 = 33, JisB0 = 34, JisB1 = 35, JisB2 = 36, JisB3 = 37, JisB4 = 38, JisB6 = 39, JisB7 = 40, JisB8 = 41, JisB9 = 42, JisB10 = 43, C0 = 44, C1 = 45, C2 = 46, C3 = 47, C7 = 48, C8 = 49, C9 = 50, C10 = 51, USStatement = 52, BusinessCard = 53, MaxSize = 54 } /// /// ICapXferMech, ACapXferMech values. /// Corresponds to TWSX_* values. /// public enum XferMech : ushort { Native = 0, File = 1, Memory = 2, MemFile = 4 } /// /// ICapUnits values. /// Corresponds to TWUN_* values. /// public enum Unit : ushort { Inches = 0, Centimeters = 1, Picas = 2, Points = 3, Twips = 4, Pixels = 5, Millimeters = 6 } #endregion /**************************************************************************** * others * ****************************************************************************/ /// /// Corresponds to TWCY_* values. /// public enum Country : ushort { None = 0, Afghanistan = 1001, Algeria = 213, AmericanSamoa = 684, Andorra = 033, Angola = 1002, Anguilla = 8090, Antigua = 8091, Argentina = 54, Aruba = 297, AscensionI = 247, Australia = 61, Austria = 43, Bahamas = 8092, Bahrain = 973, Bangladesh = 880, Barbados = 8093, Belgium = 32, Belize = 501, Benin = 229, Bermuda = 8094, Bhutan = 1003, Bolivia = 591, Botswana = 267, Britain = 6, BritVirginIs = 8095, Brazil = 55, Brunei = 673, Bulgaria = 359, BurkinaFaso = 1004, Burma = 1005, Burundi = 1006, Camaroon = 237, Canada = 2, CapeVerdeIs = 238, CaymanIs = 8096, CentralAfrep = 1007, Chad = 1008, Chile = 56, China = 86, ChristmasIs = 1009, CocosLs = 1009, Colombia = 57, Comoros = 1010, Congo = 1011, CookIs = 1012, Costarica = 506, Cuba = 005, Cyprus = 357, Czechoslovakia = 42, Denmark = 45, Djibouti = 1013, Dominica = 8097, DomincanRep = 8098, EasterIs = 1014, Ecuador = 593, Egypt = 20, ElSalvador = 503, Eqguinea = 1015, Ethiopia = 251, FalklandIs = 1016, FaeroeIs = 298, FijiIslands = 679, Finland = 358, France = 33, Frantilles = 596, Frguiana = 594, Frpolyneisa = 689, Futanais = 1043, Gabon = 241, Gambia = 220, Germany = 49, Ghana = 233, Gibralter = 350, Greece = 30, Greenland = 299, Grenada = 8099, Grenedines = 8015, Guadeloupe = 590, Guam = 671, GuantanamoBay = 5399, Guatemala = 502, Guinea = 224, GuineaBissau = 1017, Guyana = 592, Haiti = 509, Honduras = 504, HongKong = 852, Hungary = 36, Iceland = 354, India = 91, Indonesia = 62, Iran = 98, Iraq = 964, Ireland = 353, Israel = 972, Italy = 39, IvoryCoast = 225, Jamaica = 8010, Japan = 81, Jordan = 962, Kenya = 254, Kiribati = 1018, Korea = 82, Kuwait = 965, Laos = 1019, Lebanon = 1020, Liberia = 231, Libya = 218, Liechtenstein = 41, Luxenbourg = 352, Macao = 853, Madagascar = 1021, Malawi = 265, Malaysia = 60, Maldives = 960, Mali = 1022, Malta = 356, MarshallIs = 692, Mauritania = 1023, Mauritius = 230, Mexico = 3, Micronesia = 691, Miquelon = 508, Monaco = 33, Mongolia = 1024, Montserrat = 8011, Morocco = 212, Mozambique = 1025, Namibia = 264, Nauru = 1026, Nepal = 977, Netherlands = 31, NethAntilles = 599, Nevis = 8012, NewCaledonia = 687, NewZealand = 64, Nicaragua = 505, Niger = 227, Nigeria = 234, Niue = 1027, NorfolkI = 1028, Norway = 47, Oman = 968, Pakistan = 92, Palau = 1029, Panama = 507, Paraguay = 595, Peru = 51, Phillippines = 63, PitcairnIs = 1030, PNewGuinea = 675, Poland = 48, Portugal = 351, Qatar = 974, Reunioni = 1031, Romania = 40, Rwanda = 250, Saipan = 670, SanMarino = 39, Saotome = 1033, SaudiArabia = 966, Senegal = 221, Seychellesis = 1034, Sierraleone = 1035, Singapore = 65, Solomonis = 1036, Somali = 1037, SouthAfrica = 27, Spain = 34, Srilanka = 94, Sthelena = 1032, Stkitts = 8013, Stlucia = 8014, Stpierre = 508, Stvincent = 8015, Sudan = 1038, Suriname = 597, Swaziland = 268, Sweden = 46, Switzerland = 41, Syria = 1039, Taiwan = 886, Tanzania = 255, Thailand = 66, Tobago = 8016, Togo = 228, Tongais = 676, Trinidad = 8016, Tunisia = 216, Turkey = 90, TurksCaicos = 8017, Tuvalu = 1040, Uganda = 256, Ussr = 7, UAEmirates = 971, UnitedKingdom = 44, Usa = 1, Uruguay = 598, Vanuatu = 1041, VaticanCity = 39, Venezuela = 58, Wake = 1042, WallisIs = 1043, WesternSahara = 1044, WesternSamoa = 1045, Yemen = 1046, Yugoslavia = 38, Zaire = 243, Zambia = 260, Zimbabwe = 263, Albania = 355, Armenia = 374, Azerbaijan = 994, Belarus = 375, BosniaHerzgo = 387, Cambodia = 855, Croatia = 385, CzechRepublic = 420, Diegogarcia = 246, Eritrea = 291, Estonia = 372, Georgia = 995, Latvia = 371, Lesotho = 266, Lithuania = 370, Macedonia = 389, Mayotteis = 269, Moldova = 373, Myanmar = 95, NorthKorea = 850, PuertoRico = 787, Russia = 7, Serbia = 381, Slovakia = 421, Slovenia = 386, SouthKorea = 82, Ukraine = 380, USVirginIs = 340, Vietnam = 84, } /// /// Corresponds to TWLG_* values. /// public enum Language : short { UserLocale = -1, Danish = 0, Dutch = 1, English = 2, FrenchCanadian = 3, Finnish = 4, French = 5, German = 6, Icelandic = 7, Italian = 8, Norwegian = 9, Portuguese = 10, Spanish = 11, Swedish = 12, EnglishUSA = 13, Afrikaans = 14, Albania = 15, Arabic = 16, ArabicAlgeria = 17, ArabicBahrain = 18, ArabicEgypt = 19, ArabicIraq = 20, ArabicJordan = 21, ArabicKuwait = 22, ArabicLebanon = 23, ArabicLibya = 24, ArabicMorocco = 25, ArabicOman = 26, ArabicQatar = 27, ArabicSaudiArabia = 28, ArabicSyria = 29, ArabicTunisia = 30, ArabicUAE = 31, ArabicYemen = 32, Basque = 33, Byelorussian = 34, Bulgarian = 35, Catalan = 36, Chinese = 37, ChineseHongKong = 38, ChinesePRC = 39, ChineseSingapore = 40, ChineseSimplified = 41, ChineseTaiwan = 42, ChineseTraditional = 43, Croatia = 44, Czech = 45, DutchBelgian = 46, EnglishAustralian = 47, EnglishCanadian = 48, EnglishIreland = 49, EnglishNewZealand = 50, EnglishSouthAfrica = 51, EnglishUK = 52, Estonian = 53, Faeroese = 54, Farsi = 55, FrenchBelgian = 56, FrenchLuxembourg = 57, FrenchSwiss = 58, GermanAustrian = 59, GermanLuxembourg = 60, GermanLiechtenstein = 61, GermanSwiss = 62, Greek = 63, Hebrew = 64, Hungarian = 65, Indonesian = 66, ItalianSwiss = 67, Japanese = 68, Korean = 69, KoreanJohab = 70, Latvian = 71, Lithuanian = 72, NorwegianBokmal = 73, NorwegianNynorsk = 74, Polish = 75, PortugueseBrazil = 76, Romanian = 77, Russian = 78, SerbianLatin = 79, Slovak = 80, Slovenian = 81, SpanishMexican = 82, SpanishModern = 83, Thai = 84, Turkish = 85, Ukranian = 86, Assamese = 87, Bengali = 88, Bihari = 89, Bodo = 90, Dogri = 91, Gujarati = 92, Haryanvi = 93, Hindi = 94, Kannada = 95, Kashmiri = 96, Malayalam = 97, Marathi = 98, Marwari = 99, Meghalayan = 100, Mizo = 101, Naga = 102, Orissi = 103, Punjabi = 104, Pushtu = 105, SerbianCyrillic = 106, Sikkimi = 107, SwedishFinland = 108, Tamil = 109, Telugu = 110, Tripuri = 111, Urdu = 112, Vietnamese = 113, } /// /// Corresponds to DG_*. /// [Flags] public enum DataGroups : uint { None = 0, Control = 0x1, Image = 0x2, Audio = 0x4, Mask = 0xffff, } /// /// Corresponds to DF_*. /// [Flags] public enum DataFunctionalities : uint { None = 0, Dsm2 = 0x10000000, App2 = 0x20000000, Ds2 = 0x40000000, } /// /// Corresponds to DAT_*. /// public enum DataArgumentType : ushort { Null = 0, CustomBase = 0x8000, // control group Capability = 0x1, Event = 0x2, Identity = 0x3, Parent = 0x4, PendingXfers = 0x5, SetupMemXfer = 0x6, SetupFileXfer = 0x7, Status = 0x8, UserInterface = 0x9, XferGroup = 0xa, CustomDSData = 0xc, DeviceEvent = 0xd, FileSystem = 0xe, PassThru = 0xf, Callback = 0x10, StatusUtf8 = 0x11, Callback2 = 0x12, // image group ImageInfo = 0x101, ImageLayout = 0x102, ImageMemXfer = 0x103, ImageNativeXfer = 0x104, ImageFileXfer = 0x105, CieColor = 0x106, GrayResponse = 0x107, RgbResponse = 0x108, JpegCompression = 0x109, Palette8 = 0x10a, ExtImageInfo = 0x10b, Filter = 0x10c, // audio group AudioFileXfer = 0x201, AudioInfo = 0x202, AudioNativeXfer = 0x203, // crap IccProfile = 0x401, ImageMemFileXfer = 0x402, EntryPoint = 0x403, } /// /// Corresponds to MSG_*. /// public enum Message : ushort { Null = 0, CustomBase = 0x8000, // Generic messages may be used with any of several DATs. Get = 0x1, GetCurrent = 0x2, GetDefault = 0x3, GetFirst = 0x4, GetNext = 0x5, Set = 0x6, Reset = 0x7, QuerySupport = 0x8, GetHelp = 0x9, GetLabel = 0xa, GetLabelEnum = 0xb, SetConstraint = 0xc, // Messages used with DAT_NULL XferReady = 0x101, CloseDSReq = 0x102, CloseDSOK = 0x103, DeviceEvent = 0x104, // Messages used with a pointer to DAT_PARENT data OpenDsm = 0x301, CloseDsm = 0x302, // Messages used with a pointer to a DAT_IDENTITY structure OpenDS = 0x401, CloseDS = 0x402, UserSelect = 0x403, // Messages used with a pointer to a DAT_USERINTERFACE structure DisableDS = 0x501, EnableDS = 0x502, EnableDSUIOnly = 0x503, // Messages used with a pointer to a DAT_EVENT structure ProcessEvent = 0x601, // Messages used with a pointer to a DAT_PENDINGXFERS structure EndXfer = 0x701, StopFeeder = 0x702, // Messages used with a pointer to a DAT_FILESYSTEM structure ChangeDirectory = 0x801, CreateDirectory = 0x802, Delete = 0x803, FormatMedia = 0x804, GetClose = 0x805, GetFirstFile = 0x806, GetInfo = 0x807, GetNextFile = 0x808, Rename = 0x809, Copy = 0x80a, AutomaticCaptureDirectory = 0x80b, // Messages used with a pointer to a DAT_PASSTHRU structure PassThru = 0x901, // used with DAT_CALLBACK RegisterCallback = 0x902, // used with DAT_CAPABILITY ResetAll = 0xa01, } /// /// Indicates the type of capability. /// public enum CapabilityId : ushort { None = 0, CustomBase = 0x8000, /* Base of custom capabilities */ /* all data sources are REQUIRED to support these caps */ CapXferCount = 0x0001, /* image data sources are REQUIRED to support these caps */ ICapCompression = 0x0100, ICapPixelType = 0x0101, ICapUnits = 0x0102, /* default is TWUN_INCHES */ ICapXferMech = 0x0103, /* all data sources MAY support these caps */ CapAuthor = 0x1000, CapCaption = 0x1001, CapFeederEnabled = 0x1002, CapFeederLoaded = 0x1003, CapTimeDate = 0x1004, CapSupportedCaps = 0x1005, CapExtendedCaps = 0x1006, CapAutoFeed = 0x1007, CapClearPage = 0x1008, CapFeedPage = 0x1009, CapRewindPage = 0x100a, CapIndicators = 0x100b, /* Added 1.1 */ CapPaperDetectable = 0x100d, /* Added 1.6 */ CapUIControllable = 0x100e, /* Added 1.6 */ CapDeviceOnline = 0x100f, /* Added 1.6 */ CapAutoScan = 0x1010, /* Added 1.6 */ CapThumbnailsEnabled = 0x1011, /* Added 1.7 */ CapDuplex = 0x1012, /* Added 1.7 */ CapDuplexEnabled = 0x1013, /* Added 1.7 */ CapEnableDSUIOnly = 0x1014, /* Added 1.7 */ CapCustomDSData = 0x1015, /* Added 1.7 */ CapEndorser = 0x1016, /* Added 1.7 */ CapJobControl = 0x1017, /* Added 1.7 */ CapAlarms = 0x1018, /* Added 1.8 */ CapAlarmVolume = 0x1019, /* Added 1.8 */ CapAutomaticCapture = 0x101a, /* Added 1.8 */ CapTimeBeforeFirstCapture = 0x101b, /* Added 1.8 */ CapTimeBetweenCaptures = 0x101c, /* Added 1.8 */ CapClearBuffers = 0x101d, /* Added 1.8 */ CapMaxBatchBuffers = 0x101e, /* Added 1.8 */ CapDeviceTimeDate = 0x101f, /* Added 1.8 */ CapPowerSupply = 0x1020, /* Added 1.8 */ CapCameraPreviewUI = 0x1021, /* Added 1.8 */ CapDeviceEvent = 0x1022, /* Added 1.8 */ CapSerialNumber = 0x1024, /* Added 1.8 */ CapPrinter = 0x1026, /* Added 1.8 */ CapPrinterEnabled = 0x1027, /* Added 1.8 */ CapPrinterIndex = 0x1028, /* Added 1.8 */ CapPrinterMode = 0x1029, /* Added 1.8 */ CapPrinterString = 0x102a, /* Added 1.8 */ CapPrinterSuffix = 0x102b, /* Added 1.8 */ CapLanguage = 0x102c, /* Added 1.8 */ CapFeederAlignment = 0x102d, /* Added 1.8 */ CapFeederOrder = 0x102e, /* Added 1.8 */ CapReacquireAllowed = 0x1030, /* Added 1.8 */ CapBatteryMinutes = 0x1032, /* Added 1.8 */ CapBatteryPercentage = 0x1033, /* Added 1.8 */ CapCameraSide = 0x1034, /* Added 1.91 */ CapSegmented = 0x1035, /* Added 1.91 */ CapCameraEnabled = 0x1036, /* Added 2.0 */ CapCameraOrder = 0x1037, /* Added 2.0 */ CapMicrEnabled = 0x1038, /* Added 2.0 */ CapFeederPrep = 0x1039, /* Added 2.0 */ CapFeederPocket = 0x103a, /* Added 2.0 */ CapAutomaticSenseMedium = 0x103b, /* Added 2.1 */ CapCustomInterfaceGuid = 0x103c, /* Added 2.1 */ CapSupportedCapsSegmentUnique = 0x103d, CapSupportedDATs = 0x103e, CapDoubleFeedDetection = 0x103f, CapDoubleFeedDetectionLength = 0x1040, CapDoubleFeedDetectionSensitivity = 0x1041, CapDoubleFeedDetectionResponse = 0x1042, CapPaperHandling = 0x1043, CapIndicatorsMode = 0x1044, CapPrinterVerticalOffset = 0x1045, CapPowerSaveTime = 0x1046, CapPrinterCharRotation = 0x1047, CapPrinterFontStyle = 0x1048, CapPrinterIndexLeadChar = 0x1049, CapPrinterIndexMaxValue = 0x104A, CapPrinterIndexNumDigits = 0x104B, CapPrinterIndexStep = 0x104C, CapPrinterIndexTrigger = 0x104D, CapPrinterStringPreview = 0x104E, /* image data sources MAY support these caps */ ICapAutoBright = 0x1100, ICapBrightness = 0x1101, ICapContrast = 0x1103, ICapCustHalftone = 0x1104, ICapExposureTime = 0x1105, ICapFilter = 0x1106, ICapFlashUsed = 0x1107, ICapGamma = 0x1108, ICapHalftones = 0x1109, ICapHighlight = 0x110a, ICapImageFileFormat = 0x110c, ICapLampState = 0x110d, ICapLightSource = 0x110e, ICapOrientation = 0x1110, ICapPhysicalWidth = 0x1111, ICapPhysicalHeight = 0x1112, ICapShadow = 0x1113, ICapFrames = 0x1114, ICapXNativeResolution = 0x1116, ICapYNativeResolution = 0x1117, ICapXResolution = 0x1118, ICapYResolution = 0x1119, ICapMaxFrames = 0x111a, ICapTiles = 0x111b, ICapBitOrder = 0x111c, ICapCCITTKFactor = 0x111d, ICapLightPath = 0x111e, ICapPixelFlavor = 0x111f, ICapPlanarChunky = 0x1120, ICapRotation = 0x1121, ICapSupportedSizes = 0x1122, ICapThreshold = 0x1123, ICapXScaling = 0x1124, ICapYScaling = 0x1125, ICapBitOrderCodes = 0x1126, ICapPixelFlavorCodes = 0x1127, ICapJpegPixelType = 0x1128, ICapTimeFill = 0x112a, ICapBitDepth = 0x112b, ICapBitDepthReduction = 0x112c, /* Added 1.5 */ ICapUndefinedImageSize = 0x112d, /* Added 1.6 */ ICapImageDataset = 0x112e, /* Added 1.7 */ ICapExtImageInfo = 0x112f, /* Added 1.7 */ ICapMinimumHeight = 0x1130, /* Added 1.7 */ ICapMinimumWidth = 0x1131, /* Added 1.7 */ ICapAutoDiscardBlankPages = 0x1134, /* Added 2.0 */ ICapFlipRotation = 0x1136, /* Added 1.8 */ ICapBarcodeDetectionEnabled = 0x1137, /* Added 1.8 */ ICapSupportedBarcodeTypes = 0x1138, /* Added 1.8 */ ICapBarcodeMaxSearchPriorities = 0x1139, /* Added 1.8 */ ICapBarcodeSearchPriorities = 0x113a, /* Added 1.8 */ ICapBarcodeSearchMode = 0x113b, /* Added 1.8 */ ICapBarcodeMaxRetries = 0x113c, /* Added 1.8 */ ICapBarcodeTimeout = 0x113d, /* Added 1.8 */ ICapZoomFactor = 0x113e, /* Added 1.8 */ ICapPatchCodeDetectionEnabled = 0x113f, /* Added 1.8 */ ICapSupportedPatchCodeTypes = 0x1140, /* Added 1.8 */ ICapPatchCodeMaxSearchPriorities = 0x1141, /* Added 1.8 */ ICapPatchCodeSearchPriorities = 0x1142, /* Added 1.8 */ ICapPatchCodeSearchMode = 0x1143, /* Added 1.8 */ ICapPatchCodeMaxRetries = 0x1144, /* Added 1.8 */ ICapPatchCodeTimeout = 0x1145, /* Added 1.8 */ ICapFlashUsed2 = 0x1146, /* Added 1.8 */ ICapImageFilter = 0x1147, /* Added 1.8 */ ICapNoiseFilter = 0x1148, /* Added 1.8 */ ICapOverScan = 0x1149, /* Added 1.8 */ ICapAutomaticBorderDetection = 0x1150, /* Added 1.8 */ ICapAutomaticDeskew = 0x1151, /* Added 1.8 */ ICapAutomaticRotate = 0x1152, /* Added 1.8 */ ICapJpegQuality = 0x1153, /* Added 1.9 */ ICapFeederType = 0x1154, /* Added 1.91 */ ICapICCProfile = 0x1155, /* Added 1.91 */ ICapAutoSize = 0x1156, /* Added 2.0 */ ICapAutomaticCropUsesFrame = 0x1157, /* Added 2.1 */ ICapAutomaticLengthDetection = 0x1158, /* Added 2.1 */ ICapAutomaticColorEnabled = 0x1159, /* Added 2.1 */ ICapAutomaticColorNonColorPixelType = 0x115a, /* Added 2.1 */ ICapColorManagementEnabled = 0x115b, /* Added 2.1 */ ICapImageMerge = 0x115c, /* Added 2.1 */ ICapImageMergeHeightThreshold = 0x115d, /* Added 2.1 */ ICapSupportedExtImageInfo = 0x115e, /* Added 2.1 */ ICapFilmType = 0x115f, ICapMirror = 0x1160, ICapJpegSubSampling = 0x1161, /* image data sources MAY support these audio caps */ ACapXferMech = 0x1202, /* Added 1.8 */ } /// /// Extended Image Info Attributes. /// Corresponds to TWEI_*. /// public enum ExtendedImageInfo : ushort { Invalid = 0, BarcodeX = 0x1200, BarcodeY = 0x1201, BarcodeText = 0x1202, BarcodeType = 0x1203, DeshadeTop = 0x1204, DeshadeLeft = 0x1205, DeshadeHeight = 0x1206, DeshadeWidth = 0x1207, DeshadeSize = 0x1208, SpecklesRemoved = 0x1209, HorzLineXCoord = 0x120A, HorzLineYCoord = 0x120B, HorzLineLength = 0x120C, HorzLineThickness = 0x120D, VertLineXCoord = 0x120E, VertLineYCoord = 0x120F, VertLineLength = 0x1210, VertLineThickness = 0x1211, PatchCode = 0x1212, EndorsedText = 0x1213, FormConfidence = 0x1214, FormTemplateMatch = 0x1215, FormTemplatePageMatch = 0x1216, FormHorzDocOffset = 0x1217, FormVertDocOffset = 0x1218, BarcodeCount = 0x1219, BarcodeConfidence = 0x121A, BarcodeRotation = 0x121B, BarcodeTextLength = 0x121C, DeshadeCount = 0x121D, DeshadeBlackCountOld = 0x121E, DeshadeBlackCountNew = 0x121F, DeshadeBlackRLMin = 0x1220, DeshadeBlackRLMax = 0x1221, DeshadeWhiteCountOld = 0x1222, DeshadeWhiteCountNew = 0x1223, DeshadeWhiteRLMin = 0x1224, DeshadeWhiteRLAve = 0x1225, DeshadeWhiteRLMax = 0x1226, BlackSpecklesRemoved = 0x1227, WhiteSpecklesRemoved = 0x1228, HorzLineCount = 0x1229, VertLineCount = 0x122A, DeskewStatus = 0x122B, SkewOriginalAngle = 0x122C, SkewFinalAngle = 0x122D, SkewConfidence = 0x122E, SkewWindowX1 = 0x122F, SkewWindowY1 = 0x1230, SkewWindowX2 = 0x1231, SkewWindowY2 = 0x1232, SkewWindowX3 = 0x1233, SkewWindowY3 = 0x1234, SkewWindowX4 = 0x1235, SkewWindowY4 = 0x1236, BookName = 0x1238, /* added 1.9 */ ChapterNumber = 0x1239,/* added 1.9 */ DocumentNumber = 0x123A, /* added 1.9 */ PageNumber = 0x123B, /* added 1.9 */ Camera = 0x123C, /* added 1.9 */ FrameNumber = 0x123D, /* added 1.9 */ Frame = 0x123E, /* added 1.9 */ PixelFlavor = 0x123F, /* added 1.9 */ IccProfile = 0x1240, /* added 1.91 */ LastSegment = 0x1241, /* added 1.91 */ SegmentNumber = 0x1242, /* added 1.91 */ MagData = 0x1243, /* added 2.0 */ MagType = 0x1244, /* added 2.0 */ PageSide = 0x1245, /* added 2.0 */ FileSystemSource = 0x1246, /* added 2.0 */ ImageMerged = 0x1247, /* added 2.1 */ MagDataLength = 0x1248, /* added 2.1 */ PaperCount = 0x1249, PrinterText = 0x124a } /// /// EndXfer job control values. /// Corresponds to TWEJ_*. /// public enum TWEJ : ushort { None = 0x0000, MidSeparator = 0x0001, Patch1 = 0x0002, Patch2 = 0x0003, Patch3 = 0x0004, Patch4 = 0x0005, Patch6 = 0x0006, PatchT = 0x0007 } /// /// Corresponds to TWRC_*. /// public enum ReturnCode : ushort { CustomBase = 0x8000, Success = 0, Failure = 1, CheckStatus = 2, Cancel = 3, DSEvent = 4, NotDSEvent = 5, XferDone = 6, EndOfList = 7, InfoNotSupported = 8, DataNotAvailable = 9, Busy = 10, ScannerLocked = 11, } /// /// Corresponds to TWCC_*. /// public enum ConditionCode : ushort { CustomBase = 0x8000, Success = 0, Bummer = 1, LowMemory = 2, NoDS = 3, MaxConnections = 4, OperationError = 5, BadCap = 6, BadProtocol = 9, BadValue = 10, SeqError = 11, BadDest = 12, CapUnsupported = 13, CapBadOperation = 14, CapSeqError = 15, Denied = 16, FileExists = 17, FileNotFound = 18, NotEmpty = 19, PaperJam = 20, PaperDoubleFeed = 21, FileWriteError = 22, CheckDeviceOnline = 23, Interlock = 24, DamagedCorner = 25, FocusError = 26, DocTooLight = 27, DocTooDark = 28, NoMedia = 29, } /// /// Bit mask for querying the operation that are supported by the data source on a capability. /// Corresponds to TWQC_*. /// public static class QuerySupportMask { public const int Get = 0x1; public const int Set = 0x2; public const int GetDefault = 0x4; public const int GetCurrent = 0x8; public const int Reset = 0x10; public const int SetConstraint = 0x20; public const int Constrainable = 0x40; public const int GetHelp = 0x100; public const int GetLabel = 0x200; public const int GetLabelEnum = 0x400; } /// /// TWAIN's boolean values. /// public enum BoolType : ushort { /// /// The false value (0). /// False = 0, /// /// The true value (1). /// True = 1 } /// /// Contains direct magic values for some TWAIN stuff. /// public static class TwainConst { // these are specified here since the actual // array length doesn't reflect the name :( /// /// Length of an array that holds TW_STR32. /// public const int String32 = 34; /// /// Length of an array that holds TW_STR64. /// public const int String64 = 66; /// /// Length of an array that holds TW_STR128. /// public const int String128 = 130; /// /// Length of an array that holds TW_STR255. /// public const int String255 = 256; // deprecated //public const int String1024 = 1026; /// /// Don't care value for 8 bit types. /// public const byte DontCare8 = 0xff; /// /// Don't care value for 16 bit types. /// public const ushort DontCare16 = 0xffff; /// /// Don't care value for 32 bit types. /// public const uint DontCare32 = 0xffffffff; /// /// The major version number of TWAIN supported by this library. /// public const short ProtocolMajor = 2; /// /// The minor version number of TWAIN supported by this library. /// public const short ProtocolMinor = 3; /// /// Value for false where applicable. /// public const ushort True = 1; /// /// Value for true where applicable. /// public const ushort False = 0; } }