The WSH Extensions Project

Alex Angelopoulos (aka at mvps dot org)


To produce a set of COM-accessible binaries which can assist administrators with specific tasks in WSH which are not easy to do per se.

Secondary Goals

Topics - The DLLs

There is a tradeoff between producing a large, monolithic DLL which includes everything, and a set of single-class DLLs which implement only one class.  My decision at this point has been to create an extensions "family", which implements core functions in several separate DLLs targeted at various categories of tasks.  This will include core functions, administration functions, and advanced math functions.


Implements core functions which are useful to a wide variety of problems, and are not truly tied to functional task; for example, the queue, stack, and string builder components in this DLL are essentially generic functions of possible use with anything being done in WSH.  This is the first released component, and has some documentation. Download.


Includes derived mathematical and statistical functions. Download.

[2003.02.03] - Added a Vectors.Class object which provides simple manipulation of 3D vectors (this is a wrapper around some of the DirectX 8 functionality).  Download.


System-related functions, such as GetSystemMetric wrappers and desktop image control. Download.


A class for interacting with Terminal Services.  This is an early attempt at consolidating all of the minor TS components I have developed over the last few months into a single usable form for remote administration and monitoring. BETA! Download.


Not yet released.  Oriented towards rapid administration without direct use of WMI or ADSI where possible.


Installation is the same as for any other ActiveX component.  Go to a command line in the folder where you will be keeping WshXCore.dll, and type the following:

regsvr32 WshXCore.dll

Letter case doesn't matter in the command.  If you have a load failure, make sure that the VB6 runtimes are installed, that the DLL is in that folder, and that you have sufficient access permissions to it.

The Legal Stuff

The source code and binary are provided under the terms of the GNU Lesser General Public License; the documentation under the terms of the GNU Free Documentation License. You have the documentation here; the source code is bundled with each downloadable DLL.

The Source and Binaries

The libraries are written in VB6 SP5 as COM DLLa composed of functionally oriented classes.  Details of Compilation and Coding Style are available.  Source code is bundled with the DLLs, linked above.


These components are not and never will be marked "safe for scripting" for Internet Explorer, for one simple reason: it is not safe to allow arbitrary remote sites to use them.

If you have issues with normal users or system accounts accessing one of the DLLs, make sure it is installed locally, registered, and that users have read and execute permissions to the DLL.


Documentation as a separate topic is somewhat spotty.  Note that the source code itself is documented, including class browser data via the VB_Description attribute.

Debugging and Error Reporting

By making these tools available under the terms of the GNU Lesser GPL, I am seeking to encourage other people to put work into what they may find useful.

I certainly appreciate error reports on the working product, and especially welcome patches - this is one reason I provide the full source code.  You should be able to make use of the code with a VB6 compiler.

If you want to make use of the code in a commercial setting, you are free to do so.  Note that I cannot provide guaranteed free support for any of the tools, although I can make customizations and provide support under a contract.

To submit bug reports, suggestions, patches, and support requests, contact me at either of the following email addresses: