ActiveX Features That Are Supported in LabWindows/CVI

Updated Aug 14, 2019

Reported In

Software

  • LabWindows/CVI

Operating System

  • Windows

Programming Language

  • C
  • C# .NET
  • C++
  • Visual Basic .NET

Issue Details

What type of ActiveX features that are supported in LabWindows/CVI? 

Solution

The following is a list of the ActiveX components that LabWindows/CVI supports. 

ActiveX Controls
  • Starting from LabWindows/CVI 6.0, ActiveX containers are supported. It allows embedding ActiveX controls into the user interface. Once inside the User Interface Editor, you can select Create » ActiveX or right-click on the user interface and choose ActiveX to insert an ActiveX control. This brings up an ActiveX dialog box where you can select the type of object you want to insert into your user interface. You can create an ActiveX Control or ActiveX document. You can also create these ActiveX objects from an existing file.

ActiveX Automation
  • Server
LabWindows/CVI can act as an automation server. This means that you can control the CVI Development Environment within other automation controllers. For instance, you can move files in and out of LabWindows/CVI projects, compile a file, or build a project from within some other application. For example on using LabWindows/CVI as an automation server select Help » Find Examples and then navigate to Communicating with External Applications » ActiveX » CVI.

LabWindows/CVI also provides the option to make a LabWindows/CVI application an ActiveX server. Built-in ActiveX Server Wizard provides an easy way to create and edit ActiveX Server projects. Refer to Building ActiveX Servers in LabWindows/CVI tutorial and LabWindows/CVI Help to get more information about making a LabWindows/CVI application as an ActiveX server. Select Help » Contents and type "Create ActiveX Server Wizard" under the Index tab to access help information
 
  • Client
When LabWindows/CVI acts as an ActiveX client, it can access other applications that act as ActiveX servers, such as Microsoft Excel, Microsoft Word, and LabVIEW. You can use the ActiveX Controller Wizard under Tools » Create ActiveX Controller... to create an instrument driver for an ActiveX server. Refer to this kb for more information. 

The wizard also includes support for ActiveX events and dual interfaces. 
 
  • Support for Events
Some ActiveX server objects generate events in addition to providing methods for you to call from an ActiveX client program. ActiveX servers specify the events they generate as a collection of methods in an event object. For each event object you select, the ActiveX Controller Wizard generates a set of functions you can use to register callbacks for each event. LabWindows/CVI calls the callbacks when the server generates the events. 
 
  • Dual Interface Support
When an interface is labeled "dual" in the type library, this denotes that the interface offers binding through IDispatch and Vtable. IDispatch offers support for late binding to properties and methods. Vtable binding offers higher performance since this method is called directly instead of through IDispatch::Invoke.
LabWindows/CVI 5.5 and later can use the ActiveX Controller Wizard to generate instrument drivers that use dual interfaces to access the server more efficiently.  
 
  • Property Get and Set Functions 
The ActiveX Controller Wizard allows you to specify how it generates functions to access properties of objects in the server. You can select:
  • Per Property - Generates property get/set functions for each property in the server
  • Per Object - Generates property get/set functions for each object in the server
  • Per Server - Generates single GetProperty and SetProperty functions through which you get and set properties for all objects in the server
 
  • Debugging
LabWindows/CVI 8.1 introduced ActiveX server interface breakpoint functions which allows you to programmatically control breakpoints when you debug your code through the LabWindows/CVI ActiveX server interface. You can use these functions to create and configure breakpoints, line tags, and excluded lines.