I have a system that has Windows COM interface so that external applications can connect to it and it has following details
Interface: InterfaceName Flags: (1234) Dual OleAutomation Dispatchable GUID: {ABCDEFG-ABCD-1234-ABCD-ABCDE1234} I'd like to connect to this interface through Java Spring Application, it will sends a request to this interface and process the response.
I've tried to use the following code
ActiveXComponent mf = new ActiveXComponent("ApplicationName.InterfaceName");
try {
Dispatch f2 = mf.QueryInterface(" {ABCDEFG-ABCD-1234-ABCD-ABCDE1234} ");
Dispatch.put(f2, 201, new Variant("Request String"));
} catch (Exception e) {
e.printStackTrace();
}
The executable file opens but it doesn't do what I want. I want to do the following.
How do I make sure, my interface has bee registered, I can see it under
Computer\HKEY_CLASSES_ROOT\ApplicationName.InterfaceName
Using
ActiveXComponent
opens the instance of application, which is not required. Application is already running.call the interface with dispid.
Retreive the response from the call/put/invoke ( which suits best for my requiremet ? ) and process the response.
I'm working first time with JAVA-COM_Interface and don't have much experience with it also I could find very few examples on the internet for it and I tried to convert the example I found for my project, also I am not sure the approach I am taking to call the interface is correct or not I would be glad if you can give a hand!
I have resolved this using JACOB lib.
1) Download JACOB folder from here.
2) Check your application is working & has details under
3) Make sure ApplicationName.dll file is registered. If not use this link for more info regsvr32
4) Use this Java Code to send data to COM Interface with below simple code.
Hope this helps.