LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

How do I make a LabView DLL that communicate whith an ActiveXContainer in IE?

I have an ActiveX Container with and ActiveX object inside. Both are cab files. The ActiveX is embedded in IE, and I wonder how I make a Labview DLL that I can include inside the ActiveX object ( cab file that contain a DLL file) in order to use methods and properties in the ActiveX object. By using the Call Library Function in Labview, I have managed to access the ActiveX object( dll file ) to run the functions inside, but thats not what I want.. Anyone that could come up with a solution or an alternative solution?
 
The ActiveX container I am talking about can be seen here: http://www.simulation.com/products/glstudio/activex/gls_ActX_Radio.html
 
 
Thanks
 
Preben Vindholmen
0 Kudos
Message 1 of 8
(3,342 Views)

Preben,

I'm a little confused about your problem, are you having trouble creating a LabVIEW DLL, or are you having trouble embedding your ActiveX control in LabVIEW?  In order to embed an ActiveX control, you generally don't use a Call Library Function (CLFs are more useful for non-ActiveX DLLs).  LabVIEW actually has an ActiveX container, which you can find on your controls palette.  Place one of these containers on your front panel, then right click it and select Insert ActiveX Object.  Browse to your ActiveX DLL, and if everything is implemented correctly, the ActiveX object should be displayed in the container.  Once you have done this, you can use the terminal for the container on the block diagram as a reference to the object, you can wire it to property and invoke nodes to access properties and methods of your ActiveX object.

 

Hope that helps,

Ryan K.

0 Kudos
Message 2 of 8
(3,332 Views)
Ryan...
 
Thanks a LOT for helping me here. My goal is not embedding a Labview project with an ActiveX Container using remote panel and the web publishing tool in Labview. Instead I want to embed a GL-studio ActiveX in a normal HTML page ( as in URL i posted ) where I include a Labview DLL in the cab file which represents the the ActiveX object in the ActiveX container. The point here is that I want the Labview DLL to do the logic and control the behavour of the GL-studio ActiveX by using methods and properties into the ActiveX in the web page. GL-Studio is a great app doing nice frontends, so combining Labview to do the logic part will be absolutely great...  So the thing here is how do I make the Labview DLL so it can communicate with the GL-studioActiveX..
 
I hope you (or others) can give me some hints or guide me in a right direction on the way solving this.
 
Thanks again..
 
Preben
 
0 Kudos
Message 3 of 8
(3,322 Views)

Preben,

 

Unfortunately, what you are trying to do is somewhat contrary to the way in which ActiveX controls operate.  When you embed an ActiveX control in a user inteface (which could be a front panel, a web page, a CVI UI, or a dialog or form from Visual Studio) the program controlling that user interface is the only program that has a reference to that control.  You could try passing this reference to LabVIEW as a parameter, but passing references from one language to another often gets hairy.  I've never tried this approach personally, but it might be worth a shot.  If that doesn't work, then your options are either to use LabVIEW as the front end user interface (i.e. embed your front panel in the web page) or to build a communication scheme between LabVIEW and the web page by passing messages with something like TCP/IP and then executing the apropriate commands in whatever scripting language you're using behind the web page.

0 Kudos
Message 4 of 8
(3,308 Views)

Ok thanks Ryen.. When you use remote panel , do every user have to "share" the same vi on the server or do all clients get their own labview front window?`Is it possible to embed Labview vi-s in web pages without using the remote panel technique? If so, how do you do that?

Preben....

 

 

0 Kudos
Message 5 of 8
(3,300 Views)

Preben,

 

You do, unfortunately, share the VI among different executions.  Therefore only one user has control of the application at any given time.  This might not work for your application.  I'd start by trying to pass the reference, if that doesn't work then go from there.

 

Regards,

Ryan K.

0 Kudos
Message 6 of 8
(3,293 Views)

OK, but has this reference something to do with the refnum specified in the Labview wiring-diagram?

Preben

0 Kudos
Message 7 of 8
(3,288 Views)

Kind of, the eventual idea is that you'll get it into a LabVIEW refnum and then you can use it to call properties and methods.  The difficulty would arise if the refnum is represented differently in IE or in whatever scrpiting language you're using than it is in LabVIEW.

The first thing to try would be to just pass it directly from the script which is calling LabVIEW as a parameter.

0 Kudos
Message 8 of 8
(3,277 Views)