> > I think the only 100% valid solution is to check that the
> > needed COM interfaces are all present. DX is based on well
> > defined COM interfaces, while "versions" are only marketing
> > names of DX.
>
> I don't use/require specific interface numbers, and use the old
(compatible,
> non-Ex) method of initialising DirectX instead.  I do need the
functionality
> first introduced with DirectX 3, so a quick version check should be fine.
> It's just a shame the previous method I used (from the NSIS website)
didn't
> quite do the trick!
>
> Si

As I can see, my last e-mail is not fully clear. I wanted to say this:
DirectX (DX) is not a centralised version-based system. It is a set of
>independent< interfaces to DX components. So if you use DX, you actually
use one or more COM interfaces. DX is just a common name of all these
interfaces. If you want to be sure that a particular machine can run your
program, you don't need to check the DirectX "version". What you actually
need is to check that all interfaces you use in your program are supported
on that machine. So I think your installer should rather try to obtain all
interfaces used in the SimCoupe, instead of using some undocumented tricks
to obtain DirectX version.

I think the reason of malfunction on NT 4.0 is that it contains a hybrid
DirectX version, which is DirectX 2 compliant, with some components
supporting several features of DirectX 3. The version probing code probably
inadvertently checks some of the DX2 libraries, and complains DX3 is not
installed.

/--
Aley

Reply via email to