Add <string.h> to files that needed it.
[wine] / include / user.h
1 /*
2  * USER definitions
3  *
4  * Copyright 1993 Alexandre Julliard
5  */
6
7 #ifndef __WINE_USER_H
8 #define __WINE_USER_H
9
10 #include "local.h"
11
12 extern WORD USER_HeapSel;
13
14 #define USER_HEAP_ALLOC(size) \
15             LOCAL_Alloc( USER_HeapSel, LMEM_FIXED, (size) )
16 #define USER_HEAP_REALLOC(handle,size) \
17             LOCAL_ReAlloc( USER_HeapSel, (handle), (size), LMEM_FIXED )
18 #define USER_HEAP_FREE(handle) \
19             LOCAL_Free( USER_HeapSel, (handle) )
20 #define USER_HEAP_LIN_ADDR(handle)  \
21          ((handle) ? MapSL(MAKESEGPTR(USER_HeapSel, (handle))) : NULL)
22
23 #define USUD_LOCALALLOC        0x0001
24 #define USUD_LOCALFREE         0x0002
25 #define USUD_LOCALCOMPACT      0x0003
26 #define USUD_LOCALHEAP         0x0004
27 #define USUD_FIRSTCLASS        0x0005
28
29 struct tagCURSORICONINFO;
30 struct DIDEVICEOBJECTDATA;
31
32 #define WINE_KEYBOARD_CONFIG_AUTO_REPEAT 0x00000001
33 typedef struct tagKEYBOARD_CONFIG {
34   BOOL auto_repeat;
35 } KEYBOARD_CONFIG;
36
37 typedef VOID CALLBACK (*LPMOUSE_EVENT_PROC)(DWORD,DWORD,DWORD,DWORD,DWORD);
38
39 struct tagWND;
40
41 typedef struct tagUSER_DRIVER {
42     /* event functions */
43     void   (*pSynchronize)(void);
44     BOOL   (*pCheckFocus)(void);
45     void   (*pUserRepaintDisable)(BOOL);
46     /* keyboard functions */
47     void   (*pInitKeyboard)(void);
48     WORD   (*pVkKeyScan)(CHAR);
49     UINT16 (*pMapVirtualKey)(UINT16, UINT16);
50     INT16  (*pGetKeyNameText)(LONG, LPSTR, INT16);
51     INT    (*pToUnicode)(UINT, UINT, LPBYTE, LPWSTR, int, UINT);
52     BOOL   (*pGetBeepActive)(void);
53     void   (*pSetBeepActive)(BOOL);
54     void   (*pBeep)(void);
55     BOOL   (*pGetDIState)(DWORD, LPVOID);
56     BOOL   (*pGetDIData)(BYTE *, DWORD, struct DIDEVICEOBJECTDATA *, LPDWORD, DWORD);
57     void   (*pGetKeyboardConfig)(KEYBOARD_CONFIG *);
58     void   (*pSetKeyboardConfig)(KEYBOARD_CONFIG *, DWORD);
59     /* mouse functions */
60     void   (*pInitMouse)(LPMOUSE_EVENT_PROC);
61     void   (*pSetCursor)(struct tagCURSORICONINFO *);
62     void   (*pMoveCursor)(WORD, WORD);
63     /* screen saver functions */
64     BOOL   (*pGetScreenSaveActive)(void);
65     void   (*pSetScreenSaveActive)(BOOL);
66     int    (*pGetScreenSaveTimeout)(void);
67     void   (*pSetScreenSaveTimeout)(int);
68     /* resource functions */
69     HANDLE (*pLoadOEMResource)(WORD,WORD);
70     /* windowing functions */
71     BOOL   (*pIsSingleWindow)(void);
72     /* clipboard functions */
73     void   (*pAcquireClipboard)(void);            /* Acquire selection */
74     void   (*pReleaseClipboard)(void);            /* Release selection */
75     void   (*pSetClipboardData)(UINT);            /* Set specified selection data */
76     BOOL   (*pGetClipboardData)(UINT);            /* Get specified selection data */
77     BOOL   (*pIsClipboardFormatAvailable)(UINT);  /* Check if specified format is available */
78     BOOL   (*pRegisterClipboardFormat)(LPCSTR);   /* Register a clipboard format */
79     BOOL   (*pIsSelectionOwner)(void);            /* Check if we own the selection */
80     void   (*pResetSelectionOwner)(struct tagWND *, BOOL);
81 } USER_DRIVER;
82
83 extern USER_DRIVER USER_Driver;
84
85 WORD WINAPI UserSignalProc( UINT uCode, DWORD dwThreadOrProcessID,
86                             DWORD dwFlags, HMODULE16 hModule );
87
88 VOID WINAPI MOUSE_Enable(LPMOUSE_EVENT_PROC lpMouseEventProc);
89 VOID WINAPI MOUSE_Disable(VOID);
90
91 /* Wine look */
92
93 typedef enum
94 {
95     WIN31_LOOK,
96     WIN95_LOOK,
97     WIN98_LOOK
98 } WINE_LOOK;
99
100 extern WINE_LOOK TWEAK_WineLook;
101
102 /* gray brush cache */
103 extern HBRUSH CACHE_GetPattern55AABrush(void);
104
105 #endif  /* __WINE_USER_H */