private void _rdTransferFile_CheckedChanged(object sender, System.EventArgs e) { int format; string fileName; _transferMode = TwainTransferMode.File; _cmbFileFormats.Enabled = true; _btnBrowse.Enabled = true; fileName = this._txtFileName.Text; _btnOK.Enabled = (fileName != ""); // disable other options _cbUseBufferSize.Enabled = false; _txtBufferSize.Enabled = false; _btnLEADFormats.Enabled = false; try { TwainCapability twnCap = _session.GetCapability(TwainCapabilityType.ImageImageFileFormat, TwainGetCapabilityMode.GetValues); switch (twnCap.Information.ContainerType) { case TwainContainerType.Enumeration: { _cmbFileFormats.Items.Clear(); int count = twnCap.EnumerationCapability.Count; _format = new RasterImageFormat[count]; for (int i = 0; i < count; i++) { if (twnCap.EnumerationCapability.ItemType == TwainItemType.Uint16) { format = Convert.ToUInt16(twnCap.EnumerationCapability.GetValue(i)); AddScannerFormats(format, i); } } break; } case TwainContainerType.OneValue: { _cmbFileFormats.Items.Clear(); if (twnCap.OneValueCapability.ItemType == TwainItemType.Uint16) { _format = new RasterImageFormat[1]; format = Convert.ToUInt16(twnCap.OneValueCapability.Value); AddScannerFormats(format, 0); } break; } } _cmbFileFormats.SelectedIndex = 0; } catch (Exception ex) { Messager.ShowError(this, ex); } }
public bool GetCap() { bool flag = true; if (capId == TwCap.ICAP_XRESOLUTION || capId == TwCap.ICAP_YRESOLUTION) { flag = SetInch(); } //if (capId == TwCap.ICAP_THRESHOLD) //{ // flag = SetBitDepthReduction(); //} if (flag) { if (capId == TwCap.ECAP_PAPERSOURCE) { GetPaperSource(); } else { TwCapability cap = new TwCapability(capId); if (twSession.GetCapability(ref cap)) { IntPtr intPtr = cap.contentValuePtr; switch (cap.contentType) { case TwOn.One: GetCapFromOneValue(intPtr); break; case TwOn.Array: GetCapFromArray(intPtr); break; case TwOn.Enum: GetCapFromEnumeration(intPtr); break; case TwOn.Range: GetCapFromRange(intPtr); break; default: { logger.Debug("the contentType in TwCapability is wrong"); flag = false; } break; } } if (cap.contentValuePtr != null) { TwainSession.GlobalFree(cap.contentValuePtr); } } } return(flag); }