From 830e882a471628e15ac3e6d14ffc864e2d448153 Mon Sep 17 00:00:00 2001
From: Aric Stewart <aric@codeweavers.com>
Date: Wed, 14 Oct 2015 10:53:42 -0500
Subject: hid: Stub HidP_TranslateUsagesToI8042ScanCodes

My whole patch did not send last time for some reason. Here is the whole patch.

For Bug 39447

Signed-off-by: Aric Stewart <aric@codeweavers.com>
---
 dlls/hid/hid.spec   |  2 +-
 dlls/hid/hidp.c     | 13 +++++++++++++
 include/ddk/hidpi.h | 11 +++++++++++
 3 files changed, 25 insertions(+), 1 deletion(-)

diff --git a/dlls/hid/hid.spec b/dlls/hid/hid.spec
index e416762..76df40d 100644
--- a/dlls/hid/hid.spec
+++ b/dlls/hid/hid.spec
@@ -39,6 +39,6 @@
 @ stub HidP_SetUsageValue
 @ stub HidP_SetUsageValueArray
 @ stub HidP_SetUsages
-@ stub HidP_TranslateUsagesToI8042ScanCodes
+@ stdcall HidP_TranslateUsagesToI8042ScanCodes(ptr long long ptr ptr ptr)
 @ stub HidP_UnsetUsages
 @ stub HidP_UsageListDifference
diff --git a/dlls/hid/hidp.c b/dlls/hid/hidp.c
index 3d7a12e..91d4fbe 100644
--- a/dlls/hid/hidp.c
+++ b/dlls/hid/hidp.c
@@ -23,6 +23,7 @@
 #include <stdarg.h>
 
 #define NONAMELESSUNION
+#include "ntstatus.h"
 #define WIN32_NO_STATUS
 #include "windef.h"
 #include "winbase.h"
@@ -519,3 +520,15 @@ ULONG WINAPI HidP_MaxUsageListLength(HIDP_REPORT_TYPE ReportType, USAGE UsagePag
     }
     return count;
 }
+
+NTSTATUS WINAPI HidP_TranslateUsagesToI8042ScanCodes(PUSAGE ChangedUsageList, ULONG UsageListLength,
+                                                     HIDP_KEYBOARD_DIRECTION KeyAction,
+                                                     PHIDP_KEYBOARD_MODIFIER_STATE ModifierState,
+                                                     PHIDP_INSERT_SCANCODES InsertCodesProcedure,
+                                                     PVOID InsertCodesContext)
+{
+    ERR("(%p, %i, %i, %p, %p, %p): stub\n", ChangedUsageList, UsageListLength,
+        KeyAction, ModifierState, InsertCodesProcedure, InsertCodesContext);
+
+    return STATUS_NOT_IMPLEMENTED;
+}
diff --git a/include/ddk/hidpi.h b/include/ddk/hidpi.h
index 4cfac61..a14ff80 100644
--- a/include/ddk/hidpi.h
+++ b/include/ddk/hidpi.h
@@ -136,6 +136,16 @@ typedef struct _HIDP_CAPS
     USHORT  NumberFeatureDataIndices;
 } HIDP_CAPS, *PHIDP_CAPS;
 
+typedef enum _HIDP_KEYBOARD_DIRECTION
+{
+    HidP_Keyboard_Break,
+    HidP_Keyboard_Make
+} HIDP_KEYBOARD_DIRECTION;
+
+typedef struct _HIDP_KEYBOARD_MODIFIER_STATE HIDP_KEYBOARD_MODIFIER_STATE, *PHIDP_KEYBOARD_MODIFIER_STATE;
+
+typedef BOOLEAN (WINAPI *PHIDP_INSERT_SCANCODES)(PVOID Context, PCHAR NewScanCodes, ULONG Length);
+
 NTSTATUS WINAPI HidP_GetButtonCaps(HIDP_REPORT_TYPE ReportType, PHIDP_BUTTON_CAPS ButtonCaps, PUSHORT  ButtonCapsLength, PHIDP_PREPARSED_DATA PreparsedData);
 NTSTATUS WINAPI HidP_GetCaps(PHIDP_PREPARSED_DATA PreparsedData, PHIDP_CAPS Capabilities);
 NTSTATUS WINAPI HidP_GetUsages(HIDP_REPORT_TYPE ReportType, USAGE UsagePage, USHORT LinkCollection, PUSAGE UsageList, PULONG UsageLength, PHIDP_PREPARSED_DATA PreparsedData, PCHAR Report, ULONG ReportLength);
@@ -144,6 +154,7 @@ NTSTATUS WINAPI HidP_GetValueCaps(HIDP_REPORT_TYPE ReportType, PHIDP_VALUE_CAPS
 NTSTATUS WINAPI HidP_InitializeReportForID(HIDP_REPORT_TYPE ReportType, UCHAR ReportID, PHIDP_PREPARSED_DATA PreparsedData, PCHAR Report, ULONG ReportLength);
 ULONG WINAPI HidP_MaxUsageListLength(HIDP_REPORT_TYPE ReportType, USAGE UsagePage, PHIDP_PREPARSED_DATA PreparsedData);
 NTSTATUS WINAPI HidP_GetScaledUsageValue(HIDP_REPORT_TYPE ReportType, USAGE UsagePage, USHORT LinkCollection, USAGE Usage, PLONG UsageValue, PHIDP_PREPARSED_DATA PreparsedData, PCHAR Report, ULONG ReportLength);
+NTSTATUS WINAPI HidP_TranslateUsagesToI8042ScanCodes(PUSAGE ChangedUsageList, ULONG UsageListLength, HIDP_KEYBOARD_DIRECTION KeyAction, PHIDP_KEYBOARD_MODIFIER_STATE ModifierState, PHIDP_INSERT_SCANCODES InsertCodesProcedure, PVOID InsertCodesContext);
 
 #ifndef FACILITY_HID_ERROR_CODE
 #define FACILITY_HID_ERROR_CODE 0x11
-- 
2.6.2

