Purpose of the program
XppEngFilt is an ISAPI filter that was created to serve HTTP requests that
require Superx++ processing on the web server before the HTTP response is sent to
the HTTP client. In a nutshell, this is Superx++ scripting on the server, which is
similar to PHP, ASP, etc. The XppEngFilt.dll checks to see if the web resource
at the URL requested contains any Superx++ programs (bounded by the
<xpp> ... </xpp> tags) and processes them before sending
the HTTP response to the HTTP client.
The benefit of this approach is to allow complete separation of XML data from
the regular HTTP client operations. Consider a simple XML data island on a web
page that gets its data via a URL. The XML data at the URL is returned to the
data island as is. With Superx++ on the web server, it becomes possible to
encapsulate that XML data within Superx++ objects. Then when the XML data island
requests the data the Superx++ program determines which data it should send to the
HTTP client based on the parameters of the URL. Some will say that this can
already be done by ASP. The advantage to using Superx++ is that it offers all the
benefits of the Superx++ language to this sort of processing.
What is really special in this context is
that Superx++ objects can encapsulate the XML data. This also means that
the Superx++ objects (which are XML themselves) can be stored in any XML repository
(including native XML databases). Because these are objects and not mere
static data, they allow the data that they encapsulate to be adaptive
relative to the HTTP client (the data island). If the data island
accesses the XML repository (containing the Superx++ object) via a URL with
parameters, then the XML data returned to the data island can be altered based
on the parameters in the URL. And best of all, this will happen
without a single line of code change in the web page with the data
island! What this solution does is to reinforce the separation between
the data layer and the presentation layer, with the Superx++
object and its encapsulated data in the data layer and the data island and
the rest of the web page in the presentation layer.
This version contains the XppEngFilt.dll Superx++ interpeter that will interpret Superx++
programs of the beta 0.2.4 language revision. Make sure that you download the
demo Superx++ programs because they have been updated to beta 0.2.4.
Download the XppEngFilt (ISAPI filter Superx++ interpreter) for beta 0.2.4
The downloads for Superx++ have now been unified into two zip files. The zip files
contain the necessary files as well as a README text file to instruct you in
Source -- contains the source files for C++ projects for Superx++
Executable -- contains the executables for C++ projects for Superx++
Extra Setup for XppEngFilt
1) Go to the Start menu and select Run...
2) Type cmd and press Enter
3) Type in the MS-DOS console window: net stop
w3svc and press Enter
4) Leave the console window open and go to the Start menu and select Run...
5) Type regedit and press Enter
6) Navigate to the following registry key:
7) a) If there is nothing in that key, type in the path to the place in which
you downloaded the XppEngFilt.dll. If you did everything as the instructions
stated then this path will be: C:\XppEngFilt\XppEngFilt.dll
b) If there is something in that key then type in the path in 7 a) preceded by
a comma into the key's value textbox.
8) Close the registry.
9) Go back to the console window and type: net
start w3svc and press Enter
10) Close the console window.
What these steps have done is to inform IIS of the presence of XppEngFilt.dll
on your machine and will allow its execution. Remember that XppEngFilt.dll is
the program that will process Superx++ programs for IIS.
Please note that if you wish to disable XppEngFilt you should perform the same
instructions above. However, when you get to step 7) you should delete the file
path to XppEngFilt.dll and then close the registry. What this will do is set
things back to the way they were before you installed XppEngFilt.
To remove XppEngFilt from your computer completely, go to the Control
Panel->Add or Remove Programs, and remove XppEngFiltInst from there. Make
sure you have stopped the w3svc service and removed the file path to
XppEngFilt.dll before you do this.
Calling the Program
To invoke a program using XppEngFilt.dll:
1) call a URL on a web server which has XppEngFilt.dll installed.
2) the arguments of the URL will be converted into the input stream XML for the
Superx++ programs on the web resource at the URL. In other words,
will produce the input stream:
This input stream XML will be used in the Superx++ code in
3) If there are no parameters to the URL then the input stream is empty.
Important Issue Regarding XppEngFilt and URLs
Please note that XppEngFilt will trap all HTTP requests that have Superx++ code in
the web resource being accessed. Therefore commands like the
<exec> statement should not be seeded with any URL pointing to
a web resource containing Superx++ code on the same computer as that on which
XppEngFilt is installed. What will happen is that the Superx++ code will be
processed by XppEngFilt before the contents of the HTTP response are returned
to the <exec> statement. As such,
the <exec> statement will not
work properly, since it expects Superx++ code and may find something else returned
All that this means, in short, is that you should use URLs that return any
other kind of data other than Superx++ programs if the URL points to the same web
server on which XppEngFilt is installed. If you must access a web resource on
the same web server then use a file path rather than a URL. Doing this will
bypass XppEngFilt and things will work correctly.