On Fri, 2007-02-23 at 19:20 -0600, Misha Koshelev wrote:
Hi, just wanted to update everybody on my work with this, sorry I have not been good at replying to personal emails lately. I am not currently attaching any code but will clean things up and then submit my patches to wine-patches soon.
So, the good news is that, as a proof of concept, I have gotten the Vector NTI installer to work successfully, which requires the JScript functionality. Specifically, this tests custom actions 5/6 and 37/38, there are two other sets that would be nice to test (but it is all the same script handler so it should work).
Also, to make this work, I had to implement the OLE automation interface. Now, I have not implemented the entire interface yet, but I have made the entire .tlb file for this and made a framework which makes implementing everything fairly straightforward (and everything is a wrapper around the existing MSI database functions, so there is no actual functionality, it is just adding new cases to the switch statements that call the MSI database functions appropriately).
Basically, because of the MSI design where everything that is an object has an MSIHANDLE, I have made one Automation Object that each specific object "inherits" from by implementing its invoke function (minus basic parameter checking, etc. which is all done by the automation object) and passing it to create_automation_object with its CLSID. It is pretty easy to implement more functions, and I will try to keep on adding more, probably as patches that I will periodically send to wine-patches.
Anyhow, look for my first patches in the next couple of days.
Misha
Almost forgot, one big caveat is right now for some reason Microsoft Script 5.6 does not install properly on wine either (bummer), it looks for some Scriptable.Dictionary (I am writing this from memory) object, doesn't find it, and then doesn't want to run the script, so currently one needs to install IE6 first to get Microsoft Script to work properly. But in any case IE6 < IE6+native MSI which was required before, and I think tracking down the Microsoft Script installation problem should not be too bad.
Misha