Does Reg-Free COM "Microsoft.Windows.ActCtx" work with script - late binding?

I successfully got Reg-Free COM working using C ++ and C # using manifest files, i.e. early binding. Now I am trying to get this working using the latest binding. The technique that I discovered after repeatedly searching the Internet seems to use "Microsoft.Windows.ActCtx".

The example I used for testing was the MS "Activation without registration on COM components", found in http://msdn.microsoft.com/en-us/library/ms973913.aspx to generate the SideBySide example. Then I tried to use a scripting language; VBScript and Python, however, both refused the same way (also tried VBA). An example of VBScript is given below:

Set actctx = CreateObject("Microsoft.Windows.ActCtx")
actctx.manifest = "C:\test\client.exe.manifest"

Set SBSObj = actctx.CreateObject("SideBySide.SideBySideClass")
wscript.echo SBSObj.Version

Using something like "SysInternals Process Monitor", you can see that the following command is executing (Windows 7 x64):

C:\Windows\SysWOW64\cscript.exe //Nologo C:\test\VBRegFreeTest.vbs

seems to work by loading manifests and trying to start looking for equivalent registry calls and won't be able to find them. So it seems to partially work. I also copied wScript.exe to a local directory to eliminate problems with the directory for launching application files and the manifest.

Microsoft.Windows.ActCtx Windows Xp "prodID" , . ++ #.

, "Microsoft.Windows.ActCtx" . . Python VBScript . , "Microsoft.Windows.ActCtx" .

+4
1
  • EXE , COM-, . SideBySide.dll.
  • EXE : Windows 7 , (Windows XP ).
  • Windows 7 EXE COM-, EXE. mt.exe Visual Studio.
  • SideBySide.dll SideBySide.dll.manifest , EXE.
  • SideBySide.dll.manifest progID COM- comClass.

VBS, DLL : COM- :

Dim o
Set o = CreateObject("Microsoft.Windows.ActCtx")

//in example here is a manifest reference: o.manifest = "SideBySide.X.manifest"
//but it does not function by me. By me a dependency is described in manifest of EXE.

Dim obj
Set obj = o.CreateObject("SideBySideLib")
Call MsgBox(obj.Version())
Set obj = Nothing
Set o = Nothing
+1

All Articles