<!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 &lt;truiken@gmail.com&gt; wrote:<BR>
&gt; On 2/5/07, Misha Koshelev &lt;mk144210@bcm.tmc.edu&gt; wrote:<BR>
&gt; &gt; This is an update, a little less hacky thanks to advice from Dmitry<BR>
&gt; &gt; Timoshkov. This fixes bug #6992. The installer for Vector NTI 10 was<BR>
&gt; &gt; getting to the<BR>
&gt; &gt; point where it was trying to launch the .msi files that do the actual<BR>
&gt; &gt; install, but was quitting with the message &quot;This module is not designed<BR>
&gt; &gt; for direct execution.&quot; Install worked fine with native MSI. After a<BR>
&gt; &gt; while of playing with it and disassembling the MSI file with dark.exe<BR>
&gt; &gt; tool, I noticed that the .msi files ran in execute mode but not UI mode.<BR>
&gt; &gt; Finally, I checked the UI level that wine msi was reading, and it was<BR>
&gt; &gt; 102 which is INSTALLUILEVEL_NONE | INSTALLUILEVEL_SOURCESONLY. However,<BR>
&gt; &gt; MSI_InstallPackage was only checking if the uilevel &gt;=<BR>
&gt; &gt; INSTALLUILEVEL_REDUCED, which would have been true in this case as<BR>
&gt; &gt; INSTALLUILEVEL_SOURCESONLY &gt; INSTALLUILEVEL_REDUCED but the actual ui<BR>
&gt; &gt; level is INSTALLUILEVEL_NONE which is &lt; INSTALLUILEVEL_REDUCED. This<BR>
&gt; &gt; patch fixes this check, and now the installer finished successfully<BR>
&gt; &gt; (although it seems upon a quick check that there are more install bugs<BR>
&gt; &gt; for this program in wine, as not all files that should be there seem to<BR>
&gt; &gt; be there after this install).<BR>
&gt; &gt;<BR>
&gt; &gt; Changelog:<BR>
&gt; &gt;<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * msi: InstallPackage check for UI level must not disregard<BR>
&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; INSTALLUILEVEL flags.<BR>
&gt; &gt;<BR>
&gt; &gt;&nbsp; +&nbsp;&nbsp;&nbsp; if ( (msi_get_property_int(package, szUILevel, 0) &amp; 0xf) &gt;= INSTALLUILEVEL_REDUCED )<BR>
&gt; &gt;<BR>
&gt;<BR>
&gt; Magic numbers are bad.&nbsp; What is 0xF?<BR>
&gt;<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>