• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1474
  • Last Modified:

Get handle of my scanner

I installed an ActiveX component, but all of its functions require you to know the OLE_HANDLE of the scanner, for example:
    function ScannerAvailable(hWnd: OLE_HANDLE): WordBool;
    function OpenScanner(hWnd: OLE_HANDLE): Integer;
    function CloseScanner(hWnd: OLE_HANDLE): Integer;
The scanner is a USB scanner, how do I get its handle to start and stop scanning?

Details:
  Scanner: Fujitsu fi-60F
  IDE: Delphi 7
  ActiveX Control: Fujitsu Scanner Control (Version 5.20) FiScn.ocx
0
rfwoolf
Asked:
rfwoolf
  • 5
  • 5
1 Solution
 
rfwoolfAuthor Commented:
FYI There is a link to the MSDN about a function  called EnumerateWiaDevices but this may be incorrect and I may need some help using this in Delphi
http://msdn.microsoft.com/en-us/library/ms629852(VS.85).aspx
0
 
rfwoolfAuthor Commented:
There's also a Windows type library that enumerates image devices, but I'm still trying to figure out how to get a handle:
http://www.delphigroups.info/2/3/936314.html
==================================
I have imported
"Microsoft Windows Image Acquisition 1.01 Type Library"
using the Project / Import Type Library menu option. The file
WIALib_TLB.pas was created automatically.
I can get a list of cameras attached to my PC by doing:
procedure TForm1.FormCreate(Sender: TObject);
var
I: Integer;
Dev: IWiaDeviceInfo;
begin
wia.Connect;
Caption := IntToStr(wia.Devices.Count);
lb.Items.Clear;
for I := 0 to wia.Devices.Count - 1 do
begin
Dev := wia.Devices.Item[I] as IWiaDeviceInfo;
lb.Items.Add(Dev.Name + ' (' + Dev.Id + ')');
end;
end;
0
 
briangochnauerCommented:
Handle to do what?

Have you read through this?
http://msdn.microsoft.com/en-us/library/ms630814(VS.85).aspx
0
Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

 
rfwoolfAuthor Commented:
You can see from the functions I listed in the question stuff like open scanner, see if its available, scan an image, etc
0
 
briangochnauerCommented:
Then you would notice that there is nothing in the documentation stating a 'handle' is available.
'Handle' is a generic term not a specification. Check the documentation for the ActiveX control you installed or contact the developer that created the ActiveX control.
Or you could always use the Microsoft API for free.
0
 
rfwoolfAuthor Commented:
"Or you could always use the Microsoft API for free."
You mean Windows Image Acquisition (WIA)?
Unfortunately I couldn't find much in the way of example source code for Delphi - in fact I've spent a great deal of time trying to get the snippets of code that I *did* find to work.

"Check the documentation for the ActiveX control you installed or contact the developer that created the ActiveX control."
Yeah, unfortunately Fujitsu are dragging their feet on this - I have to pay to use their SDK but on their Japanese website they say it's free - AND the SDK comes with the scanner anyway -- well just the ActiveX library.
Here's an image:
delphi.jpg
0
 
briangochnauerCommented:
Upload the generated TLB file (FiScnLib_tlb.pas) and I'll take a look;
0
 
rfwoolfAuthor Commented:
Gave up
0
 
briangochnauerCommented:
too bad :(   I don't think you needed the and with the the component dropped on the form you should have been able to do a;
FiScn1.Scan;
or
FiScn1.Start;
or something like that.

Could have been determined by looking at the FiScnLib_tlb.pas I asked for; or sending the OCX to me;
 
0
 
briangochnauerCommented:
meant to say;
 don't think you needed the handle with the the component dropped on the form .
0

Featured Post

VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

  • 5
  • 5
Tackle projects and never again get stuck behind a technical roadblock.
Join Now