signature capture device/activex

bmj

New Member
hello--

i am attempting to connect to a topaz systems signature catpure device via their active x control, but my code returns an error code of 5893, indicating that the control is not properly registered. the installation executable that came with the device did install the ocxs correctly, and i even uninstalled and reinstalled the ocxs myself just to be sure.

i can view the ocx and its methods within the COM object viewer, but i cannot seem to open the activex control from within my code:

DEFINE VARIABLE cHandle AS COM-HANDLE.
CREATE "DSigPlus" cHandle. /* The name from the COM viewer */
cHandle:ClearTablet().

tia...
bmj
 
The control is not registered properly.

REGSVR32 FullyQualifiedPath\FileName


i believe i've done this already. the filename should be the .ocx file, no?

thanks....
 
ok ok ok....

i've made some progress ;-)

after sifting through the registry entries, i've found the name that i should be using to instantiate the component:

CREATE "SIGPLUS.SigPlusCtrl.1" sigPlusHandle.

fantastic....

now, when i attempt to access a property or call a method of the component, i get a *catastrophic error* message (error 5890). if i try to call a method that doesn't exist for the component, like:

sigPlusHandle:Foo()

the error indicates that the method signature was not found. and, as i said before, the COM object viewer does see all the methods for the component.

any ideas?

tia
bmj
 
Active x controls need to be accesse via the appbuilder/uib.

but i didn't that was necessarily the case. according the progress docs about using external programming interfaces, you should be able to directly access an activex object within 4gl code. and the COM object viewer does allow me to see all the methods of my activex control. i simply can't call the methods with an error. this particular activex object doesn't have any drop and drop characteristics....all methods and properties are for setting the properties of a signature capture device, and capturing events from the device....

tia
bmj
 
is that really necessary? i got the impression from the progress docs that i should be able to just directly access the activex control from the code, especially since it's not a gui component.

would the lack of the .wrx file be the reason why i can create the com handle, but not access the methods and properties of the component?

bmj
 
From Progress Help control-frame widgit

NOTES

· You must use the AppBuilder to incorporate one or more ActiveX control instances into a Progress 4GL application. The AppBuilder, operating in design mode, provides the facilities to set design–time properties for ActiveX controls.

· After incorporating ActiveX controls into an application with the AppBuilder, the resulting window file, when compiled and executed, interacts with the ActiveX controls at run time.

· To access a loaded ActiveX control at run time, use the control–frame COM-HANDLE attribute to get a handle to the control–frame COM object. To return a handle to the control, use the design–time name of the ActiveX control as a property of the control–frame COM object:
 
ok--

i've made the .wrx file, and i'm correctly instantiating a control frame, etc. my progress code is now trying to access the device, and get and set values of particular properties. the compiler is not giving me an error, but the properties are not being set. i've also tried to draw an image to the screen (via an .bmp and a WriteFile() method), and again no luck.

oddly, however, if i try and call a method that doesn't exist:

comHandle:Foo()

i still don't get an error. even more odd...when i wasn't accessing the activex via the .wrx (just by directly instantiating the control), i couldn't access the methods (see my posts above), but the compiler knew that if i called Foo(), it didn't exist within the component.

any ideas?

bmj
 
Back
Top