USB Monitoring Control - TODO
Download USB Monitoring Control Hide this button

Usage Environments

This documentation defines the usage environment as a programming language or development platform, for which it is possible to use the USB Monitoring Control library. Theoretically, there are unlimited languages and platforms that can use the library, because it supports both pure COM and OLE automation interfaces, which makes it highly portable. For clarity, in this documentation we focus on the following two environments:

Native Environment

Native environment means the language that is binary compatible with COM, more precisely, the one that supports COM local interfaces. You can create a native client in C/C++ languages, Borland Delphi and others. As usual, if you are looking for the highest performance and lowest overhead, while keeping your executable as small as possible, the native environment is your right choice.

The native client must load the library as an in-proc component and make sure to use the free threaded marshaller. In fact, the so-called native interfaces in the library require that your runtime does not provide the marshaller for the interface - they are intended to be called directly. INativeListener is the only pure native interface in the library. All other interfaces are dual and can be called through any marshaller (or without one).

Managed Environment

Under managed environment we understand all scripting and similar languages. They include JavaScript, VB script, Visual Basic, Java and the whole .NET platform. All these languages and tools are capable of working with OLE automation-compatible interfaces. The USBMC library supports managed clients, providing the highest possible performance while keeping the library usage as simple as possible.

Please note, that you can also create the client in “native” languages, such as C++ or Delphi, that in fact call the managed version of the library interfaces. While this is possible and actually may simplify your code and boost your development time, the performance will be slightly less, compared to the one in pure native environment.