Author: greatlrd
Date: Sun Jun 10 00:22:09 2007
New Revision: 27093
URL:
http://svn.reactos.org/svn/reactos?rev=27093&view=rev
Log:
start implement of GetDeviceIdentifier we are filling one more member right. this time we
getting the driver name
Modified:
trunk/reactos/dll/directx/ddraw/Ddraw/ddraw_main.c
Modified: trunk/reactos/dll/directx/ddraw/Ddraw/ddraw_main.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/directx/ddraw/Ddraw/dd…
==============================================================================
--- trunk/reactos/dll/directx/ddraw/Ddraw/ddraw_main.c (original)
+++ trunk/reactos/dll/directx/ddraw/Ddraw/ddraw_main.c Sun Jun 10 00:22:09 2007
@@ -458,6 +458,9 @@
BOOL found = FALSE;
DWORD iDevNum = 0;
DISPLAY_DEVICEA DisplayDeviceA;
+ HKEY hKey;
+ DWORD lpType = 0;
+ DWORD strSize = MAX_DDDEVICEID_STRING;
LPDDRAWI_DIRECTDRAW_INT This = (LPDDRAWI_DIRECTDRAW_INT) iface;
@@ -506,10 +509,36 @@
/* we found our driver now we start setup it */
strcpy( pDDDI->szDescription, DisplayDeviceA.DeviceString);
+ if
(!_strnicmp(DisplayDeviceA.DeviceKey,"\\REGISTRY\\Machine\\",18))
+ {
+ if (RegOpenKeyExA(HKEY_LOCAL_MACHINE,
&DisplayDeviceA.DeviceKey[18], 0, KEY_QUERY_VALUE, &hKey) == ERROR_SUCCESS )
+ {
+ if (RegQueryValueExA(hKey, "InstalledDisplayDrivers",0,
&lpType, (LPBYTE)pDDDI->szDriver, &strSize) == ERROR_SUCCESS)
+ {
+ char *pdest;
+ /* FIXME if the file is name
+ ati2dvag.dll.dll then we are doom
+ a better code should be use to strip away .dll
+ */
+ pdest = strstr(pDDDI->szDriver,".dll");
+ memset(pdest,0,3);
+ }
+ RegCloseKey(hKey);
+ }
+ retVal = DD_OK;
+ }
+ //else
+ //{
+ // /* FIXME ?? */
+ // DX_STUB_str("Error did not manger cut reg key\n"
+ // DX_STUB_str(DisplayDeviceA.DeviceKey);
+ //}
+
+
/* This api still under devloping now we can get desc of the
primary drv
*/
- retVal = DD_OK;
+
break;
}