xref: /reactos/win32ss/user/user32/misc/stubs.c (revision 1381cea2)
1c2c66affSColin Finck /*
2c2c66affSColin Finck  * COPYRIGHT:       See COPYING in the top level directory
3c2c66affSColin Finck  * PROJECT:         ReactOS user32.dll
4c2c66affSColin Finck  * FILE:            win32ss/user/user32/misc/stubs.c
5c2c66affSColin Finck  * PURPOSE:         User32.dll stubs
6c2c66affSColin Finck  * PROGRAMMER:      Casper S. Hornstrup (chorns@users.sourceforge.net)
7c2c66affSColin Finck  * NOTES:           If you implement a function, remove it from this file
8c2c66affSColin Finck  * UPDATE HISTORY:
9c2c66affSColin Finck  *      08-F05-2001  CSH  Created
10c2c66affSColin Finck  */
11c2c66affSColin Finck 
12c2c66affSColin Finck #include <user32.h>
13c2c66affSColin Finck 
14c2c66affSColin Finck WINE_DEFAULT_DEBUG_CHANNEL(user32);
15c2c66affSColin Finck 
16c2c66affSColin Finck /*
17c2c66affSColin Finck  * @unimplemented
18c2c66affSColin Finck  */
19c2c66affSColin Finck DWORD
20c2c66affSColin Finck WINAPI
WaitForInputIdle(HANDLE hProcess,DWORD dwMilliseconds)21c2c66affSColin Finck WaitForInputIdle(
22c2c66affSColin Finck   HANDLE hProcess,
23c2c66affSColin Finck   DWORD dwMilliseconds)
24c2c66affSColin Finck {
25c2c66affSColin Finck // Need to call NtQueryInformationProcess and send ProcessId not hProcess.
26c2c66affSColin Finck   return NtUserWaitForInputIdle(hProcess, dwMilliseconds, FALSE);
27c2c66affSColin Finck }
28c2c66affSColin Finck 
29c2c66affSColin Finck /******************************************************************************
30c2c66affSColin Finck  * SetDebugErrorLevel [USER32.@]
31c2c66affSColin Finck  * Sets the minimum error level for generating debugging events
32c2c66affSColin Finck  *
33c2c66affSColin Finck  * PARAMS
34c2c66affSColin Finck  *    dwLevel [I] Debugging error level
35c2c66affSColin Finck  *
36c2c66affSColin Finck  * @unimplemented
37c2c66affSColin Finck  */
38c2c66affSColin Finck VOID
39c2c66affSColin Finck WINAPI
SetDebugErrorLevel(DWORD dwLevel)40c2c66affSColin Finck SetDebugErrorLevel( DWORD dwLevel )
41c2c66affSColin Finck {
42c2c66affSColin Finck     FIXME("(%lu): stub\n", dwLevel);
43c2c66affSColin Finck }
44c2c66affSColin Finck 
45c2c66affSColin Finck 
46c2c66affSColin Finck /*
47c2c66affSColin Finck  * @implemented
48c2c66affSColin Finck  */
49c2c66affSColin Finck DWORD
50c2c66affSColin Finck WINAPI
GetAppCompatFlags(HTASK hTask)51c2c66affSColin Finck GetAppCompatFlags(HTASK hTask)
52c2c66affSColin Finck {
53c2c66affSColin Finck     PCLIENTINFO pci = GetWin32ClientInfo();
54c2c66affSColin Finck 
55c2c66affSColin Finck     return pci->dwCompatFlags;
56c2c66affSColin Finck }
57c2c66affSColin Finck 
58c2c66affSColin Finck /*
59c2c66affSColin Finck  * @implemented
60c2c66affSColin Finck  */
61c2c66affSColin Finck DWORD
62c2c66affSColin Finck WINAPI
GetAppCompatFlags2(HTASK hTask)63c2c66affSColin Finck GetAppCompatFlags2(HTASK hTask)
64c2c66affSColin Finck {
65c2c66affSColin Finck     PCLIENTINFO pci = GetWin32ClientInfo();
66c2c66affSColin Finck 
67c2c66affSColin Finck     return pci->dwCompatFlags2;
68c2c66affSColin Finck }
69c2c66affSColin Finck 
70c2c66affSColin Finck /*
71c2c66affSColin Finck  * @unimplemented
72c2c66affSColin Finck  */
73c2c66affSColin Finck VOID
74c2c66affSColin Finck WINAPI
LoadLocalFonts(VOID)75c2c66affSColin Finck LoadLocalFonts ( VOID )
76c2c66affSColin Finck {
77c2c66affSColin Finck   UNIMPLEMENTED;
78c2c66affSColin Finck }
79c2c66affSColin Finck 
80c2c66affSColin Finck /*
81c2c66affSColin Finck  * @unimplemented
82c2c66affSColin Finck  */
83c2c66affSColin Finck VOID
84c2c66affSColin Finck WINAPI
LoadRemoteFonts(VOID)85c2c66affSColin Finck LoadRemoteFonts ( VOID )
86c2c66affSColin Finck {
87c2c66affSColin Finck   UNIMPLEMENTED;
88c2c66affSColin Finck }
89c2c66affSColin Finck 
90c2c66affSColin Finck /*
91c2c66affSColin Finck  * @unimplemented
92c2c66affSColin Finck  */
93c2c66affSColin Finck VOID
94c2c66affSColin Finck WINAPI
RegisterSystemThread(DWORD flags,DWORD reserved)95c2c66affSColin Finck RegisterSystemThread ( DWORD flags, DWORD reserved )
96c2c66affSColin Finck {
97c2c66affSColin Finck   UNIMPLEMENTED;
98c2c66affSColin Finck }
99c2c66affSColin Finck 
100c2c66affSColin Finck 
101c2c66affSColin Finck /*
102c2c66affSColin Finck  * @implemented
103c2c66affSColin Finck  */
104c2c66affSColin Finck UINT
105c2c66affSColin Finck WINAPI
UserRealizePalette(HDC hDC)106c2c66affSColin Finck UserRealizePalette ( HDC hDC )
107c2c66affSColin Finck {
108c2c66affSColin Finck   return NtUserxRealizePalette(hDC);
109c2c66affSColin Finck }
110c2c66affSColin Finck 
111c2c66affSColin Finck 
112c2c66affSColin Finck /*************************************************************************
113c2c66affSColin Finck  *		SetSysColorsTemp (USER32.@) (Wine 10/22/2008)
114c2c66affSColin Finck  *
115c2c66affSColin Finck  * UNDOCUMENTED !!
116c2c66affSColin Finck  *
117c2c66affSColin Finck  * Called by W98SE desk.cpl Control Panel Applet:
118c2c66affSColin Finck  * handle = SetSysColorsTemp(ptr, ptr, nCount);     ("set" call)
119c2c66affSColin Finck  * result = SetSysColorsTemp(NULL, NULL, handle);   ("restore" call)
120c2c66affSColin Finck  *
121c2c66affSColin Finck  * pPens is an array of COLORREF values, which seems to be used
122c2c66affSColin Finck  * to indicate the color values to create new pens with.
123c2c66affSColin Finck  *
124c2c66affSColin Finck  * pBrushes is an array of solid brush handles (returned by a previous
125c2c66affSColin Finck  * CreateSolidBrush), which seems to contain the brush handles to set
126c2c66affSColin Finck  * for the system colors.
127c2c66affSColin Finck  *
128c2c66affSColin Finck  * n seems to be used for
129c2c66affSColin Finck  *   a) indicating the number of entries to operate on (length of pPens,
130c2c66affSColin Finck  *      pBrushes)
131c2c66affSColin Finck  *   b) passing the handle that points to the previously used color settings.
132c2c66affSColin Finck  *      I couldn't figure out in hell what kind of handle this is on
133c2c66affSColin Finck  *      Windows. I just use a heap handle instead. Shouldn't matter anyway.
134c2c66affSColin Finck  *
135c2c66affSColin Finck  * RETURNS
136c2c66affSColin Finck  *     heap handle of our own copy of the current syscolors in case of
137c2c66affSColin Finck  *                 "set" call, i.e. pPens, pBrushes != NULL.
138c2c66affSColin Finck  *     TRUE (unconditionally !) in case of "restore" call,
139c2c66affSColin Finck  *          i.e. pPens, pBrushes == NULL.
140c2c66affSColin Finck  *     FALSE in case of either pPens != NULL and pBrushes == NULL
141c2c66affSColin Finck  *          or pPens == NULL and pBrushes != NULL.
142c2c66affSColin Finck  *
143c2c66affSColin Finck  * I'm not sure whether this implementation is 100% correct. [AM]
144c2c66affSColin Finck  */
145c2c66affSColin Finck 
146c2c66affSColin Finck static HPEN SysColorPens[COLOR_MENUBAR + 1];
147c2c66affSColin Finck static HBRUSH SysColorBrushes[COLOR_MENUBAR + 1];
148c2c66affSColin Finck 
149c2c66affSColin Finck DWORD_PTR
150c2c66affSColin Finck WINAPI
SetSysColorsTemp(const COLORREF * pPens,const HBRUSH * pBrushes,DWORD_PTR n)151c2c66affSColin Finck SetSysColorsTemp(const COLORREF *pPens,
152c2c66affSColin Finck                  const HBRUSH *pBrushes,
153c2c66affSColin Finck 				 DWORD_PTR n)
154c2c66affSColin Finck {
155c2c66affSColin Finck     DWORD i;
156c2c66affSColin Finck 
157c2c66affSColin Finck     if (pPens && pBrushes) /* "set" call */
158c2c66affSColin Finck     {
159c2c66affSColin Finck         /* allocate our structure to remember old colors */
160c2c66affSColin Finck         LPVOID pOldCol = HeapAlloc(GetProcessHeap(), 0, sizeof(DWORD)+n*sizeof(HPEN)+n*sizeof(HBRUSH));
161c2c66affSColin Finck         LPVOID p = pOldCol;
162c2c66affSColin Finck         *(DWORD_PTR *)p = n; p = (char*)p + sizeof(DWORD);
163c2c66affSColin Finck         memcpy(p, SysColorPens, n*sizeof(HPEN)); p = (char*)p + n*sizeof(HPEN);
164c2c66affSColin Finck         memcpy(p, SysColorBrushes, n*sizeof(HBRUSH)); p = (char*)p + n*sizeof(HBRUSH);
165c2c66affSColin Finck 
166c2c66affSColin Finck         for (i=0; i < n; i++)
167c2c66affSColin Finck         {
168c2c66affSColin Finck             SysColorPens[i] = CreatePen( PS_SOLID, 1, pPens[i] );
169c2c66affSColin Finck             SysColorBrushes[i] = pBrushes[i];
170c2c66affSColin Finck         }
171c2c66affSColin Finck 
172c2c66affSColin Finck         return (DWORD_PTR) pOldCol;
173c2c66affSColin Finck     }
174c2c66affSColin Finck     if (!pPens && !pBrushes) /* "restore" call */
175c2c66affSColin Finck     {
176c2c66affSColin Finck         LPVOID pOldCol = (LPVOID)n;
177c2c66affSColin Finck         LPVOID p = pOldCol;
178c2c66affSColin Finck         DWORD nCount = *(DWORD *)p;
179c2c66affSColin Finck         p = (char*)p + sizeof(DWORD);
180c2c66affSColin Finck 
181c2c66affSColin Finck         for (i=0; i < nCount; i++)
182c2c66affSColin Finck         {
183c2c66affSColin Finck             DeleteObject(SysColorPens[i]);
184c2c66affSColin Finck             SysColorPens[i] = *(HPEN *)p; p = (char*)p + sizeof(HPEN);
185c2c66affSColin Finck         }
186c2c66affSColin Finck         for (i=0; i < nCount; i++)
187c2c66affSColin Finck         {
188c2c66affSColin Finck             SysColorBrushes[i] = *(HBRUSH *)p; p = (char*)p + sizeof(HBRUSH);
189c2c66affSColin Finck         }
190c2c66affSColin Finck         /* get rid of storage structure */
191c2c66affSColin Finck         HeapFree(GetProcessHeap(), 0, pOldCol);
192c2c66affSColin Finck 
193c2c66affSColin Finck         return TRUE;
194c2c66affSColin Finck     }
195c2c66affSColin Finck     return FALSE;
196c2c66affSColin Finck }
197c2c66affSColin Finck 
198c2c66affSColin Finck /*
199c2c66affSColin Finck  * @unimplemented
200c2c66affSColin Finck  */
201c2c66affSColin Finck HDESK
202c2c66affSColin Finck WINAPI
GetInputDesktop(VOID)203c2c66affSColin Finck GetInputDesktop ( VOID )
204c2c66affSColin Finck {
205c2c66affSColin Finck   UNIMPLEMENTED;
206c2c66affSColin Finck   return FALSE;
207c2c66affSColin Finck }
208c2c66affSColin Finck 
209c2c66affSColin Finck /*
210c2c66affSColin Finck  * @unimplemented
211c2c66affSColin Finck  */
212c2c66affSColin Finck BOOL
213c2c66affSColin Finck WINAPI
GetAccCursorInfo(PCURSORINFO pci)214c2c66affSColin Finck GetAccCursorInfo ( PCURSORINFO pci )
215c2c66affSColin Finck {
216c2c66affSColin Finck   UNIMPLEMENTED;
217c2c66affSColin Finck   return FALSE;
218c2c66affSColin Finck }
219c2c66affSColin Finck 
220c2c66affSColin Finck /*
221c2c66affSColin Finck  * @unimplemented
222c2c66affSColin Finck  */
223c2c66affSColin Finck UINT
224c2c66affSColin Finck WINAPI
GetRawInputDeviceInfoW(HANDLE hDevice,UINT uiCommand,LPVOID pData,PUINT pcbSize)225c2c66affSColin Finck GetRawInputDeviceInfoW(
226c2c66affSColin Finck     HANDLE hDevice,
227c2c66affSColin Finck     UINT uiCommand,
228c2c66affSColin Finck     LPVOID pData,
229c2c66affSColin Finck     PUINT pcbSize)
230c2c66affSColin Finck {
231c2c66affSColin Finck   UNIMPLEMENTED;
232c2c66affSColin Finck   return 0;
233c2c66affSColin Finck }
234c2c66affSColin Finck 
235c2c66affSColin Finck /*
236c2c66affSColin Finck  * @unimplemented
237c2c66affSColin Finck  */
238c2c66affSColin Finck LONG
239c2c66affSColin Finck WINAPI
CsrBroadcastSystemMessageExW(DWORD dwflags,LPDWORD lpdwRecipients,UINT uiMessage,WPARAM wParam,LPARAM lParam,PBSMINFO pBSMInfo)240c2c66affSColin Finck CsrBroadcastSystemMessageExW(
241c2c66affSColin Finck     DWORD dwflags,
242c2c66affSColin Finck     LPDWORD lpdwRecipients,
243c2c66affSColin Finck     UINT uiMessage,
244c2c66affSColin Finck     WPARAM wParam,
245c2c66affSColin Finck     LPARAM lParam,
246c2c66affSColin Finck     PBSMINFO pBSMInfo)
247c2c66affSColin Finck {
248c2c66affSColin Finck   UNIMPLEMENTED;
249c2c66affSColin Finck   return FALSE;
250c2c66affSColin Finck }
251c2c66affSColin Finck 
252c2c66affSColin Finck /*
253c2c66affSColin Finck  * @unimplemented
254c2c66affSColin Finck  */
255c2c66affSColin Finck UINT
256c2c66affSColin Finck WINAPI
GetRawInputDeviceInfoA(HANDLE hDevice,UINT uiCommand,LPVOID pData,PUINT pcbSize)257c2c66affSColin Finck GetRawInputDeviceInfoA(
258c2c66affSColin Finck     HANDLE hDevice,
259c2c66affSColin Finck     UINT uiCommand,
260c2c66affSColin Finck     LPVOID pData,
261c2c66affSColin Finck     PUINT pcbSize)
262c2c66affSColin Finck {
263c2c66affSColin Finck   UNIMPLEMENTED;
264c2c66affSColin Finck   return 0;
265c2c66affSColin Finck }
266c2c66affSColin Finck 
267c2c66affSColin Finck /*
268c2c66affSColin Finck  * @unimplemented
269c2c66affSColin Finck  */
270c2c66affSColin Finck BOOL
271c2c66affSColin Finck WINAPI
AlignRects(LPRECT rect,DWORD b,DWORD c,DWORD d)272c2c66affSColin Finck AlignRects(LPRECT rect, DWORD b, DWORD c, DWORD d)
273c2c66affSColin Finck {
274c2c66affSColin Finck   UNIMPLEMENTED;
275c2c66affSColin Finck   return FALSE;
276c2c66affSColin Finck }
277c2c66affSColin Finck 
278c2c66affSColin Finck /*
279c2c66affSColin Finck  * @implemented
280c2c66affSColin Finck  */
281c2c66affSColin Finck LRESULT
282c2c66affSColin Finck WINAPI
DefRawInputProc(PRAWINPUT * paRawInput,INT nInput,UINT cbSizeHeader)283c2c66affSColin Finck DefRawInputProc(
284c2c66affSColin Finck     PRAWINPUT* paRawInput,
285c2c66affSColin Finck     INT nInput,
286c2c66affSColin Finck     UINT cbSizeHeader)
287c2c66affSColin Finck {
288c2c66affSColin Finck   if (cbSizeHeader == sizeof(RAWINPUTHEADER))
289c2c66affSColin Finck      return S_OK;
290c2c66affSColin Finck   return 1;
291c2c66affSColin Finck }
292c2c66affSColin Finck 
293c2c66affSColin Finck /*
294c2c66affSColin Finck  * @unimplemented
295c2c66affSColin Finck  */
296c2c66affSColin Finck UINT
297c2c66affSColin Finck WINAPI
298c2c66affSColin Finck DECLSPEC_HOTPATCH
GetRawInputBuffer(PRAWINPUT pData,PUINT pcbSize,UINT cbSizeHeader)299c2c66affSColin Finck GetRawInputBuffer(
300c2c66affSColin Finck     PRAWINPUT pData,
301c2c66affSColin Finck     PUINT pcbSize,
302c2c66affSColin Finck     UINT cbSizeHeader)
303c2c66affSColin Finck {
304c2c66affSColin Finck   UNIMPLEMENTED;
305c2c66affSColin Finck   return 0;
306c2c66affSColin Finck }
307c2c66affSColin Finck 
308c2c66affSColin Finck /*
309c2c66affSColin Finck  * @unimplemented
310c2c66affSColin Finck  */
311c2c66affSColin Finck UINT
312c2c66affSColin Finck WINAPI
GetRawInputData(HRAWINPUT hRawInput,UINT uiCommand,LPVOID pData,PUINT pcbSize,UINT cbSizeHeader)313c2c66affSColin Finck GetRawInputData(
314c2c66affSColin Finck     HRAWINPUT hRawInput,
315c2c66affSColin Finck     UINT uiCommand,
316c2c66affSColin Finck     LPVOID pData,
317c2c66affSColin Finck     PUINT pcbSize,
318c2c66affSColin Finck     UINT cbSizeHeader)
319c2c66affSColin Finck {
320c2c66affSColin Finck   UNIMPLEMENTED;
321c2c66affSColin Finck   return 0;
322c2c66affSColin Finck }
323c2c66affSColin Finck 
324c2c66affSColin Finck /*
325c2c66affSColin Finck  * @unimplemented
326c2c66affSColin Finck  */
327c2c66affSColin Finck UINT
328c2c66affSColin Finck WINAPI
GetRawInputDeviceList(PRAWINPUTDEVICELIST pRawInputDeviceList,PUINT puiNumDevices,UINT cbSize)329c2c66affSColin Finck GetRawInputDeviceList(
330c2c66affSColin Finck     PRAWINPUTDEVICELIST pRawInputDeviceList,
331c2c66affSColin Finck     PUINT puiNumDevices,
332c2c66affSColin Finck     UINT cbSize)
333c2c66affSColin Finck {
334c2c66affSColin Finck     if(pRawInputDeviceList)
335c2c66affSColin Finck         memset(pRawInputDeviceList, 0, sizeof *pRawInputDeviceList);
336c2c66affSColin Finck     if(puiNumDevices)
337c2c66affSColin Finck        *puiNumDevices = 0;
338c2c66affSColin Finck 
339c2c66affSColin Finck     UNIMPLEMENTED;
340c2c66affSColin Finck     return 0;
341c2c66affSColin Finck }
342c2c66affSColin Finck 
343c2c66affSColin Finck /*
344c2c66affSColin Finck  * @unimplemented
345c2c66affSColin Finck  */
346c2c66affSColin Finck UINT
347c2c66affSColin Finck WINAPI
348c2c66affSColin Finck DECLSPEC_HOTPATCH
GetRegisteredRawInputDevices(PRAWINPUTDEVICE pRawInputDevices,PUINT puiNumDevices,UINT cbSize)349c2c66affSColin Finck GetRegisteredRawInputDevices(
350c2c66affSColin Finck     PRAWINPUTDEVICE pRawInputDevices,
351c2c66affSColin Finck     PUINT puiNumDevices,
352c2c66affSColin Finck     UINT cbSize)
353c2c66affSColin Finck {
354c2c66affSColin Finck   UNIMPLEMENTED;
355c2c66affSColin Finck   return 0;
356c2c66affSColin Finck }
357c2c66affSColin Finck 
358c2c66affSColin Finck /*
359c2c66affSColin Finck  * @unimplemented
360c2c66affSColin Finck  */
361c2c66affSColin Finck BOOL
362c2c66affSColin Finck WINAPI
363c2c66affSColin Finck DECLSPEC_HOTPATCH
RegisterRawInputDevices(PCRAWINPUTDEVICE pRawInputDevices,UINT uiNumDevices,UINT cbSize)364c2c66affSColin Finck RegisterRawInputDevices(
365c2c66affSColin Finck     PCRAWINPUTDEVICE pRawInputDevices,
366c2c66affSColin Finck     UINT uiNumDevices,
367c2c66affSColin Finck     UINT cbSize)
368c2c66affSColin Finck {
369c2c66affSColin Finck   UNIMPLEMENTED;
370c2c66affSColin Finck   return FALSE;
371c2c66affSColin Finck }
372c2c66affSColin Finck 
373c2c66affSColin Finck /*
374c2c66affSColin Finck  * @unimplemented
375c2c66affSColin Finck  */
DisplayExitWindowsWarnings(ULONG flags)376c2c66affSColin Finck BOOL WINAPI DisplayExitWindowsWarnings(ULONG flags)
377c2c66affSColin Finck {
378c2c66affSColin Finck   UNIMPLEMENTED;
379c2c66affSColin Finck   return FALSE;
380c2c66affSColin Finck }
381c2c66affSColin Finck 
382c2c66affSColin Finck /*
383c2c66affSColin Finck  * @unimplemented
384c2c66affSColin Finck  */
ReasonCodeNeedsBugID(ULONG reasoncode)385c2c66affSColin Finck BOOL WINAPI ReasonCodeNeedsBugID(ULONG reasoncode)
386c2c66affSColin Finck {
387c2c66affSColin Finck   UNIMPLEMENTED;
388c2c66affSColin Finck   return FALSE;
389c2c66affSColin Finck }
390c2c66affSColin Finck 
391c2c66affSColin Finck /*
392c2c66affSColin Finck  * @unimplemented
393c2c66affSColin Finck  */
ReasonCodeNeedsComment(ULONG reasoncode)394c2c66affSColin Finck BOOL WINAPI ReasonCodeNeedsComment(ULONG reasoncode)
395c2c66affSColin Finck {
396c2c66affSColin Finck   UNIMPLEMENTED;
397c2c66affSColin Finck   return FALSE;
398c2c66affSColin Finck }
399c2c66affSColin Finck 
400c2c66affSColin Finck /*
401c2c66affSColin Finck  * @unimplemented
402c2c66affSColin Finck  */
CtxInitUser32(VOID)403c2c66affSColin Finck BOOL WINAPI CtxInitUser32(VOID)
404c2c66affSColin Finck {
405c2c66affSColin Finck   UNIMPLEMENTED;
406c2c66affSColin Finck   return FALSE;
407c2c66affSColin Finck }
408c2c66affSColin Finck 
409c2c66affSColin Finck /*
410c2c66affSColin Finck  * @unimplemented
411c2c66affSColin Finck  */
EnterReaderModeHelper(HWND hwnd)412c2c66affSColin Finck BOOL WINAPI EnterReaderModeHelper(HWND hwnd)
413c2c66affSColin Finck {
414c2c66affSColin Finck   UNIMPLEMENTED;
415c2c66affSColin Finck   return FALSE;
416c2c66affSColin Finck }
417c2c66affSColin Finck 
418c2c66affSColin Finck /*
419c2c66affSColin Finck  * @unimplemented
420c2c66affSColin Finck  */
InitializeLpkHooks(FARPROC * hookfuncs)421c2c66affSColin Finck VOID WINAPI InitializeLpkHooks(FARPROC *hookfuncs)
422c2c66affSColin Finck {
423c2c66affSColin Finck   UNIMPLEMENTED;
424c2c66affSColin Finck }
425c2c66affSColin Finck 
426c2c66affSColin Finck /*
427c2c66affSColin Finck  * @unimplemented
428c2c66affSColin Finck  */
InitializeWin32EntryTable(UCHAR * EntryTablePlus0x1000)429c2c66affSColin Finck WORD WINAPI InitializeWin32EntryTable(UCHAR* EntryTablePlus0x1000)
430c2c66affSColin Finck {
431c2c66affSColin Finck   UNIMPLEMENTED;
432c2c66affSColin Finck   return FALSE;
433c2c66affSColin Finck }
434c2c66affSColin Finck 
435c2c66affSColin Finck /*
436c2c66affSColin Finck  * @unimplemented
437c2c66affSColin Finck  */
IsServerSideWindow(HWND wnd)438c2c66affSColin Finck BOOL WINAPI IsServerSideWindow(HWND wnd)
439c2c66affSColin Finck {
440c2c66affSColin Finck   UNIMPLEMENTED;
441c2c66affSColin Finck   return FALSE;
442c2c66affSColin Finck }
443c2c66affSColin Finck 
444c2c66affSColin Finck /*
445c2c66affSColin Finck  * @unimplemented
446c2c66affSColin Finck  */
AllowForegroundActivation(VOID)447c2c66affSColin Finck VOID WINAPI AllowForegroundActivation(VOID)
448c2c66affSColin Finck {
449c2c66affSColin Finck   UNIMPLEMENTED;
450c2c66affSColin Finck }
451c2c66affSColin Finck 
452c2c66affSColin Finck /*
453c2c66affSColin Finck  * @unimplemented
454c2c66affSColin Finck  */
ShowStartGlass(DWORD unknown)455c2c66affSColin Finck VOID WINAPI ShowStartGlass(DWORD unknown)
456c2c66affSColin Finck {
457c2c66affSColin Finck   UNIMPLEMENTED;
458c2c66affSColin Finck }
459c2c66affSColin Finck 
460c2c66affSColin Finck /*
461c2c66affSColin Finck  * @implemented
462c2c66affSColin Finck  */
GetMenuIndex(HMENU hMenu,HMENU hSubMenu)463c2c66affSColin Finck DWORD WINAPI GetMenuIndex(HMENU hMenu, HMENU hSubMenu)
464c2c66affSColin Finck {
465c2c66affSColin Finck   return NtUserGetMenuIndex(hMenu, hSubMenu);
466c2c66affSColin Finck }
467c2c66affSColin Finck 
468c2c66affSColin Finck /*
469c2c66affSColin Finck  * @unimplemented
470c2c66affSColin Finck  */
UserRegisterWowHandlers(PVOID Unknown1,PVOID Unknown2)471c2c66affSColin Finck DWORD WINAPI UserRegisterWowHandlers(PVOID Unknown1, PVOID Unknown2)
472c2c66affSColin Finck {
473c2c66affSColin Finck   UNIMPLEMENTED;
474c2c66affSColin Finck   return 0;
475c2c66affSColin Finck }
476c2c66affSColin Finck 
477c2c66affSColin Finck BOOL
478c2c66affSColin Finck WINAPI
BuildReasonArray(PVOID Pointer)479c2c66affSColin Finck BuildReasonArray(PVOID Pointer)
480c2c66affSColin Finck {
481c2c66affSColin Finck     UNIMPLEMENTED;
482c2c66affSColin Finck     return FALSE;
483c2c66affSColin Finck }
484c2c66affSColin Finck 
485c2c66affSColin Finck VOID
486c2c66affSColin Finck WINAPI
CreateSystemThreads(DWORD Unused)487c2c66affSColin Finck CreateSystemThreads(DWORD Unused)
488c2c66affSColin Finck {
489c2c66affSColin Finck     /* Thread call for remote processes (non-CSRSS) only */
490c2c66affSColin Finck     NtUserxCreateSystemThreads(TRUE);
491c2c66affSColin Finck     ExitThread(0);
492c2c66affSColin Finck }
493c2c66affSColin Finck 
494c2c66affSColin Finck BOOL
495c2c66affSColin Finck WINAPI
DestroyReasons(PVOID Pointer)496c2c66affSColin Finck DestroyReasons(PVOID Pointer)
497c2c66affSColin Finck {
498c2c66affSColin Finck     UNIMPLEMENTED;
499c2c66affSColin Finck     return FALSE;
500c2c66affSColin Finck }
501c2c66affSColin Finck 
502*1e0bb664SJames Tabor NTSTATUS
503c2c66affSColin Finck WINAPI
DeviceEventWorker(HWND hwnd,WPARAM wParam,LPARAM lParam,DWORD Data,ULONG_PTR * uResult)504*1e0bb664SJames Tabor DeviceEventWorker(HWND hwnd, WPARAM wParam, LPARAM lParam, DWORD Data, ULONG_PTR *uResult)
505c2c66affSColin Finck {
506*1e0bb664SJames Tabor     USER_API_MESSAGE ApiMessage;
507*1e0bb664SJames Tabor     PUSER_DEVICE_EVENT_MSG pusem = &ApiMessage.Data.DeviceEventMsg;
508*1e0bb664SJames Tabor 
509*1e0bb664SJames Tabor     pusem->hwnd = hwnd;
510*1e0bb664SJames Tabor     pusem->wParam = wParam;
511*1e0bb664SJames Tabor     pusem->lParam = lParam;
512*1e0bb664SJames Tabor     pusem->Data = Data;
513*1e0bb664SJames Tabor     pusem->Result = 0;
514*1e0bb664SJames Tabor 
515*1e0bb664SJames Tabor     TRACE("DeviceEventWorker : hwnd %p, wParam %d, lParam %d, Data %d, uResult %p\n", hwnd, wParam, lParam, Data, uResult);
516*1e0bb664SJames Tabor 
517*1e0bb664SJames Tabor     if ( lParam == 0 )
518*1e0bb664SJames Tabor     {
519*1e0bb664SJames Tabor         CsrClientCallServer( (PCSR_API_MESSAGE)&ApiMessage,
520*1e0bb664SJames Tabor                               NULL,
521*1e0bb664SJames Tabor                               CSR_CREATE_API_NUMBER( USERSRV_SERVERDLL_INDEX, UserpDeviceEvent ),
522*1e0bb664SJames Tabor                               sizeof(*pusem) );
523*1e0bb664SJames Tabor     }
524*1e0bb664SJames Tabor     else
525*1e0bb664SJames Tabor     {
526*1e0bb664SJames Tabor         PCSR_CAPTURE_BUFFER pcsrcb = NULL;
527*1e0bb664SJames Tabor         PDEV_BROADCAST_HDR pdev_br = (PDEV_BROADCAST_HDR)lParam;
528*1e0bb664SJames Tabor         ULONG BufferSize = pdev_br->dbch_size;
529*1e0bb664SJames Tabor 
530*1e0bb664SJames Tabor         pcsrcb = CsrAllocateCaptureBuffer( 1, BufferSize );
531*1e0bb664SJames Tabor 
532*1e0bb664SJames Tabor         if ( !pcsrcb )
533*1e0bb664SJames Tabor         {
534*1e0bb664SJames Tabor             return STATUS_NO_MEMORY;
535*1e0bb664SJames Tabor         }
536*1e0bb664SJames Tabor 
537*1e0bb664SJames Tabor         CsrCaptureMessageBuffer( pcsrcb, (PVOID)lParam, BufferSize, (PVOID*)&pusem->lParam );
538*1e0bb664SJames Tabor 
539*1e0bb664SJames Tabor         CsrClientCallServer( (PCSR_API_MESSAGE)&ApiMessage,
540*1e0bb664SJames Tabor                               pcsrcb,
541*1e0bb664SJames Tabor                               CSR_CREATE_API_NUMBER( USERSRV_SERVERDLL_INDEX, UserpDeviceEvent ),
542*1e0bb664SJames Tabor                               sizeof(*pusem) );
543*1e0bb664SJames Tabor 
544*1e0bb664SJames Tabor         CsrFreeCaptureBuffer( pcsrcb );
545*1e0bb664SJames Tabor     }
546*1e0bb664SJames Tabor 
547*1e0bb664SJames Tabor     if (NT_SUCCESS(ApiMessage.Status))
548*1e0bb664SJames Tabor     {
549*1e0bb664SJames Tabor         *uResult = pusem->Result;
550*1e0bb664SJames Tabor     }
551*1e0bb664SJames Tabor 
552*1e0bb664SJames Tabor     return ApiMessage.Status;
553c2c66affSColin Finck }
554c2c66affSColin Finck 
555c2c66affSColin Finck BOOL
556c2c66affSColin Finck WINAPI
GetReasonTitleFromReasonCode(DWORD dw1,DWORD dw2,DWORD dw3)557c2c66affSColin Finck GetReasonTitleFromReasonCode(DWORD dw1, DWORD dw2, DWORD dw3)
558c2c66affSColin Finck {
559c2c66affSColin Finck     UNIMPLEMENTED;
560c2c66affSColin Finck     return FALSE;
561c2c66affSColin Finck }
562c2c66affSColin Finck 
563c2c66affSColin Finck BOOL
564c2c66affSColin Finck WINAPI
IsSETEnabled(VOID)565c2c66affSColin Finck IsSETEnabled(VOID)
566c2c66affSColin Finck {
567c2c66affSColin Finck     /*
568c2c66affSColin Finck      * Determines whether the Shutdown Event Tracker is enabled.
569c2c66affSColin Finck      *
570c2c66affSColin Finck      * See http://undoc.airesoft.co.uk/user32.dll/IsSETEnabled.php
571c2c66affSColin Finck      * for more information.
572c2c66affSColin Finck      */
573c2c66affSColin Finck     UNIMPLEMENTED;
574c2c66affSColin Finck     return FALSE;
575c2c66affSColin Finck }
576c2c66affSColin Finck 
577c2c66affSColin Finck BOOL
578c2c66affSColin Finck WINAPI
RecordShutdownReason(DWORD dw0)579c2c66affSColin Finck RecordShutdownReason(DWORD dw0)
580c2c66affSColin Finck {
581c2c66affSColin Finck     UNIMPLEMENTED;
582c2c66affSColin Finck     return FALSE;
583c2c66affSColin Finck }
584c2c66affSColin Finck 
585c2c66affSColin Finck BOOL
586c2c66affSColin Finck WINAPI
UserLpkTabbedTextOut(DWORD dw1,DWORD dw2,DWORD dw3,DWORD dw4,DWORD dw5,DWORD dw6,DWORD dw7,DWORD dw8,DWORD dw9,DWORD dw10,DWORD dw11,DWORD dw12)587c2c66affSColin Finck UserLpkTabbedTextOut(
588c2c66affSColin Finck     DWORD dw1,
589c2c66affSColin Finck     DWORD dw2,
590c2c66affSColin Finck     DWORD dw3,
591c2c66affSColin Finck     DWORD dw4,
592c2c66affSColin Finck     DWORD dw5,
593c2c66affSColin Finck     DWORD dw6,
594c2c66affSColin Finck     DWORD dw7,
595c2c66affSColin Finck     DWORD dw8,
596c2c66affSColin Finck     DWORD dw9,
597c2c66affSColin Finck     DWORD dw10,
598c2c66affSColin Finck     DWORD dw11,
599c2c66affSColin Finck     DWORD dw12)
600c2c66affSColin Finck {
601c2c66affSColin Finck     UNIMPLEMENTED;
602c2c66affSColin Finck     return FALSE;
603c2c66affSColin Finck }
604c2c66affSColin Finck 
605c2c66affSColin Finck BOOL
606c2c66affSColin Finck WINAPI
Win32PoolAllocationStats(DWORD dw1,DWORD dw2,DWORD dw3,DWORD dw4,DWORD dw5)607c2c66affSColin Finck Win32PoolAllocationStats(DWORD dw1, DWORD dw2, DWORD dw3, DWORD dw4, DWORD dw5)
608c2c66affSColin Finck {
609c2c66affSColin Finck     UNIMPLEMENTED;
610c2c66affSColin Finck     return FALSE;
611c2c66affSColin Finck }
612c2c66affSColin Finck 
613