#define NDEBUG
#include <debug.h>
-typedef enum
-{
- HWPD_STANDARDLIST = 0,
- HWPD_LARGELIST,
- HWPD_MAX = HWPD_LARGELIST
-} HWPAGE_DISPLAYMODE, *PHWPAGE_DISPLAYMODE;
-
typedef struct _HWDEVINFO
{
struct _HWCLASSDEVINFO *ClassDevInfo;
SP_DEVINFO_DATA DevInfoData;
+ BOOL HideDevice;
} HWDEVINFO, *PHWDEVINFO;
typedef struct _HWCLASSDEVINFO
if (HwDevInfo != NULL)
{
Ret = DisplayDeviceAdvancedProperties(hpd->hWnd,
+ NULL,
HwDevInfo->ClassDevInfo->hDevInfo,
&HwDevInfo->DevInfoData,
- hpd->hComCtl32) != -1;
+ hpd->hComCtl32,
+ NULL,
+ 0) != -1;
}
return Ret;
/* get the location string */
if (GetDeviceLocationString(HwDevInfo->DevInfoData.DevInst,
+ 0,
szBuffer,
sizeof(szBuffer) / sizeof(szBuffer[0])) &&
LoadAndFormatString(hDllInstance,
LocalFree((HLOCAL)szFormatted);
}
- if (GetDeviceStatusString(HwDevInfo->ClassDevInfo->hDevInfo,
- &HwDevInfo->DevInfoData,
+ if (GetDeviceStatusString(HwDevInfo->DevInfoData.DevInst,
+ NULL,
szBuffer,
sizeof(szBuffer) / sizeof(szBuffer[0])) &&
LoadAndFormatString(hDllInstance,
ClassDevInfo->hDevInfo = SetupDiGetClassDevs(&ClassDevInfo->Guid,
NULL,
hpd->hWnd,
- DIGCF_PRESENT);
+ DIGCF_PRESENT | DIGCF_PROFILE);
if (ClassDevInfo->hDevInfo != INVALID_HANDLE_VALUE)
{
DWORD MemberIndex = 0;
MemberIndex++,
&DevInfoData))
{
+ BOOL HideDevice = FALSE;
+
if (ClassDevInfo->HwDevInfo != NULL)
{
PHWDEVINFO HwNewDevInfo = HeapReAlloc(GetProcessHeap(),
}
}
+ /* Find out if the device should be hidden by default */
+ IsDeviceHidden(DevInfoData.DevInst,
+ NULL,
+ &HideDevice);
+
/* save all information for the current device */
ClassDevInfo->HwDevInfo[ClassDevInfo->ItemCount].ClassDevInfo = ClassDevInfo;
- ClassDevInfo->HwDevInfo[ClassDevInfo->ItemCount++].DevInfoData = DevInfoData;
+ ClassDevInfo->HwDevInfo[ClassDevInfo->ItemCount].DevInfoData = DevInfoData;
+ ClassDevInfo->HwDevInfo[ClassDevInfo->ItemCount++].HideDevice = HideDevice;
}
}
while (HwDevInfo != LastHwDevInfo)
{
- DWORD RegDataType;
INT iItem;
LVITEM li;
/* get the device name */
- if ((SetupDiGetDeviceRegistryProperty(ClassDevInfo->hDevInfo,
- &HwDevInfo->DevInfoData,
- SPDRP_FRIENDLYNAME,
- &RegDataType,
- (PBYTE)szBuffer,
- sizeof(szBuffer),
- NULL) ||
- SetupDiGetDeviceRegistryProperty(ClassDevInfo->hDevInfo,
- &HwDevInfo->DevInfoData,
- SPDRP_DEVICEDESC,
- &RegDataType,
- (PBYTE)szBuffer,
- sizeof(szBuffer),
- NULL)) &&
- RegDataType == REG_SZ)
+ if (!HwDevInfo->HideDevice &&
+ GetDeviceDescriptionString(ClassDevInfo->hDevInfo,
+ &HwDevInfo->DevInfoData,
+ szBuffer,
+ sizeof(szBuffer) / sizeof(szBuffer[0])))
{
- /* FIXME - check string for NULL termination! */
-
li.mask = LVIF_PARAM | LVIF_STATE | LVIF_TEXT | LVIF_IMAGE;
li.iItem = ItemCount;
li.iSubItem = 0;
li.iSubItem = 1;
ListView_SetItem(hpd->hWndDevList,
- &li);
+ &li);
}
}
}
IN LPARAM lParam)
{
PHARDWARE_PAGE_DATA hpd;
+ INT_PTR Ret = FALSE;
hpd = (PHARDWARE_PAGE_DATA)GetWindowLongPtr(hwndDlg,
DWL_USER);
EnableTroubleShoot(hpd,
GetWindowTextLength(hwndDlg) != 0);
}
+ Ret = TRUE;
break;
}
}
}
- return FALSE;
+ return Ret;
}