8e29ab41d05e240b8d5a698e7cd2ce27caca9405
[reactos.git] / reactos / win32ss / user / user32 / include / user32p.h
1 /*
2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS System Libraries
4 * FILE: lib/user32/include/user32p.h
5 * PURPOSE: Win32 User Library Private Headers
6 * PROGRAMMER: Alex Ionescu (alex@relsoft.net)
7 */
8
9 /* INCLUDES ******************************************************************/
10
11 #pragma once
12
13 /* Private User32 Headers */
14 #include "controls.h"
15 #include "dde_private.h"
16 #include "regcontrol.h"
17 #include "resource.h"
18 #include "ntwrapper.h"
19
20
21 typedef struct
22 {
23 BOOL (WINAPI* pImmIsIME) (HKL);
24 LRESULT (WINAPI* pImmEscapeA) (HKL, HIMC, UINT, LPVOID);
25 LRESULT (WINAPI* pImmEscapeW) (HKL, HIMC, UINT, LPVOID);
26 LONG (WINAPI* pImmGetCompositionStringA) (HIMC, DWORD, LPVOID, DWORD);
27 LONG (WINAPI* pImmGetCompositionStringW) (HIMC, DWORD, LPVOID, DWORD);
28 BOOL (WINAPI* pImmGetCompositionFontA) (HIMC, LPLOGFONTA);
29 BOOL (WINAPI* pImmGetCompositionFontW) (HIMC, LPLOGFONTW);
30 BOOL (WINAPI* pImmSetCompositionFontA)(HIMC, LPLOGFONTA);
31 BOOL (WINAPI* pImmSetCompositionFontW)(HIMC, LPLOGFONTW);
32 BOOL (WINAPI* pImmGetCompositionWindow) (HIMC, LPCOMPOSITIONFORM);
33 BOOL (WINAPI* pImmSetCompositionWindow) (HIMC, LPCOMPOSITIONFORM);
34 HIMC (WINAPI* pImmAssociateContext) (HWND, HIMC);
35 BOOL (WINAPI* pImmReleaseContext) (HWND, HIMC);
36 HIMC (WINAPI* pImmGetContext) (HWND);
37 HWND (WINAPI* pImmGetDefaultIMEWnd) (HWND);
38 BOOL (WINAPI* pImmNotifyIME) (HIMC, DWORD, DWORD, DWORD);
39 BOOL (WINAPI* pImmRegisterClient) (PVOID, HINSTANCE);
40 UINT (WINAPI* pImmProcessKey) (HWND, HKL, UINT, LPARAM, DWORD);
41
42 } Imm32ApiTable;
43
44
45 /* global variables */
46 extern HINSTANCE User32Instance;
47 #define user32_module User32Instance
48 extern PPROCESSINFO g_ppi;
49 extern ULONG_PTR g_ulSharedDelta;
50 extern PSERVERINFO gpsi;
51 extern SHAREDINFO gSharedInfo;
52 extern BOOLEAN gfLogonProcess;
53 extern BOOLEAN gfServerProcess;
54 extern PUSER_HANDLE_TABLE gHandleTable;
55 extern PUSER_HANDLE_ENTRY gHandleEntries;
56 extern CRITICAL_SECTION U32AccelCacheLock;
57 extern HINSTANCE ghImm32;
58 extern RTL_CRITICAL_SECTION gcsUserApiHook;
59 extern USERAPIHOOK guah;
60 extern HINSTANCE ghmodUserApiHook;
61 extern HICON hIconSmWindows, hIconWindows;
62 extern Imm32ApiTable gImmApiEntries;
63
64 #define IS_ATOM(x) \
65 (((ULONG_PTR)(x) > 0x0) && ((ULONG_PTR)(x) < 0x10000))
66
67 /* FIXME: move to a correct header */
68 /* undocumented gdi32 definitions */
69 BOOL WINAPI GdiDllInitialize(HANDLE, DWORD, LPVOID);
70 LONG WINAPI GdiGetCharDimensions(HDC, LPTEXTMETRICW, LONG *);
71
72 /* definitions for spy.c */
73 #define SPY_DISPATCHMESSAGE 0x0101
74 #define SPY_SENDMESSAGE 0x0103
75 #define SPY_DEFWNDPROC 0x0105
76 #define SPY_RESULT_OK 0x0001
77 #define SPY_RESULT_INVALIDHWND 0x0003
78 #define SPY_RESULT_DEFWND 0x0005
79 extern const char *SPY_GetMsgName(UINT msg, HWND hWnd);
80 extern const char *SPY_GetVKeyName(WPARAM wParam);
81 extern void SPY_EnterMessage(INT iFlag, HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
82 extern void SPY_ExitMessage(INT iFlag, HWND hwnd, UINT msg, LRESULT lReturn, WPARAM wParam, LPARAM lParam);
83
84 /* definitions for usrapihk.c */
85 BOOL FASTCALL BeginIfHookedUserApiHook(VOID);
86 BOOL FASTCALL EndUserApiHook(VOID);
87 BOOL FASTCALL IsInsideUserApiHook(VOID);
88 VOID FASTCALL ResetUserApiHook(PUSERAPIHOOK);
89 BOOL FASTCALL IsMsgOverride(UINT,PUAHOWP);
90 BOOL WINAPI InitUserApiHook(HINSTANCE hInstance, USERAPIHOOKPROC pfn);
91 BOOL WINAPI ClearUserApiHook(HINSTANCE hInstance);
92
93 /* definitions for message.c */
94 BOOL FASTCALL MessageInit(VOID);
95 VOID FASTCALL MessageCleanup(VOID);
96
97 /* definitions for misc.c */
98 VOID WINAPI UserSetLastError(IN DWORD dwErrCode);
99 VOID WINAPI UserSetLastNTError(IN NTSTATUS Status);
100 PCALLPROCDATA FASTCALL ValidateCallProc(HANDLE hCallProc);
101 PWND FASTCALL ValidateHwnd(HWND hwnd);
102 PWND FASTCALL ValidateHwndOrDesk(HWND hwnd);
103 PWND FASTCALL GetThreadDesktopWnd(VOID);
104 PVOID FASTCALL ValidateHandleNoErr(HANDLE handle, UINT uType);
105 PWND FASTCALL ValidateHwndNoErr(HWND hwnd);
106 BOOL FASTCALL TestWindowProcess(PWND);
107 PVOID FASTCALL ValidateHandle(HANDLE, UINT);
108
109 /* definitions for menu.c */
110 BOOL MenuInit(VOID);
111 VOID MenuCleanup(VOID);
112 UINT MenuDrawMenuBar(HDC hDC, LPRECT Rect, HWND hWnd, BOOL Draw);
113 VOID MenuTrackMouseMenuBar(HWND hWnd, ULONG Ht, POINT Pt);
114 VOID MenuTrackKbdMenuBar(HWND hWnd, UINT wParam, WCHAR wChar);
115
116 /* definitions for logon.c */
117 VOID FASTCALL Logon(BOOL IsLogon);
118
119 /* misc definitions */
120 void mirror_rect( const RECT *window_rect, RECT *rect );
121 BOOL FASTCALL DefSetText(HWND hWnd, PCWSTR String, BOOL Ansi);
122 VOID FASTCALL ScrollTrackScrollBar(HWND Wnd, INT SBType, POINT Pt);
123 HCURSOR CursorIconToCursor(HICON hIcon, BOOL SemiTransparent);
124 BOOL get_icon_size(HICON hIcon, SIZE *size);
125 VOID FASTCALL IntNotifyWinEvent(DWORD, HWND, LONG, LONG, DWORD);
126 UINT WINAPI WinPosGetMinMaxInfo(HWND hWnd, POINT* MaxSize, POINT* MaxPos, POINT* MinTrack, POINT* MaxTrack);
127 VOID UserGetWindowBorders(DWORD, DWORD, SIZE *, BOOL);
128 void UserGetInsideRectNC(PWND Wnd, RECT *rect);
129 VOID FASTCALL GetConnected(VOID);
130 extern BOOL FASTCALL EnumNamesA(HWINSTA WindowStation, NAMEENUMPROCA EnumFunc, LPARAM Context, BOOL Desktops);
131 extern BOOL FASTCALL EnumNamesW(HWINSTA WindowStation, NAMEENUMPROCW EnumFunc, LPARAM Context, BOOL Desktops);
132 BOOL UserDrawSysMenuButton( HWND hWnd, HDC hDC, LPRECT, BOOL down );
133 HWND* WIN_ListChildren (HWND hWndparent);
134 VOID DeleteFrameBrushes(VOID);
135 BOOL WINAPI GdiValidateHandle(HGDIOBJ);
136 HANDLE FASTCALL UserGetProp(HWND hWnd, ATOM Atom);
137 BOOL WINAPI InitializeImmEntryTable(VOID);
138
139 /* EOF */