Signed-off-by: Rémi Bernon rbernon@codeweavers.com ---
It may be better to reroder this before patch #3 where we advertise the top level collection presence, but then the todo_wine removal would be pointless here. Maybe squash both?
dlls/hid/hidp.c | 20 +++++++++++++++++--- dlls/hid/tests/device.c | 1 - 2 files changed, 17 insertions(+), 4 deletions(-)
diff --git a/dlls/hid/hidp.c b/dlls/hid/hidp.c index 9aef7711d0b..e00d40ed280 100644 --- a/dlls/hid/hidp.c +++ b/dlls/hid/hidp.c @@ -931,9 +931,23 @@ NTSTATUS WINAPI HidP_GetData(HIDP_REPORT_TYPE ReportType, HIDP_DATA *DataList, U NTSTATUS WINAPI HidP_GetLinkCollectionNodes(HIDP_LINK_COLLECTION_NODE *LinkCollectionNode, ULONG *LinkCollectionNodeLength, PHIDP_PREPARSED_DATA PreparsedData) { - TRACE("stub (%p, %p, %p)\n", LinkCollectionNode, LinkCollectionNodeLength, PreparsedData); + WINE_HIDP_PREPARSED_DATA *data = (WINE_HIDP_PREPARSED_DATA*)PreparsedData;
- *LinkCollectionNodeLength = 0; + TRACE("(%p, %p, %p)\n", LinkCollectionNode, LinkCollectionNodeLength, PreparsedData);
- return STATUS_NOT_IMPLEMENTED; + if (data->caps.NumberLinkCollectionNodes > 1) + FIXME("Unsupported number of link collections!\n"); + + *LinkCollectionNodeLength = 1; + LinkCollectionNode[0].LinkUsage = data->caps.Usage; + LinkCollectionNode[0].LinkUsagePage = data->caps.UsagePage; + LinkCollectionNode[0].Parent = 0; + LinkCollectionNode[0].NumberOfChildren = 0; + LinkCollectionNode[0].NextSibling = 0; + LinkCollectionNode[0].FirstChild = 0; + LinkCollectionNode[0].CollectionType = 1; + LinkCollectionNode[0].IsAlias = 0; + LinkCollectionNode[0].UserContext = 0; + + return STATUS_SUCCESS; } diff --git a/dlls/hid/tests/device.c b/dlls/hid/tests/device.c index cdc1d94db1a..79530c63416 100644 --- a/dlls/hid/tests/device.c +++ b/dlls/hid/tests/device.c @@ -240,7 +240,6 @@ static void process_data(HIDP_CAPS Caps, PHIDP_PREPARSED_DATA ppd, CHAR *data, D ULONG nodes_count = ARRAY_SIZE(nodes);
status = HidP_GetLinkCollectionNodes(nodes, &nodes_count, ppd); - todo_wine ok(status == HIDP_STATUS_SUCCESS, "HidP_GetLinkCollectionNodes failed:%x\n", status);
for (i = 0; i < nodes_count; ++i)