<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.5.7650.28">
<TITLE>RE: msi: InstallPackage check for UI level must not disregard flags (updated)</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/plain format -->
<P><FONT SIZE=2>So do you think I should add a define like INSTALLUILEVEL_NOFLAGS somewhere set to 0xf then? Should<BR>
this be in msi.h (or would this be confusing as this is not defined in Windows I don't think) or<BR>
just in the same file where the other change is being made?<BR>
<BR>
Thanks<BR>
Misha<BR>
<BR>
-----Original Message-----<BR>
From: James Hawkins [<A HREF="mailto:truiken@gmail.com">mailto:truiken@gmail.com</A>]<BR>
Sent: Tue 2/6/2007 1:57 AM<BR>
To: wine-devel@winehq.org<BR>
Cc: Koshelev, Misha Vladislavo<BR>
Subject: Re: msi: InstallPackage check for UI level must not disregard flags (updated)<BR>
<BR>
On 2/6/07, James Hawkins <truiken@gmail.com> wrote:<BR>
> On 2/5/07, Misha Koshelev <mk144210@bcm.tmc.edu> wrote:<BR>
> > This is an update, a little less hacky thanks to advice from Dmitry<BR>
> > Timoshkov. This fixes bug #6992. The installer for Vector NTI 10 was<BR>
> > getting to the<BR>
> > point where it was trying to launch the .msi files that do the actual<BR>
> > install, but was quitting with the message "This module is not designed<BR>
> > for direct execution." Install worked fine with native MSI. After a<BR>
> > while of playing with it and disassembling the MSI file with dark.exe<BR>
> > tool, I noticed that the .msi files ran in execute mode but not UI mode.<BR>
> > Finally, I checked the UI level that wine msi was reading, and it was<BR>
> > 102 which is INSTALLUILEVEL_NONE | INSTALLUILEVEL_SOURCESONLY. However,<BR>
> > MSI_InstallPackage was only checking if the uilevel >=<BR>
> > INSTALLUILEVEL_REDUCED, which would have been true in this case as<BR>
> > INSTALLUILEVEL_SOURCESONLY > INSTALLUILEVEL_REDUCED but the actual ui<BR>
> > level is INSTALLUILEVEL_NONE which is < INSTALLUILEVEL_REDUCED. This<BR>
> > patch fixes this check, and now the installer finished successfully<BR>
> > (although it seems upon a quick check that there are more install bugs<BR>
> > for this program in wine, as not all files that should be there seem to<BR>
> > be there after this install).<BR>
> ><BR>
> > Changelog:<BR>
> ><BR>
> > * msi: InstallPackage check for UI level must not disregard<BR>
> > INSTALLUILEVEL flags.<BR>
> ><BR>
> > + if ( (msi_get_property_int(package, szUILevel, 0) & 0xf) >= INSTALLUILEVEL_REDUCED )<BR>
> ><BR>
><BR>
> Magic numbers are bad. What is 0xF?<BR>
><BR>
<BR>
I just read the thread that this patch came from, but the fact that I<BR>
had to ask in the first place shows that we need at least a comment or<BR>
a descriptive constant variable/define.<BR>
<BR>
--<BR>
James Hawkins<BR>
<BR>
</FONT>
</P>
</BODY>
</HTML>