Programming, Customizing, and Integrating ChimneySweep® (Professional Edition Only):
ChimneySweep® is designed to make a very complicated process become very simple. To achieve that, ChimneySweep must be a very complicated product, yet it must present itself in the simplest manner possible.
All three Editions of the product work this way, and all three of them share this degree of internal complexity, but all of this is carefully concealed from both the Traditional Edition and the Runtime Edition user... We presume that they don't want to know, and they probably don't.
(But if you do want to know, welcome! Read on!)
If you have purchased ChimneySweep Professional Edition, however, you have full, unfettered access to all of these features ... features that set this product well apart from all of its competition:
-
Programmability: ChimneySweep is, in fact, a fully-programmable, language-driven product. It incorporates a full-featured programming language similar to, and indeed inspired by, Paradox® for Windows' ObjectPAL™, with a healthy smattering of Borland's Delphi® mixed-in for good measure.
All ChimneySweep “jobs” are, in fact, programs. They are generated and then immediately compiled by the Job Editor. (This process is, in fact, carried-out by another program which we supply, the so-called “Builder Script.”) When the user runs a job, it sets-up the appropriate settings in shared memory variables and then invokes the “System Script” which we also supply. This, therefore, is how any job actually carries out its task.
Each new release of ChimneySweep augments both the Builder and System components, doing so in a backward-compatible way. When jobs are invoked on a particular release of ChimneySweep, they automatically access the “current” versions of these scripts.
Incidentally, both the “Builder Script” and the “System Script” are merely stub-routines which invoke corresponding libraries to do their work. You receive the full, annotated source-code not only of the scripts but also of these libraries. This is done to give you, the Professional Edition user, maximum opportunity to customize this behavior.
As a Professional Edition licensee, you receive the full annotated source-code to all of these scripts and libraries, and to the Script Editor tool that was used to produce them. You also receive more than 200 pages of additional documentation which describes, in great detail, how all of this magic actually works. (That is to say, exactly how “we make it look easy...”)
-
Integration into other applications: There are three distinct ways that you, a Professional Edition licensee, can integrate ChimneySweep into your custom applications. Each one is built upon the other:
-
CHMAPIxx.DLL: This library provides a stable interface to ChimneySweep which will always be upward-compatible from one version to the next. (In releases up to and including release 5.1, both a 16-bit and a 32-bit native version of this DLL are provided; in releases thereafter, only a 32-bit native version is provided.)
-
Delphi® VCL control: ChimneySweep is written in Delphi, and if your application also uses Delphi you can use the VCL™ control which we supply in annotated source-code form. This control is built upon the CHMAPI.DLL interface and is a definitive example of its use.
-
OCX™ control: This facility allows you to use ChimneySweep from any programming environment which supports OCX controls. (This facility is otherwise known as OLE™, ActiveX™, etc ...) As you well know, this list realistically includes every Windows programming environment, including Delphi®, C++Builder® Visual Studio® Visual Basic®, Paradox® for Windows, and many more. In this context, ChimneySweep simply becomes “an object,” with methods that you can call, and properties that you can examine and manipulate.
(We supply the OCX control in compiled form as well as source-code, so that you can install and use it immediately, even if you don't use Delphi.)
To do this, you need a Runtime Edition license for each deployment of your application. These licenses are available in substantial quantity discounts, as well as unlimited-distribution annual licenses.
-
-
Customization: As previously mentioned, ChimneySweep “jobs” all work the same way: they set-up options in shared variables, then invoke a common script (the “System Script”), which in turn invokes a common library.
Since you, as a Professional Edition licensee, have the full annotated source-code both to the System Script and to the corresponding libraries, you can, if you choose, completely re-define what a job actually does when it runs.
Jobs are built by another script and library which we supply: the “Builder Script.” Once again, you can, if you choose, augment or redefine these components, thus giving yourself complete control over exactly what happens when a job is constructed using the Job Editor.
Finally, since “jobs are programs,” you are also free to use the Script Editor tool to define your own job, start-to-finish, using as little or as much of our supplied scripts and libraries as you may choose.
The “shared variable” pool that is used when a job runs is also used when a job is built, and that same pool is available as a means of communication between your programs and ChimneySweep. This pool may be accessed equally by any of the three interfaces provided: DLL, Delphi control, or OCX.
This immense flexibility gives you freedom to choose exactly how you may wish to integrate ChimneySweep with your application. ChimneySweep is designed specifically to “go into places where it isn't easy for your application to go,” to deal with error-related situations that do not commonly occur. You can customize ChimneySweep, which is already prepared to handle these things, instead of being forced to build special-purpose code into your own code.