mirror of
https://github.com/reactos/reactos.git
synced 2024-07-11 07:05:12 +00:00
Implement device location information override support and add the location override value for PS/2 mice. PS/2 keyboards be added next.
Please translate the location override string. svn path=/trunk/; revision=45541
This commit is contained in:
parent
29200c4aa6
commit
5095fd3746
|
@ -1405,7 +1405,8 @@ GetParentNode:
|
||||||
}
|
}
|
||||||
|
|
||||||
/* set the device location edit control text */
|
/* set the device location edit control text */
|
||||||
if (GetDeviceLocationString(DeviceInfoData->DevInst,
|
if (GetDeviceLocationString(DeviceInfoSet,
|
||||||
|
DeviceInfoData,
|
||||||
dap->ParentDevInst,
|
dap->ParentDevInst,
|
||||||
dap->szTemp,
|
dap->szTemp,
|
||||||
sizeof(dap->szTemp) / sizeof(dap->szTemp[0])))
|
sizeof(dap->szTemp) / sizeof(dap->szTemp[0])))
|
||||||
|
|
|
@ -181,7 +181,8 @@ UpdateControlStates(IN PHARDWARE_PAGE_DATA hpd)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* get the location string */
|
/* get the location string */
|
||||||
if (GetDeviceLocationString(HwDevInfo->DevInfoData.DevInst,
|
if (GetDeviceLocationString(HwDevInfo->ClassDevInfo->hDevInfo,
|
||||||
|
&HwDevInfo->DevInfoData,
|
||||||
0,
|
0,
|
||||||
szBuffer,
|
szBuffer,
|
||||||
sizeof(szBuffer) / sizeof(szBuffer[0])) &&
|
sizeof(szBuffer) / sizeof(szBuffer[0])) &&
|
||||||
|
|
|
@ -317,7 +317,8 @@ GetDeviceManufacturerString(IN HDEVINFO DeviceInfoSet,
|
||||||
|
|
||||||
|
|
||||||
BOOL
|
BOOL
|
||||||
GetDeviceLocationString(IN DEVINST dnDevInst OPTIONAL,
|
GetDeviceLocationString(IN HDEVINFO DeviceInfoSet,
|
||||||
|
IN PSP_DEVINFO_DATA DeviceInfoData,
|
||||||
IN DEVINST dnParentDevInst OPTIONAL,
|
IN DEVINST dnParentDevInst OPTIONAL,
|
||||||
OUT LPWSTR szBuffer,
|
OUT LPWSTR szBuffer,
|
||||||
IN DWORD BufferSize)
|
IN DWORD BufferSize)
|
||||||
|
@ -326,10 +327,45 @@ GetDeviceLocationString(IN DEVINST dnDevInst OPTIONAL,
|
||||||
ULONG DataSize;
|
ULONG DataSize;
|
||||||
CONFIGRET cRet;
|
CONFIGRET cRet;
|
||||||
LPWSTR szFormatted;
|
LPWSTR szFormatted;
|
||||||
|
HKEY hKey;
|
||||||
|
DWORD dwSize, dwType;
|
||||||
BOOL Ret = FALSE;
|
BOOL Ret = FALSE;
|
||||||
|
|
||||||
DataSize = BufferSize * sizeof(WCHAR);
|
DataSize = BufferSize * sizeof(WCHAR);
|
||||||
szBuffer[0] = L'\0';
|
szBuffer[0] = L'\0';
|
||||||
|
|
||||||
|
hKey = SetupDiOpenDevRegKey(DeviceInfoSet,
|
||||||
|
DeviceInfoData,
|
||||||
|
DICS_FLAG_GLOBAL,
|
||||||
|
0,
|
||||||
|
DIREG_DRV,
|
||||||
|
KEY_QUERY_VALUE);
|
||||||
|
if (hKey != INVALID_HANDLE_VALUE)
|
||||||
|
{
|
||||||
|
/* query the LocationInformationOverride value */
|
||||||
|
dwSize = BufferSize;
|
||||||
|
if (RegQueryValueEx(hKey,
|
||||||
|
L"LocationInformationOverride",
|
||||||
|
NULL,
|
||||||
|
&dwType,
|
||||||
|
(LPBYTE)szBuffer,
|
||||||
|
&dwSize) == ERROR_SUCCESS &&
|
||||||
|
dwType == REG_SZ &&
|
||||||
|
szBuffer[0] != L'\0')
|
||||||
|
{
|
||||||
|
Ret = TRUE;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
szBuffer[0] = L'\0';
|
||||||
|
}
|
||||||
|
|
||||||
|
RegCloseKey(hKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (!Ret)
|
||||||
|
{
|
||||||
if (dnParentDevInst != 0)
|
if (dnParentDevInst != 0)
|
||||||
{
|
{
|
||||||
/* query the parent node name */
|
/* query the parent node name */
|
||||||
|
@ -353,9 +389,9 @@ GetDeviceLocationString(IN DEVINST dnDevInst OPTIONAL,
|
||||||
Ret = TRUE;
|
Ret = TRUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (dnDevInst != 0)
|
else if (DeviceInfoData->DevInst != 0)
|
||||||
{
|
{
|
||||||
cRet = CM_Get_DevNode_Registry_Property(dnDevInst,
|
cRet = CM_Get_DevNode_Registry_Property(DeviceInfoData->DevInst,
|
||||||
CM_DRP_LOCATION_INFORMATION,
|
CM_DRP_LOCATION_INFORMATION,
|
||||||
&RegDataType,
|
&RegDataType,
|
||||||
szBuffer,
|
szBuffer,
|
||||||
|
@ -390,6 +426,7 @@ GetDeviceLocationString(IN DEVINST dnDevInst OPTIONAL,
|
||||||
Ret = FALSE;
|
Ret = FALSE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (!Ret &&
|
if (!Ret &&
|
||||||
LoadString(hDllInstance,
|
LoadString(hDllInstance,
|
||||||
|
|
|
@ -70,7 +70,8 @@ GetDeviceManufacturerString(IN HDEVINFO DeviceInfoSet,
|
||||||
IN DWORD BufferSize);
|
IN DWORD BufferSize);
|
||||||
|
|
||||||
BOOL
|
BOOL
|
||||||
GetDeviceLocationString(IN DEVINST dnDevInst OPTIONAL,
|
GetDeviceLocationString(IN HDEVINFO DeviceInfoSet,
|
||||||
|
IN PSP_DEVINFO_DATA DeviceInfoData,
|
||||||
IN DEVINST dnParentDevInst OPTIONAL,
|
IN DEVINST dnParentDevInst OPTIONAL,
|
||||||
OUT LPWSTR szBuffer,
|
OUT LPWSTR szBuffer,
|
||||||
IN DWORD BufferSize);
|
IN DWORD BufferSize);
|
||||||
|
|
Binary file not shown.
Loading…
Reference in a new issue