GetRootItem Method

Summary

Gets the equivalent string for the passed property ID.

Syntax
C#
VB
C++
public object GetRootItem( 
   object item 
) 
  
Public Function GetRootItem( _ 
   ByVal item As Object _ 
) As Object 
public: 
Object^ GetRootItem(  
   Object^ item 
)  

Parameters

item
Handle to the item which represents the item for which you wish to retrieve its root item. You can retrieve this parameter by either calling the GetRootItem method to get the device's root item itself or by enumerating the child items of the device through a call to EnumChildItems method.

Return Value

The WIA root item handle.

Remarks

Gets the root item for the item passed through the item parameter. If item parameters is null then the retrieved item will be the devices root item (which represents the device itself). This is the first function you need to call to get a handle to the devices root item. Then pass that handle to the EnumChildItems method to enumerate all of the devices child items. Then call this function again for any child item of the enumerated items to retrieve its root item if needed.

Example
C#
VB
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.Wia; 
 
WiaSession wiaSession; 
public void GetRootItemExample(IntPtr parent) 
{ 
   if (!WiaSession.IsAvailable(WiaVersion.Version1)) 
   { 
      MessageBox.Show("WIA version 1.0 not installed."); 
      return; 
   } 
   wiaSession = new WiaSession(); 
   wiaSession.Startup(WiaVersion.Version1); 
 
   DialogResult res = wiaSession.SelectDeviceDlg(parent, WiaDeviceType.Default, WiaSelectSourceFlags.NoDefault); 
   if (res != DialogResult.OK) 
   { 
      MessageBox.Show("Error selecting WIA device."); 
      wiaSession.Shutdown(); 
      return; 
   } 
 
   object rootItem = wiaSession.GetRootItem(null); 
   if (rootItem != null) 
   { 
      wiaSession.EnumItemsEvent += new EventHandler<WiaEnumItemsEventArgs>(wiaSession_EnumItemsEvent); 
 
      wiaSession.EnumChildItems(rootItem); 
 
      wiaSession.EnumItemsEvent -= new EventHandler<WiaEnumItemsEventArgs>(wiaSession_EnumItemsEvent); 
   } 
 
   wiaSession.Shutdown(); 
} 
 
void wiaSession_EnumItemsEvent(object sender, WiaEnumItemsEventArgs e) 
{ 
   if (e.Item != null) 
   { 
      WiaDataTransferProperties dataTransfer = WiaDataTransferProperties.Empty; 
      WiaImageEffectsProperties imageEffects = WiaImageEffectsProperties.Empty; 
 
      WiaProperties properties = wiaSession.GetProperties(e.Item); 
 
      dataTransfer.ImageDataType = WiaImageDataType.Grayscale; 
      imageEffects.Brightness = 250; 
 
      properties.DataTransfer = dataTransfer; 
      properties.ImageEffects = imageEffects; 
      properties.ScanningMode = WiaScanningModeFlags.Feeder;   // set scanning source to Feeder 
      properties.MaximumNumberOfPages = 0;                     // scan all pages in feeder 
      properties.ImageType = WiaImageType.Grayscale; 
      properties.Orientation = WiaOrientation.Portrait; 
 
      WiaImageResolutionProperties imageResolution = properties.ImageResolution; 
      imageResolution.BitsPerPixel = 8; 
      imageResolution.HorizontalResolution = 600; 
      imageResolution.VerticalResolution = 600; 
      properties.ImageResolution = imageResolution; 
 
      wiaSession.SetPropertiesEvent += new EventHandler<WiaSetPropertiesEventArgs>(wiaSession_SetPropertiesEvent); 
 
      wiaSession.SetProperties(e.Item, properties); 
 
      wiaSession.SetPropertiesEvent -= new EventHandler<WiaSetPropertiesEventArgs>(wiaSession_SetPropertiesEvent); 
 
      wiaSession.FreeItem(e.Item); 
   } 
} 
 
void wiaSession_SetPropertiesEvent(object sender, WiaSetPropertiesEventArgs e) 
{ 
   if (e.Error <= 0) 
   { 
      Console.WriteLine("Failed to set the below property:\n\tProperty Id: {0}\n\tProperty Value: {1}\n\tError: {2}\n\n", e.PropertyId.ToString(), e.Value.ToString(), e.Error.ToString()); 
   } 
} 
Imports Leadtools 
Imports Leadtools.Codecs 
Imports Leadtools.Wia 
 
Dim wiaSession As WiaSession 
<TestMethod()> _ 
Public Sub GetRootItemExample(ByVal parent As IntPtr) 
   If (Not wiaSession.IsAvailable(WiaVersion.Version1)) Then 
      MessageBox.Show("WIA version 1.0 not installed.") 
      Return 
   End If 
   wiaSession = New WiaSession() 
   wiaSession.Startup(WiaVersion.Version1) 
 
   Dim res As DialogResult = wiaSession.SelectDeviceDlg(parent, WiaDeviceType.Default, WiaSelectSourceFlags.NoDefault) 
   If res <> DialogResult.OK Then 
      MessageBox.Show("Error selecting WIA device.") 
      wiaSession.Shutdown() 
      Return 
   End If 
 
   Dim rootItem As Object = wiaSession.GetRootItem(Nothing) 
   If Not rootItem Is Nothing Then 
      AddHandler wiaSession.EnumItemsEvent, AddressOf session_EnumItemsEvent 
 
      wiaSession.EnumChildItems(rootItem) 
 
      RemoveHandler wiaSession.EnumItemsEvent, AddressOf session_EnumItemsEvent 
   End If 
 
   wiaSession.Shutdown() 
End Sub 
 
Private Sub session_EnumItemsEvent(ByVal sender As Object, ByVal e As WiaEnumItemsEventArgs) 
   If Not e.Item Is Nothing Then 
      Dim dataTransfer As WiaDataTransferProperties = WiaDataTransferProperties.Empty 
      Dim imageEffects As WiaImageEffectsProperties = WiaImageEffectsProperties.Empty 
 
      Dim properties As WiaProperties = wiaSession.GetProperties(e.Item) 
 
      dataTransfer.ImageDataType = WiaImageDataType.Grayscale 
      imageEffects.Brightness = 250 
 
      properties.DataTransfer = dataTransfer 
      properties.ImageEffects = imageEffects 
      properties.ScanningMode = WiaScanningModeFlags.Feeder   ' set scanning source to Feeder 
      properties.MaximumNumberOfPages = 0                     ' scan all pages in feeder 
      properties.ImageType = WiaImageType.Grayscale 
      properties.Orientation = WiaOrientation.Portrait 
 
      Dim imageResolution As WiaImageResolutionProperties = properties.ImageResolution 
      imageResolution.BitsPerPixel = 8 
      imageResolution.HorizontalResolution = 600 
      imageResolution.VerticalResolution = 600 
      properties.ImageResolution = imageResolution 
 
      AddHandler wiaSession.SetPropertiesEvent, AddressOf session_SetPropertiesEvent 
 
      wiaSession.SetProperties(e.Item, properties) 
 
      RemoveHandler wiaSession.SetPropertiesEvent, AddressOf session_SetPropertiesEvent 
 
      wiaSession.FreeItem(e.Item) 
   End If 
End Sub 
 
Private Sub session_SetPropertiesEvent(ByVal sender As Object, ByVal e As WiaSetPropertiesEventArgs) 
   If e.Error <= 0 Then 
      Console.WriteLine("Failed to set the below property:" & Constants.vbLf + Constants.vbTab & "Property Id: {0}" & Constants.vbLf + Constants.vbTab & "Property Value: {1}" & Constants.vbLf + Constants.vbTab & "Error: {2}" & _ 
            Constants.vbLf + Constants.vbLf, e.PropertyId.ToString(), Convert.ToInt32(e.Value).ToString(), e.Error.ToString()) 
   End If 
End Sub 

Requirements

Target Platforms

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

Leadtools.Wia Assembly