[try3, 4/4] msi: Add full JScript/VBScript support.
James Hawkins
truiken at gmail.com
Thu Mar 1 17:36:29 CST 2007
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.
--
James Hawkins
More information about the wine-devel
mailing list