VintaSoft Twain .NET SDK v10.2
In This Topic
    How to get value of device capability?
    In This Topic

    Example: Here is an example that shows how to get information about all pixel types supported by the device using properties and methods of capability.

    ''' <summary>
    ''' Get information about pixel types supported by device.
    ''' </summary>
    Public Sub GetPixelTypesInfo(ByVal device As Vintasoft.Twain.Device)
        ' open the device
        device.Open()
    
        ' get reference to the object that manipulates IPixelType capability
        Dim pixelTypeCap As DeviceCapability = device.Capabilities.Find(DeviceCapabilityId.IPixelType)
        ' if the IPixelType capability is supported
        If pixelTypeCap IsNot Nothing Then
            ' get information about current, default and supported values of capability
    
            Dim capValue As TwainValueContainerBase = pixelTypeCap.GetValue()
    
            Select Case capValue.ContainerType
                Case TwainValueContainerType.[Enum]
                    Dim capValueAsEnum As TwainEnumValueContainer = DirectCast(capValue, TwainEnumValueContainer)
                    Dim enumValues As Array = capValueAsEnum.EnumValues
    
                    ' output the capability values in human readable format
                    Console.WriteLine(String.Format("Current pixel type: {0}", enumValues.GetValue(capValueAsEnum.ValueIndex)))
                    Console.WriteLine(String.Format("Default pixel type: {0}", enumValues.GetValue(capValueAsEnum.DefaultValueIndex)))
                    Console.Write("Supported pixel types:")
                    For i As Integer = 0 To enumValues.Length - 1
                        Console.Write(String.Format(" {0}", enumValues.GetValue(i)))
                    Next
                    Exit Select
            End Select
    
            Console.WriteLine()
        End If
    
        ' close the device
        device.Close()
    End Sub
                  
    
    /// <summary>
    /// Get information about pixel types supported by device.
    /// </summary>
    public void GetPixelTypesInfo(Vintasoft.Twain.Device device)
    {
        // open the device
        device.Open();
    
        // get reference to the object that manipulates IPixelType capability
        DeviceCapability pixelTypeCap = device.Capabilities.Find(DeviceCapabilityId.IPixelType);
        // if the IPixelType capability is supported
        if (pixelTypeCap != null)
        {
            // get information about current, default and supported values of capability
    
            TwainValueContainerBase capValue = pixelTypeCap.GetValue();
    
            switch (capValue.ContainerType)
            {
                case TwainValueContainerType.Enum:
                    TwainEnumValueContainer capValueAsEnum = (TwainEnumValueContainer)capValue;
                    Array enumValues = capValueAsEnum.EnumValues;
    
                    // output the capability values in human readable format
                    Console.WriteLine(string.Format("Current pixel type: {0}", enumValues.GetValue(capValueAsEnum.ValueIndex)));
                    Console.WriteLine(string.Format("Default pixel type: {0}", enumValues.GetValue(capValueAsEnum.DefaultValueIndex)));
                    Console.Write("Supported pixel types:");
                    for (int i = 0; i < enumValues.Length; i++)
                        Console.Write(string.Format(" {0}", enumValues.GetValue(i)));
                    break;
            }
    
            Console.WriteLine();
        }
    
        // close the device
        device.Close();
    }