EnumCapabilities方法

总结
枚举所有可用的WIA驱动程序功能和属性,并确定每个功能和属性的可用值。
语法
c#
VB
c++
公共无效EnumCapabilities (对象WiaEnumCapabilitiesFlags旗帜
公共EnumCapabilities (_按值传递作为对象, _按值传递旗帜作为WiaEnumCapabilitiesFlags_
公共无效EnumCapabilities (对象^WiaEnumCapabilitiesFlags旗帜

参数


项的句柄以获取其功能。方法检索此参数GetRootItem方法获取设备的根项本身,或通过调用枚举设备的子项来获取EnumChildItems方法。

旗帜
保留以备将来使用。通过WiaEnumCapabilitiesFlags。没有一个

讲话

此函数将枚举指定获取源的所有可用WIA驱动程序功能和属性(并确定每个可用值)。

类将每个枚举功能发送给用户EnumCapabilitiesEvent事件。在枚举设备的功能时添加此事件。若要取消枚举过程,请添加EnumCapabilitiesEvent事件,然后设置取消委员会成员WiaEnumCapabilitiesEventArgs为true。

有关更多信息,请参阅管理WIA源

例子
c#
VB
使用Leadtools;使用Leadtools.Codecs;使用Leadtools.Wia;WiaSession会话;公共无效EnumCapabilitiesExample (IntPtr父)如果(! WiaSession.IsAvailable (WiaVersion.Version1))对话框。显示(“WIA 1.0版本未安装。”);返回会话=WiaSession ();session.Startup (WiaVersion.Version1);dialgresult res = session。SelectDeviceDlg(父,WiaDeviceType。默认的,WiaSelectSourceFlags.NoDefault);如果(res != dialgresult . ok)对话框。显示("选择WIA设备出错。");session.Shutdown ();返回会话。EnumCapabilitiesEvent + =EventHandler < WiaEnumCapabilitiesEventArgs > (wiaSession_EnumCapabilitiesEvent);对象rootItem = session。GetRootItem ();如果(rootItem ! =会话。EnumCapabilities (rootItem WiaEnumCapabilitiesFlags.None);会话。EnumCapabilitiesEvent - =EventHandler < WiaEnumCapabilitiesEventArgs > (wiaSession_EnumCapabilitiesEvent);session.Shutdown ();无效wiaSession_EnumCapabilitiesEvent (对象发送器,WiaEnumCapabilitiesEventArgs字符串strMsg =字符串空虚;字符串strPropAccess =字符串空虚;字符串strPropValue =字符串空虚;strMsg =字符串.Format ("WIA能力计数= {0}\n", e.CapabilitiesCount);Console.WriteLine (strMsg);//输出接收到的能力信息到控制台窗口。如果(e. abilitiescount > 0)控制台。写Line(“能力信息:\ n”);//输出接收到的能力属性ID。strMsg =字符串.Format (”属性ID: \ t {0} \ n”e.Capability.PropertyId.ToString ());Console.WriteLine (strMsg);//输出接收到的能力属性。strMsg =字符串.Format (“属性名:\ t {0} \ n”, e.Capability.PropertyName);Console.WriteLine (strMsg);//打印接收到的能力属性访问。如果((e.Capability。property & WiaPropertyAttributesFlags.ReadWrite) == WiaPropertyAttributesFlags.ReadWritestrPropAccess + =“读写”其他的如果((e.Capability。property & WiaPropertyAttributesFlags.Read) == WiaPropertyAttributesFlags.Read)strPropAccess + =“读”如果((e.Capability。== WiaPropertyAttributesFlags.Write)如果(!字符串.IsNullOrEmpty (strPropAccess))strPropAccess + =“|写”其他的strPropAccess + =“写”如果((e.Capability。== WiaPropertyAttributesFlags.Cashable)如果(!字符串.IsNullOrEmpty (strPropAccess))strPropAccess + =“|可兑现”其他的strPropAccess + =“可变现的”strMsg =字符串.Format (”属性访问:\ t {0} \ n”, strPropAccess);Console.WriteLine (strMsg);//输出接收到的能力属性值。如果((e.Capability。property & WiaPropertyAttributesFlags.List) == WiaPropertyAttributesFlags.ListstrPropValue ="属性列表值:\n"intI = 0;i < e.Capability.Values.ListValues.ValuesCount;我+ +)如果((e.Capability。== WiaVariableTypes.Bstr)strPropValue = strPropValue +“t \”+ Convert.ToString(e.Capability.Values.ListValues.Values[i]) +“\ n”其他的如果((e.Capability。变量类型& WiaVariableTypes.Clsid) == WiaVariableTypes.Clsid系统。Guid guidValue = (System.Guid)e.Capability.Values.ListValues.Values[i];strPropValue = strPropValue +“t \”+ guidValue.ToString() +“\ n”其他的strPropValue = strPropValue +“t \”+ (Convert.ToInt32(e.Capability.Values.ListValues.Values[i])).ToString() +“\ n”其他的如果((e.Capability。property & WiaPropertyAttributesFlags.Range) == WiaPropertyAttributesFlags.RangestrPropValue =字符串.Format (“属性范围值:\n\ t最小值:{0}\n\ t最大值:{1}\n”, e.Capability.Values.RangeValues。MinimumValue e.Capability.Values.RangeValues.MaximumValue);其他的如果((e.Capability。property & WiaPropertyAttributesFlags.Flag) == WiaPropertyAttributesFlags.Flag)strPropValue = e.Capability.Values.FlagsValues.FlagValues.ToString();其他的//属性值类型为“None”,在这种情况下,您可以通过调用GetPropertyXXX方法来检索该值,该方法适用于接收到的变量类型。strPropValue =“物业价值:”对象rootItem = session。GetRootItem ();如果((e.Capability。== WiaVariableTypes.Bstr)字符串stringValue = session。GetPropertyString (rootItem, e.Capability.PropertyId);strPropValue += stringValue;其他的如果((e.Capability。变量类型& WiaVariableTypes.Clsid) == WiaVariableTypes.ClsidGuid guidValue = session。GetPropertyGuid (rootItem, e.Capability.PropertyId);strPropValue += guidValue.ToString();其他的intlongValue = session。GetPropertyLong (rootItem, e.Capability.PropertyId);strPropValue += longValue.ToString();Console.WriteLine (strPropValue);
进口Leadtools进口Leadtools。编解码器进口Leadtools。Wia昏暗的会话作为WiaSession< TestMethod () > _公共EnumCapabilitiesExample (按值传递作为IntPtr)如果wiaSession.IsAvailable (WiaVersion.Version1))然后对话框。显示(“WIA 1.0版本未安装。”返回结束如果会话=WiaSession ()session.Startup (WiaVersion.Version1)昏暗的res作为dialgresult = session。SelectDeviceDlg(父,WiaDeviceType。默认的WiaSelectSourceFlags.NoDefault)如果res <> dialgresult。好吧然后对话框。显示("选择WIA设备出错。"session.Shutdown ()返回结束如果AddHandler会话。EnumCapabilitiesEvent,AddressOfsession_EnumCapabilitiesEvent昏暗的rootItem作为对象=会话。GetRootItem (没有什么如果rootItem没有什么然后会话。EnumCapabilities (rootItem WiaEnumCapabilitiesFlags.None)结束如果RemoveHandler会话。EnumCapabilitiesEvent,AddressOfsession_EnumCapabilitiesEventsession.Shutdown ()结束私人session_EnumCapabilitiesEvent (按值传递发送方作为对象按值传递e作为WiaEnumCapabilitiesEventArgs)昏暗的strMsg作为字符串字符串空虚昏暗的strPropAccess作为字符串字符串空虚昏暗的strPropValue作为字符串字符串空虚strMsg =字符串.Format ("WIA能力计数= {0}"& Constants.vbLfe.CapabilitiesCount)Console.WriteLine (strMsg)’将接收到的能力信息打印到控制台窗口。如果e. abilitiescount > 0然后控制台。写Line(”能力的信息:“& Constants.vbLf)'打印接收到的能力属性ID。strMsg =字符串.Format (”属性ID:“&常数。vbTab &“{0}”& Constants.vbLfe.Capability.PropertyId.ToString())Console.WriteLine (strMsg)'打印接收到的能力属性名称。strMsg =字符串.Format (属性名:“&常数。vbTab &“{0}”& Constants.vbLfe.Capability.PropertyName)Console.WriteLine (strMsg)'打印收到的能力属性访问。如果(e.Capability.PropertyAttributesWiaPropertyAttributesFlags. readwrite) = WiaPropertyAttributesFlags。读写然后strPropAccess & =“读写”其他的如果(e.Capability.PropertyAttributesWiaPropertyAttributesFlags. read) = WiaPropertyAttributesFlags。读然后strPropAccess & =“读”结束如果如果(e.Capability.PropertyAttributesWiaPropertyAttributesFlags. write) = WiaPropertyAttributesFlags。写然后如果字符串.IsNullOrEmpty (strPropAccess))然后strPropAccess & =“|写”其他的strPropAccess & =“写”结束如果结束如果结束如果如果(e.Capability.PropertyAttributesWiaPropertyAttributesFlags. cashable) = WiaPropertyAttributesFlags。可变现的然后如果字符串.IsNullOrEmpty (strPropAccess))然后strPropAccess & =“|可兑现”其他的strPropAccess & =“可变现的”结束如果结束如果strMsg =字符串.Format (”属性访问:“&常数。vbTab &“{0}”& Constants.vbLfstrPropAccess)Console.WriteLine (strMsg)’打印出接收到的能力属性值。如果(e.Capability.PropertyAttributesWiaPropertyAttributesFlags. list) = WiaPropertyAttributesFlags。列表然后strPropValue ="属性列表值:"& Constants.vbLf昏暗的作为整数= 0i < e.Capability.Values.ListValues.ValuesCount如果(e.Capability.VariableTypeWiaVariableTypes. bstr) = WiaVariableTypes。型然后strPropValue = strPropValue & Constants。vbTab + Convert.ToString (e.Capability.Values.ListValues.Values(我))+ Constants.vbLfElseIf(e.Capability.VariableTypeWiaVariableTypes. clsid) = WiaVariableTypes。Clsid然后昏暗的guidValue作为系统。Guid =CType(e.Capability.Values.ListValues.Values(我),System.Guid)strPropValue = strPropValue & Constants。vbTab + guidValue.ToString() + Constants.vbLf其他的strPropValue = strPropValue & Constants。vbTab + (Convert.ToInt32(e.Capability.Values.ListValues.Values(i))).ToString() & Constants.vbLf . vblf结束如果I += 1循环ElseIf(e.Capability.PropertyAttributesWiaPropertyAttributesFlags. range) = WiaPropertyAttributesFlags。范围然后strPropValue =字符串.Format ("属性范围值:"& Constants.vbLf+ Constants.vbTab &"最小值:{0}"& Constants.vbLf+ Constants.vbTab &“最大值:{1}”& Constants.vbLfe.Capability.Values.RangeValues。MinimumValue e.Capability.Values.RangeValues.MaximumValue)ElseIf(e.Capability.PropertyAttributesWiaPropertyAttributesFlags. flag) = WiaPropertyAttributesFlags。国旗然后strPropValue = e.Capability.Values.FlagsValues.FlagValues.ToString()其他的属性值的类型为“None”,在这种情况下,您可以根据接收到的变量类型调用适当的GetPropertyXXX方法来检索该值。strPropValue =“物业价值:”昏暗的rootItem作为对象=会话。GetRootItem (没有什么如果(e.Capability.VariableTypeWiaVariableTypes. bstr) = WiaVariableTypes。型然后昏暗的stringValue作为字符串=会话。GetPropertyString (rootItem没有什么e.Capability.PropertyId)strPropValue &= stringValueElseIf(e.Capability.VariableTypeWiaVariableTypes. clsid) = WiaVariableTypes。Clsid然后昏暗的guidValue作为Guid = session。GetPropertyGuid (rootItem没有什么e.Capability.PropertyId)strPropValue &= guidValue.ToString()其他的昏暗的longValue作为整数=会话。GetPropertyLong (rootItem没有什么e.Capability.PropertyId)strPropValue &= longValue.ToString()结束如果结束如果Console.WriteLine (strPropValue)结束如果结束
需求

目标平台

Leadtools。Wia作为sembly
188金宝搏的网址客服|支持|联系我们|知识产权公告
©1991 - 2021领德科技有限公司版权所有。