Keyboard/mouse event proc thunk creation moved out of if1632/thunk.c.

diff --git a/windows/input.c b/windows/input.c
index 0fce564..532c9e4 100644
--- a/windows/input.c
+++ b/windows/input.c
@@ -24,6 +24,7 @@
 #include "keyboard.h"
 #include "mouse.h"
 #include "message.h"
+#include "module.h"
 #include "debugtools.h"
 #include "struct32.h"
 #include "winerror.h"
@@ -143,6 +144,20 @@
 }
 
 /***********************************************************************
+ *           WIN16_keybd_event   (USER.289)
+ */
+void WINAPI WIN16_keybd_event( CONTEXT86 *context )
+{
+    DWORD dwFlags = 0;
+
+    if (AH_reg(context) & 0x80) dwFlags |= KEYEVENTF_KEYUP;
+    if (BH_reg(context) & 1   ) dwFlags |= KEYEVENTF_EXTENDEDKEY;
+
+    keybd_event( AL_reg(context), BL_reg(context),
+                 dwFlags, MAKELONG(SI_reg(context), DI_reg(context)) );
+}
+
+/***********************************************************************
  *           mouse_event   (USER32.584)
  */
 void WINAPI mouse_event( DWORD dwFlags, DWORD dx, DWORD dy,
@@ -238,6 +253,25 @@
     }
 }
 
+/***********************************************************************
+ *           WIN16_mouse_event   (USER.299)
+ */
+void WINAPI WIN16_mouse_event( CONTEXT86 *context )
+{
+    mouse_event( AX_reg(context), BX_reg(context), CX_reg(context),
+                 DX_reg(context), MAKELONG(SI_reg(context), DI_reg(context)) );
+}
+
+/***********************************************************************
+ *           GetMouseEventProc   (USER.337)
+ */
+FARPROC16 WINAPI GetMouseEventProc16(void)
+{
+    HMODULE16 hmodule = GetModuleHandle16("USER");
+    return NE_GetEntryPoint( hmodule, NE_GetOrdinal( hmodule, "mouse_event" ));
+}
+
+
 /**********************************************************************
  *                      EnableHardwareInput   (USER.331)
  */