←Select platform

EnumCapabilitiesEvent Event

Summary
Occurs for each found capability of the currently selected WIA source after calling the EnumCapabilities method.

Syntax
C#
C++/CLI
Python
public event EventHandler<WiaEnumCapabilitiesEventArgs> EnumCapabilitiesEvent 
public: 
event EventHandler<WiaEnumCapabilitiesEventArgs^>^ EnumCapabilitiesEvent 
def EnumCapabilitiesEvent(sender,e): # sender: WiaSession e: WiaEnumCapabilitiesEventArgs 
Event Data

The event handler receives an argument of type WiaEnumCapabilitiesEventArgs containing data related to this event. The following WiaEnumCapabilitiesEventArgs properties provide information specific to this event.

PropertyDescription
CapabilitiesCount Gets a count of the enumerated capabilities.
Capability Gets information about the enumerated capabilities of the selected WIA item.
Stop Enables or disables firing the EnumCapabilitiesEvent event.
Remarks

This event will be called while enumerating the selected WIA source capabilities after calling the EnumCapabilities method to provide the user with information about each found capability and the found capabilities count and also gives the ability to abort the enumeration process.

Example
C#
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.Wia; 
 
 
WiaSession session; 
       
public void EnumCapabilitiesExample(IntPtr parent) 
{ 
   if (!WiaSession.IsAvailable(WiaVersion.Version1)) 
   { 
      Console.WriteLine("WIA version 1.0 not installed."); 
      return; 
   } 
 
   session = new WiaSession(); 
   session.Startup(WiaVersion.Version1); 
 
   DialogResult res = session.SelectDeviceDlg(parent, WiaDeviceType.Default, WiaSelectSourceFlags.NoDefault); 
   if (res != DialogResult.OK) 
   { 
      Console.WriteLine("Error selecting WIA device."); 
      session.Shutdown(); 
      return; 
   } 
 
   session.EnumCapabilitiesEvent += new EventHandler<WiaEnumCapabilitiesEventArgs>(wiaSession_EnumCapabilitiesEvent); 
 
   object rootItem = session.GetRootItem(null); 
   if (rootItem != null) 
   { 
      session.EnumCapabilities(rootItem, WiaEnumCapabilitiesFlags.None); 
   } 
 
   session.EnumCapabilitiesEvent -= new EventHandler<WiaEnumCapabilitiesEventArgs>(wiaSession_EnumCapabilitiesEvent); 
 
   session.Shutdown(); 
} 
 
void wiaSession_EnumCapabilitiesEvent(object sender, WiaEnumCapabilitiesEventArgs e) 
{ 
   string strMsg = string.Empty; 
   string strPropAccess = string.Empty; 
   string strPropValue = string.Empty; 
 
   strMsg = string.Format("WIA Capabilities count = {0}\n", e.CapabilitiesCount); 
   Console.WriteLine(strMsg); 
 
   // print out the received capability information into the console window. 
   if (e.CapabilitiesCount > 0) 
   { 
      Console.WriteLine("Capability information:\n"); 
 
      // print out received capability property ID. 
      strMsg = string.Format("Property ID:\t{0}\n", e.Capability.PropertyId.ToString()); 
      Console.WriteLine(strMsg); 
 
      // print out received capability property Name. 
      strMsg = string.Format("Property Name:\t{0}\n", e.Capability.PropertyName); 
      Console.WriteLine(strMsg); 
 
      // print out received capability property access. 
      if ((e.Capability.PropertyAttributes & WiaPropertyAttributesFlags.ReadWrite) == WiaPropertyAttributesFlags.ReadWrite) 
      { 
         strPropAccess += "ReadWrite"; 
      } 
      else 
      { 
         if ((e.Capability.PropertyAttributes & WiaPropertyAttributesFlags.Read) == WiaPropertyAttributesFlags.Read) 
            strPropAccess += "Read"; 
 
         if ((e.Capability.PropertyAttributes & WiaPropertyAttributesFlags.Write) == WiaPropertyAttributesFlags.Write) 
         { 
            if (!string.IsNullOrEmpty(strPropAccess)) 
            { 
               strPropAccess += " | Write"; 
            } 
            else 
            { 
               strPropAccess += "Write"; 
            } 
         } 
      } 
 
      if ((e.Capability.PropertyAttributes & WiaPropertyAttributesFlags.Cashable) == WiaPropertyAttributesFlags.Cashable) 
      { 
         if (!string.IsNullOrEmpty(strPropAccess)) 
         { 
            strPropAccess += " | Cashable"; 
         } 
         else 
         { 
            strPropAccess += "Cashable"; 
         } 
      } 
 
      strMsg = string.Format("Property Access:\t{0}\n", strPropAccess); 
      Console.WriteLine(strMsg); 
 
      // print out received capability property value(s). 
      if ((e.Capability.PropertyAttributes & WiaPropertyAttributesFlags.List) == WiaPropertyAttributesFlags.List) 
      { 
         strPropValue = "Property List Values:\n"; 
         for (int i = 0; i < e.Capability.Values.ListValues.ValuesCount; i++) 
         { 
            if ((e.Capability.VariableType & WiaVariableTypes.Bstr) == WiaVariableTypes.Bstr) 
            { 
               strPropValue = strPropValue + "\t" + Convert.ToString(e.Capability.Values.ListValues.Values[i]) + "\n"; 
            } 
            else if ((e.Capability.VariableType & WiaVariableTypes.Clsid) == WiaVariableTypes.Clsid) 
            { 
               System.Guid guidValue = (System.Guid)e.Capability.Values.ListValues.Values[i]; 
               strPropValue = strPropValue + "\t" + guidValue.ToString() + "\n"; 
            } 
            else 
            { 
               strPropValue = strPropValue + "\t" + (Convert.ToInt32(e.Capability.Values.ListValues.Values[i])).ToString() + "\n"; 
            } 
         } 
      } 
      else if ((e.Capability.PropertyAttributes & WiaPropertyAttributesFlags.Range) == WiaPropertyAttributesFlags.Range) 
      { 
         strPropValue = string.Format("Property Range Values:\n\tMinimum Value: {0}\n\tMaximum Value: {1}\n", e.Capability.Values.RangeValues.MinimumValue, e.Capability.Values.RangeValues.MaximumValue); 
      } 
      else if ((e.Capability.PropertyAttributes & WiaPropertyAttributesFlags.Flag) == WiaPropertyAttributesFlags.Flag) 
      { 
         strPropValue = e.Capability.Values.FlagsValues.FlagValues.ToString(); 
      } 
      else  // The property value is of type "None", and in this case you can retrieve the value by calling the GetPropertyXXX method appropriate for the received variable type. 
      { 
         strPropValue = "Property Value: "; 
 
         object rootItem = session.GetRootItem(null); 
 
         if ((e.Capability.VariableType & WiaVariableTypes.Bstr) == WiaVariableTypes.Bstr) 
         { 
            string stringValue = session.GetPropertyString(rootItem, null, e.Capability.PropertyId); 
            strPropValue += stringValue; 
         } 
         else if ((e.Capability.VariableType & WiaVariableTypes.Clsid) == WiaVariableTypes.Clsid) 
         { 
            Guid guidValue = session.GetPropertyGuid(rootItem, null, e.Capability.PropertyId); 
            strPropValue += guidValue.ToString(); 
         } 
         else 
         { 
            int longValue = session.GetPropertyLong(rootItem, null, e.Capability.PropertyId); 
            strPropValue += longValue.ToString(); 
         } 
      } 
 
      Console.WriteLine(strPropValue); 
   } 
} 
Requirements

Target Platforms

Help Version 22.0.2023.3.31
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.Wia Assembly
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.