Nicholas Paldino said:
in message news:
[email protected]...
That's what I was afraid of, thanks.
That's not entirely accurate in my experience (though you may have to resort
to it depending on the component). .There's no offical API that applies to
all "components" but each component will often (usually) have a way of
checking. It may rely on an official technique such as MSI or even (often)
an official registry key but in some cases the technique may be crude or
even unreliable (possibly not compatible with future releases). For
mainstream components however there are usually ways that are reliable in
practice (for MDAC for instance, see here:
http://support.microsoft.com/kb/301202 - MSFT acknowledges it may not be the
most reliable way but it likely is). The story runs deeper however since
other issues can come into play. For instance, you may simply be able to
check the version of Windows at runtime. Some components are pre-installed
with certain versions of the OS for instance and I even have a MSFT link
somewhere for this (I'll try to dig it up for you). Even if they are
pre-installed however (meaning that you can just check the version of
Windows you're interested in and it should be installed in theory), they may
not be Windows protected files so some other poorly written install app
could have overwritten them with earlier versions (or perhaps it can be
officialy disabled using Windows itself). Also consider that you may be able
to simply ship and install a component's redistribtable which should be
robust in the presence of earlier versions (you should check this). You
really need to research the subject in general but ultimately you'll have to
check each individual component to see what MSFT officially says about it
(which isn't always easy to track down).