From: Dee Earley on
On 31/01/2010 03:55, GS wrote:
> You might find it interesting that among the excluded runtimes is
> comdlg32.ocx and comctl32.ocx, for which Win7 includes DLLs only in its
> System32 folder.

Those OCX files have never been part of the base Windows install. Where
they are installed, they have been dependencies of an installed
component (Windows "valueadd" folder, resource kit, SQL server, etc)

http://support.microsoft.com/dllhelp/?dlltype=file&l=55&alpha=comdlg32.ocx&S=1

> (Hmm, I wonder if using DLLs via References would be an
> optional alternative to shipping runtimes<??>)

No, the DLL "version" is a completely different file which you can use
via declare statements (as native win32 apps do) but it is a very
different method os using them

> What get's tricky is how we handle the distribution and registration
> depending on the OS version our install utility is running on. What makes
> this so is that Vista is version 6.0 and, according to my 32bit app using a
> WMI query to Win32_OperatingSystem, Windows 7 is version 6.1<for some
> strange reason>.<<Perhaps this is an indication that Vista has officially
> been overhauled, but then..???!>> This might be fairly easy to manage with
> the newer install utilities but I still use Wise v9x and so it won't let me
> isolate v6.1 for some reason. It has built in constants for Win95 through to
> XP only. The documentation says it returns version info in #.## format, but
> its script IF statement doesn't seem to be able to work with that. It works
> fine with whole numbers. (..though I suppose I should upgrade to a newer
> version<ugh!>) To avoid having to make a separate Win7 installer I just
> include the files regardless of OS and let the app manage the registration
> (or removal if not required) at first startup.

I recomend Inno which (assuming you're script is sensible) handles all
the known (32bit+) versions of windows without a problem.

--
Dee Earley (dee.earley(a)icode.co.uk)
i-Catcher Development Team

iCode Systems
From: GS on
Hi Dee,
Thanks for your input.

<<Those OCX files have never been part of the base Windows install. Where
they are installed...>>
AFAIK I have never had to ship these prior to Windows7 so I assume they are
installed as the VB6 runtime support for previous OSs. They're usually in the
System32 folder. The support statement I referred to (from MS) suggests these
were included with the earlier OSs.

<<No, the DLL "version" is a completely different file which you can use via
declare statements (as native win32 apps do) but it is a very different
method os using them>>
Sounds like the way we would normally use a DLL. I apologize for any
confusion as I didn't realize I was suggesting otherwise.

<<I recomend Inno...>>
I've heard of this and I know other developers that use it. I did buy
another one named PaquetBuilder which is authored by G.D.G. Software. My
intent was to review it as a candidate for a client to use for shipping
product data updates to sales reps because it looked like a very
user-friendly app. Turns out it's also fairly robust and offers all the
features my Wise app does but with a much simpler UI. The author is in the
process of preparing a new release for 2010 so I'll wait to see what that
offers before I decide to use it.

Meanwhile, Wise still serves me well. In fact, after I posted here it was
bugging me again that my Wise script wouldn't work for Win7 since it works
for Vista. I just had to take another look at it so I stepped through in
debug mode and found an extra line statement that was parsing the returned
value to only the first position from left. The line previous to this
returned the entire version same as does WMI. At this point I realized I had
received this block of script from my mentor and used it without question or
scrutiny because it worked at the time. -My bad!

I have modified the script to handle the runtimes and revised my VB6 code
back to the original. Fact is, I already had a process built into my apps for
handling updates based on OS version and so it was easy for me to contrive
the work-around I mentioned. Fortunately, nobody has installed my apps to
Win7 (as yet), but I had to do some client testing for 64bit Vista. Since
Win7 was here I bought a 64bit machine with Win7 64bit installed for testing
because I do not want to own anything with Vista on it. This is how I
discovered support for the VB6 runtimes was not included in the OS.

Thanks again!
Kind regards,
Garry