#define USER_HEAP_SEG_ADDR(handle) \
((handle) ? PTR_SEG_OFF_TO_SEGPTR(USER_HeapSel, (handle)) : (SEGPTR)0)
-void USER_SignalProc(HANDLE16, UINT16, UINT16, HINSTANCE16, HQUEUE16);
+#define USUD_LOCALALLOC 0x0001
+#define USUD_LOCALFREE 0x0002
+#define USUD_LOCALCOMPACT 0x0003
+#define USUD_LOCALHEAP 0x0004
+#define USUD_FIRSTCLASS 0x0005
+
+struct tagCURSORICONINFO;
+struct DIDEVICEOBJECTDATA;
+
+#define WINE_KEYBOARD_CONFIG_AUTO_REPEAT 0x00000001
+typedef struct tagKEYBOARD_CONFIG {
+ BOOL auto_repeat;
+} KEYBOARD_CONFIG;
+
+typedef struct tagUSER_DRIVER {
+ /* event functions */
+ void (*pSynchronize)(void);
+ BOOL (*pCheckFocus)(void);
+ void (*pUserRepaintDisable)(BOOL);
+ /* keyboard functions */
+ void (*pInitKeyboard)(void);
+ WORD (*pVkKeyScan)(CHAR);
+ UINT16 (*pMapVirtualKey)(UINT16, UINT16);
+ INT16 (*pGetKeyNameText)(LONG, LPSTR, INT16);
+ INT16 (*pToAscii)(UINT16, UINT16, LPBYTE, LPVOID, UINT16);
+ BOOL (*pGetBeepActive)(void);
+ void (*pSetBeepActive)(BOOL);
+ void (*pBeep)(void);
+ BOOL (*pGetDIState)(DWORD, LPVOID);
+ BOOL (*pGetDIData)(BYTE *, DWORD, struct DIDEVICEOBJECTDATA *, LPDWORD, DWORD);
+ void (*pGetKeyboardConfig)(KEYBOARD_CONFIG *);
+ void (*pSetKeyboardConfig)(KEYBOARD_CONFIG *, DWORD);
+ /* mouse functions */
+ void (*pInitMouse)(void);
+ void (*pSetCursor)(struct tagCURSORICONINFO *);
+ void (*pMoveCursor)(WORD, WORD);
+ LONG (*pEnableWarpPointer)(BOOL);
+ /* screen saver functions */
+ BOOL (*pGetScreenSaveActive)(void);
+ void (*pSetScreenSaveActive)(BOOL);
+ int (*pGetScreenSaveTimeout)(void);
+ void (*pSetScreenSaveTimeout)(int);
+ /* windowing functions */
+ BOOL (*pIsSingleWindow)(void);
+} USER_DRIVER;
+
+extern USER_DRIVER *USER_Driver;
+
+WORD WINAPI UserSignalProc( UINT uCode, DWORD dwThreadOrProcessID,
+ DWORD dwFlags, HMODULE16 hModule );
#endif /* __WINE_USER_H */