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?
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;
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.
rfwoolf
ASKER
"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
briangochnauer
Upload the generated TLB file (FiScnLib_tlb.pas) and I'll take a look;
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;
briangochnauer
meant to say;
don't think you needed the handle with the the component dropped on the form .
http://msdn.microsoft.com/en-us/library/ms629852(VS.85).aspx