[try3, 4/4] msi: Add full JScript/VBScript support.
Misha Koshelev
mk144210 at bcm.tmc.edu
Thu Mar 1 20:00:27 CST 2007
On Thu, 2007-03-01 at 15:36 -0800, James Hawkins wrote:
> On 3/1/07, Misha Koshelev <mk144210 at bcm.tmc.edu> wrote:
> > On Thu, 2007-03-01 at 15:04 -0800, James Hawkins wrote:
> > > On 3/1/07, Misha Koshelev <mk144210 at bcm.tmc.edu> wrote:
> > > > No changes from previous version.
> > > >
> > > > Implements the IActiveScriptSite interface which links with the session
> > > > object implemented in patch #3 and then adds a call to the script
> > > > handler from the common script handling function implemented in patch
> > > > #1. This fixes bug #7357 and possibly others.
> > > >
> > > > Changelog:
> > > >
> > > > * msi: Add full JScript/VBScript support.
> > > >
> > >
> > > +static HRESULT ASS_create(IUnknown *pUnkOuter, LPVOID *ppObj)
> > > +{
> > >
> > > I'm not trying to be immature, but you should probably come up with a
> > > better prefix.
> > >
> > > + * Call a script. This is our meat and potatoes.
> > > + * - Currently, since the function is relatively new, it will
> > > always end up returning S_OK.
> > > + * Think of it like a bonus feature, we can run the script -
> > > great. If we have a problem,
> > > + * we are no worse off than if this function had not been called.
> > > + */
> > > +DWORD call_script(MSIHANDLE hPackage, INT type, LPCWSTR script,
> > > LPCWSTR function, LPCWSTR action)
> > > +{
> > > ...
> > > +/* return ret; */
> > > + return ERROR_SUCCESS; /* FIXME: Until thoroughly tested,
> > > always return success */
> > >
> > > This is wrong...and a hack. Don't be afraid of bugs. By always
> > > returning ERROR_SUCCESS, you're just hiding the bugs. What testing
> > > are you referring to? If a user runs an installer and the script
> > > fails, yet we return ERROR_SUCCESS, how are we going to know that the
> > > script is the problem?
> > Well for one thing, until the entire OLE automation interface is
> > implemented and not just a partial implementation, scripts might fail
> > because a method has not been implemented yet. Plus, the current
> > behavior of the installer is to just make a FIXME with an unhandled
> > custom action but it continues anyhow without just stopping the
> > installation. It seems like this would be the analogous thing to do
> > until the whole OLE automation interface is implemented. What do you
> > think?
> >
>
> The number of installers with scripted custom actions is limited
> compared to those without. I also don't know of any installer that
> requires scripting but will succeed if the scripting is not
> implemented. This should be implemented correctly the first time, and
> if a certain installer doesn't work because of an unimplemented
> function/object, then we implement the function/object. You're
> missing the point that we hide bugs with hacks like this.
>
Ok, I'll do it this way. Thanks for the comments about the info leak and
strdupAtoW, that makes my first patch a lot shorter. I posted the new
set on wine-patches, if you have any more comments please let me know.
Thanks
Misha
More information about the wine-devel
mailing list