コード例 #1
0
        /// <summary>
        /// Adds information about the value of capability in specified usage mode to the string builder.
        /// </summary>
        /// <param name="capUsageMode"></param>
        /// <param name="capValue"></param>
        /// <param name="capsInfo"></param>
        private void AddCapInfoToCapsInfo(DeviceCapabilityUsageMode capUsageMode, TwainValueContainerBase capValue, StringBuilder capsInfo)
        {
            capsInfo.Append(string.Format("  Usage mode: {0}{1}", capUsageMode, Environment.NewLine));
            capsInfo.Append(string.Format("    Value container type: {0}{1}", capValue.ContainerType, Environment.NewLine));

            switch (capValue.ContainerType)
            {
            case TwainValueContainerType.OneValue:
                TwainOneValueContainer oneDeviceCapabilityValue = (TwainOneValueContainer)capValue;
                AddCapOneCurrentValueInfoToCapsInfo(oneDeviceCapabilityValue, capsInfo);
                break;

            case TwainValueContainerType.Range:
                TwainRangeValueContainer rangeDeviceCapabilityValue = (TwainRangeValueContainer)capValue;
                AddCapRangeCurrentValueInfoToCapsInfo(rangeDeviceCapabilityValue, capsInfo);
                AddCapRangeDefaultValueInfoToCapsInfo(rangeDeviceCapabilityValue, capsInfo);
                AddCapMinValueInfoToCapsInfo(rangeDeviceCapabilityValue, capsInfo);
                AddCapMaxValueInfoToCapsInfo(rangeDeviceCapabilityValue, capsInfo);
                AddCapStepSizeInfoToCapsInfo(rangeDeviceCapabilityValue, capsInfo);
                break;

            case TwainValueContainerType.Enum:
                TwainEnumValueContainer enumDeviceCapabilityValue = (TwainEnumValueContainer)capValue;
                AddCapEnumCurrentValueInfoToCapsInfo(enumDeviceCapabilityValue, capsInfo);
                AddCapEnumDefaultValueInfoToCapsInfo(enumDeviceCapabilityValue, capsInfo);
                AddCapValuesInfoToCapsInfo(enumDeviceCapabilityValue, capsInfo);
                break;

            case TwainValueContainerType.Array:
                TwainArrayValueContainer arrayDeviceCapabilityValue = (TwainArrayValueContainer)capValue;
                AddCapValuesInfoToCapsInfo(arrayDeviceCapabilityValue, capsInfo);
                break;
            }
        }
コード例 #2
0
        /// <summary>
        /// Gets information about the current value stored in Enum container.
        /// </summary>
        /// <param name="deviceCapabilityValue"></param>
        private void AddCapEnumCurrentValueToForm(TwainEnumValueContainer deviceCapabilityValue)
        {
            int valueIndex = deviceCapabilityValue.ValueIndex;

            if (valueIndex >= 0 && valueIndex < deviceCapabilityValue.Values.Length)
            {
                if (deviceCapabilityValue.EnumValues != null)
                {
                    currentValueTextBox.Text = string.Format("{0} [{1}], Index={2}", deviceCapabilityValue.Values.GetValue(valueIndex), deviceCapabilityValue.EnumValues.GetValue(valueIndex), valueIndex);
                }
                else
                {
                    currentValueTextBox.Text = string.Format("{0}, Index={1}", deviceCapabilityValue.Values.GetValue(valueIndex), valueIndex);
                }
            }
        }
コード例 #3
0
        /// <summary>
        /// Gets information about the default value stored in Enum container.
        /// </summary>
        /// <param name="deviceCapabilityValue"></param>
        private void AddCapEnumDefaultValueToForm(TwainEnumValueContainer deviceCapabilityValue)
        {
            int defaultValueIndex = deviceCapabilityValue.DefaultValueIndex;

            if (deviceCapabilityValue.EnumValues != null)
            {
                if (defaultValueIndex >= 0 && defaultValueIndex < deviceCapabilityValue.EnumValues.Length)
                {
                    defaultValueTextBox.Text = string.Format("{0} [{1}]", defaultValueIndex, deviceCapabilityValue.EnumValues.GetValue(defaultValueIndex));
                }
            }
            else
            {
                defaultValueTextBox.Text = defaultValueIndex.ToString();
            }
        }
コード例 #4
0
 /// <summary>
 /// Gets information about the default value stored in Enum container.
 /// </summary>
 /// <param name="deviceCapabilityValue"></param>
 /// <param name="capsInfo"></param>
 private void AddCapEnumDefaultValueInfoToCapsInfo(TwainEnumValueContainer deviceCapabilityValue, StringBuilder capsInfo)
 {
     if (deviceCapabilityValue.EnumValues != null)
     {
         if (deviceCapabilityValue.DefaultValueIndex >= 0 && deviceCapabilityValue.DefaultValueIndex < deviceCapabilityValue.EnumValues.Length)
         {
             capsInfo.Append(string.Format("    Default value index: {0}[{1}]{2}", deviceCapabilityValue.DefaultValueIndex, deviceCapabilityValue.EnumValues.GetValue(deviceCapabilityValue.DefaultValueIndex), Environment.NewLine));
         }
         else
         {
             capsInfo.Append(string.Format("    Default value index: {0}[WRONG DEFAULT VALUE INDEX]{1}", deviceCapabilityValue.DefaultValueIndex, Environment.NewLine));
         }
     }
     else
     {
         capsInfo.Append(string.Format("    Default value index: {0}{1}", deviceCapabilityValue.DefaultValueIndex, Environment.NewLine));
     }
 }
コード例 #5
0
        /// <summary>
        /// Gets information about value of specified capability in specified usage mode.
        /// </summary>
        /// <param name="deviceCapability"></param>
        /// <param name="usageMode"></param>
        private void GetCapValue(DeviceCapability deviceCapability, DeviceCapabilityUsageMode usageMode)
        {
            usageModeTextBox.Text     = "";
            containerTypeTextBox.Text = "";
            valueTypeTextBox.Text     = "";
            currentValueTextBox.Text  = "";
            minValueTextBox.Text      = "";
            maxValueTextBox.Text      = "";
            defaultValueTextBox.Text  = "";
            stepSizeTextBox.Text      = "";
            supportedValuesListBox.Items.Clear();

            try
            {
                TwainValueContainerBase deviceCapabilityValue = null;
                if (usageMode == DeviceCapabilityUsageMode.GetCurrent)
                {
                    deviceCapabilityValue = deviceCapability.GetCurrentValue();
                }
                else if (usageMode == DeviceCapabilityUsageMode.GetDefault)
                {
                    deviceCapabilityValue = deviceCapability.GetDefaultValue();
                }
                else
                {
                    deviceCapabilityValue = deviceCapability.GetValue();
                }

                if (getMethodComboBox.Items.Count == 0)
                {
                    //
                    usageModeTextBox.Text = deviceCapability.UsageMode.ToString();
                    //
                    if ((deviceCapability.UsageMode & DeviceCapabilityUsageMode.Get) != 0)
                    {
                        getMethodComboBox.Items.Add(DeviceCapabilityUsageMode.Get);
                    }
                    if ((deviceCapability.UsageMode & DeviceCapabilityUsageMode.GetCurrent) != 0)
                    {
                        getMethodComboBox.Items.Add(DeviceCapabilityUsageMode.GetCurrent);
                    }
                    if ((deviceCapability.UsageMode & DeviceCapabilityUsageMode.GetDefault) != 0)
                    {
                        getMethodComboBox.Items.Add(DeviceCapabilityUsageMode.GetDefault);
                    }
                }

                if (deviceCapabilityValue != null)
                {
                    //
                    containerTypeTextBox.Text = deviceCapabilityValue.ContainerType.ToString();
                    valueTypeTextBox.Text     = deviceCapability.ValueType.ToString();

                    //
                    switch (deviceCapabilityValue.ContainerType)
                    {
                    case TwainValueContainerType.OneValue:
                        TwainOneValueContainer oneDeviceCapabilityValue = (TwainOneValueContainer)deviceCapabilityValue;
                        AddCapOneCurrentValueToForm(oneDeviceCapabilityValue);
                        break;

                    case TwainValueContainerType.Range:
                        TwainRangeValueContainer rangeDeviceCapabilityValue = (TwainRangeValueContainer)deviceCapabilityValue;
                        AddCapRangeCurrentValueToForm(rangeDeviceCapabilityValue);
                        AddCapRangeDefaultValueToForm(rangeDeviceCapabilityValue);
                        AddCapMinValueToForm(rangeDeviceCapabilityValue);
                        AddCapMaxValueToForm(rangeDeviceCapabilityValue);
                        AddCapStepSizeToForm(rangeDeviceCapabilityValue);
                        break;

                    case TwainValueContainerType.Enum:
                        TwainEnumValueContainer enumDeviceCapabilityValue = (TwainEnumValueContainer)deviceCapabilityValue;
                        AddCapEnumCurrentValueToForm(enumDeviceCapabilityValue);
                        AddCapEnumDefaultValueToForm(enumDeviceCapabilityValue);
                        AddCapValuesToForm(enumDeviceCapabilityValue);
                        break;

                    case TwainValueContainerType.Array:
                        TwainArrayValueContainer arrayDeviceCapabilityValue = (TwainArrayValueContainer)deviceCapabilityValue;
                        AddCapValuesToForm(arrayDeviceCapabilityValue);
                        break;
                    }
                }
            }
            catch (TwainDeviceCapabilityException ex)
            {
                currentValueTextBox.Text = ex.Message;
            }
        }