Aley Keprt wrote:
> 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

That's the thing - I don't ask for explicit interface versions, calling
DirectDrawCreate() to obtain any suitable interface.  I happen to know that
DirectX 3 contains all the base functionality I use, and the casual
installer check for that is just a precaution.


> instead of using some undocumented tricks to obtain DirectX version.

Microsoft's GetDxVer sample uses a DDRAW.DLL file version check for DX3 and
earlier, which is official enough for me.


> 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.

You're _way_ over-complicating things!  It was simply looking for the DX
version number in a registry key that didn't exist in older versions of
DirectX.  Failing to find the version key it assumed DirectX was not
installed.

Here's the NSIS function I was using for the old check (yes it is wrong, and
no I didn't write it):
 http://nsis.sourceforge.net/archive/nsisweb.php?page=407&instances=0,110

Si

Reply via email to