Of course, when you call DirectDrawCreate(), you get an interface. That's what I wrote, I didn't mean any special interfaces. You just call ...Create() and get the interface. If you get the interface you want to use, DX is surely installed. That's it. No registry/dll version checking is actually required.
/- Aley ----- Original Message ----- From: "Simon Owen" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Thursday, March 25, 2004 1:53 AM Subject: RE: SimCoupe 0.90 beta 10 > 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 > > > >

