Detect DX version (and OpenGL version) installed?

BlitzMax Forums/BlitzMax Programming/Detect DX version (and OpenGL version) installed?

This'll return the DX Version number.

Import "-ladvapi32"

Extern "win32"
   Function RegOpenKey:Int(hKeyParent:Int,SubKey$z,phkResult:Byte Ptr)="RegOpenKeyA@12"
   Function RegCloseKey:Int(hKey:Int)="RegCloseKey@4"
   Function RegQueryValueEx:Int(hKey:Int,ValueName$z,Reserved:Int,nType:Byte Ptr,ValueBytes:Byte Ptr,ValueSize:Byte Ptr)="RegQueryValueExA@24"
EndExtern

Const HKEY_LOCAL_MACHINE = -2147483646

hbank = CreateBank(4)
RegOpenKey(HKEY_LOCAL_MACHINE,"SOFTWARE\Microsoft\DirectX",BankBuf(hbank))
hKey = PeekInt(hbank,0)

value_bank = CreateBank(100)
value_bank_size = CreateBank(4)
type_bank = CreateBank(4)

PokeInt(type_bank,0,0)
PokeInt(value_bank_size,0,100)
   
RegQueryValueEx(hKey,"Version",0,BankBuf(type_bank),BankBuf(value_bank),BankBuf(value_bank_size))

dx_version:String = ""
For char=0 To PeekInt(value_bank_size,0)-1
	If PeekByte(value_bank,char)=0 Then Exit
	dx_version = dx_version + Chr(PeekByte(value_bank,char))
Next

RegCloseKey(hKey)

Print "DirectX Version : " + dx_version