ActiveX Scripting is Microsoft's technology for hosting a scripting language in your application.
It works by separating the responsibilities. To run a script, you simply instantiate the relevant scripting engine (according to script language), and furnish it with the SourceCode.
If you want the script to call your application, you can provide IDispatch-derived interfaces for them to the ScriptingEngine, which then exposes these objects as global variables. This is how the ActiveServerPages host provides the Request, Response, etc. objects to the ASP script. You can also define event handlers within script for these objects as well, which is how, for example, MicroSoft's InternetExplorer hooks up DocumentObjectModel events.
Another cool feature is that you can call from your compiled application into a function/object defined purely within script. This is done by calling IActiveScript::GetScriptDispatch? which returns an IDispatch pointer whose properties/methods are actually the the globals of the ScriptingEngine.
Currently, scripting engines are available for VbScript, EcmaScript (aka JScript/JavaScript), PerlScript, PythonLanguage, Haskell, LuaScript, RubyScript, PHP, ForthScript?, HaskellScript?, NullScript?, TclScript? (any others?)
Some resources:
See also WindowsScriptingHost