public object GetRootItem(
object item
)
Public Function GetRootItem( _
ByVal item As Object _
) As Object
public:
Object^ GetRootItem(
Object^ item
)
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.
The WIA root item handle.
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.
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
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document