v2.36
|
|
Renga API is a program interface to the Renga system created using COM technology. To successfully work with the Renga API, you should understand the basic principles of COM as well as the basic principles of building, extending and supporting the Renga API.
Renga API is a set of COM interfaces, the main interface is IApplication, all other interfaces can be obtained from it. API interfaces are described in the type library - .tlb, which is included in Renga SDK. Languages that support COM, import this library and create their own types to work with APIs. For example for the C++ language the "import" directive creates header files that describe the C++ Renga interfaces.
Dynamically typed languages such as PowerShell and Python can also work with COM, but cannot be used to write plugins because cannot be loaded as a library into the Renga process. Thus, they only allow access Renga from another process using interprocess COM communications. To access Renga from such languages, use methods and properties whose names end with the "S" suffix to get/pass GUIDs as strings. See how to access Renga from dynamically typed languages here.
Renga SDK consist of a type library, a set of utility libraries and source files to work with Renga API, documentation and samples. The type library does not contain constants, so the SDK contains header files (for C++) and utility library (for .Net) that describe constants used in Renga. These libraries also contain code that simplifies the work with events and some other Renga API mechanisms.
Renga plugin is a library that can be loaded into Renga. Currently Renga can load C++ and .Net dlls. In order for a library to be considered a plugin, it must contain a function that returns the plugins::IPlugin interface. This interface is declared in the SDK in utility header file and the utility assembly, for C++ and .Net respectively. In order to describe the plugin and indicate which of the libraries is the plugin library, the .rndesc file is used. More details can be found in How to implement a plugin section.