-/* $Id$
- *
+/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS user32.dll
* FILE: lib/user32/misc/stubs.c
WINE_DEFAULT_DEBUG_CHANNEL(user32);
-/*
- * @unimplemented
- */
-BOOL
-STDCALL
-AttachThreadInput(
- DWORD idAttach,
- DWORD idAttachTo,
- BOOL fAttach)
-{
- UNIMPLEMENTED;
- return FALSE;
-}
-
-
-/*
- * @unimplemented
- */
-long
-STDCALL
-BroadcastSystemMessageA(
- DWORD dwFlags,
- LPDWORD lpdwRecipients,
- UINT uiMessage,
- WPARAM wParam,
- LPARAM lParam)
-{
- UNIMPLEMENTED;
- return 0;
-}
-
-
-/*
- * @unimplemented
- */
-long
-STDCALL
-BroadcastSystemMessageW(
- DWORD dwFlags,
- LPDWORD lpdwRecipients,
- UINT uiMessage,
- WPARAM wParam,
- LPARAM lParam)
-{
- UNIMPLEMENTED;
- return 0;
-}
-
-
-/*
- * @unimplemented
- */
-int
-STDCALL
-GetMouseMovePointsEx(
- UINT cbSize,
- LPMOUSEMOVEPOINT lppt,
- LPMOUSEMOVEPOINT lpptBuf,
- int nBufPoints,
- DWORD resolution)
-{
- UNIMPLEMENTED;
- return 0;
-}
-
-
-/*
- * @unimplemented
- */
-BOOL
-STDCALL
-LockWindowUpdate(
- HWND hWndLock)
-{
- UNIMPLEMENTED;
- return FALSE;
-}
-
-
-/*
- * @unimplemented
- */
-BOOL
-STDCALL
-LockWorkStation(VOID)
-{
- UNIMPLEMENTED;
- return FALSE;
-}
-
-
/*
* @unimplemented
*/
DWORD
-STDCALL
+WINAPI
WaitForInputIdle(
HANDLE hProcess,
DWORD dwMilliseconds)
{
- UNIMPLEMENTED;
- return 0;
+// Need to call NtQueryInformationProcess and send ProcessId not hProcess.
+ return NtUserWaitForInputIdle(hProcess, dwMilliseconds, FALSE);
}
/******************************************************************************
* @unimplemented
*/
VOID
-STDCALL
+WINAPI
SetDebugErrorLevel( DWORD dwLevel )
{
DbgPrint("(%ld): stub\n", dwLevel);
/*
- * @unimplemented
+ * @implemented
*/
DWORD
-STDCALL
-GetAppCompatFlags ( HTASK hTask )
+WINAPI
+GetAppCompatFlags(HTASK hTask)
{
- UNIMPLEMENTED;
- return FALSE;
+ PCLIENTINFO pci = GetWin32ClientInfo();
+
+ return pci->dwCompatFlags;
+}
+
+/*
+ * @implemented
+ */
+DWORD
+WINAPI
+GetAppCompatFlags2(HTASK hTask)
+{
+ PCLIENTINFO pci = GetWin32ClientInfo();
+
+ return pci->dwCompatFlags2;
}
/*
* @unimplemented
*/
UINT
-STDCALL
+WINAPI
GetInternalWindowPos(
HWND hwnd,
LPRECT rectWnd,
LPPOINT ptIcon
)
{
- UNIMPLEMENTED;
- return FALSE;
+ WINDOWPLACEMENT wndpl;
+
+ if (GetWindowPlacement(hwnd, &wndpl))
+ {
+ if (rectWnd) *rectWnd = wndpl.rcNormalPosition;
+ if (ptIcon) *ptIcon = wndpl.ptMinPosition;
+ return wndpl.showCmd;
+ }
+ return 0;
}
/*
* @unimplemented
*/
VOID
-STDCALL
+WINAPI
LoadLocalFonts ( VOID )
{
UNIMPLEMENTED;
* @unimplemented
*/
VOID
-STDCALL
+WINAPI
LoadRemoteFonts ( VOID )
{
UNIMPLEMENTED;
* @unimplemented
*/
VOID
-STDCALL
-SetInternalWindowPos(
- HWND hwnd,
- UINT showCmd,
- LPRECT rect,
- LPPOINT pt
- )
-{
- UNIMPLEMENTED;
-}
-
-/*
- * @unimplemented
- */
-VOID
-STDCALL
+WINAPI
RegisterSystemThread ( DWORD flags, DWORD reserved )
{
UNIMPLEMENTED;
}
-/*
- * @unimplemented
- */
-DWORD
-STDCALL
-RegisterTasklist ( DWORD x )
-{
- UNIMPLEMENTED;
- return FALSE;
-}
/*
- * @unimplemented
- */
-DWORD
-STDCALL
-DragObject(
- HWND hwnd1,
- HWND hwnd2,
- UINT u1,
- DWORD dw1,
- HCURSOR hc1
- )
-{
- return NtUserDragObject(hwnd1, hwnd2, u1, dw1, hc1);
-}
-
-
-
-
-/*
- * @unimplemented
+ * @implemented
*/
UINT
-STDCALL
+WINAPI
UserRealizePalette ( HDC hDC )
{
- UNIMPLEMENTED;
- return FALSE;
+ return NtUserCallOneParam((DWORD_PTR) hDC, ONEPARAM_ROUTINE_REALIZEPALETTE);
}
-/*
- * @unimplemented
- */
-HANDLE
-WINAPI
-SetSysColorsTemp(
- const COLORREF *pPens,
- const HBRUSH *pBrushes,
- INT n
- )
-{
- UNIMPLEMENTED;
- return FALSE;
-}
-/*
- * @unimplemented
+/*************************************************************************
+ * SetSysColorsTemp (USER32.@) (Wine 10/22/2008)
+ *
+ * UNDOCUMENTED !!
+ *
+ * Called by W98SE desk.cpl Control Panel Applet:
+ * handle = SetSysColorsTemp(ptr, ptr, nCount); ("set" call)
+ * result = SetSysColorsTemp(NULL, NULL, handle); ("restore" call)
+ *
+ * pPens is an array of COLORREF values, which seems to be used
+ * to indicate the color values to create new pens with.
+ *
+ * pBrushes is an array of solid brush handles (returned by a previous
+ * CreateSolidBrush), which seems to contain the brush handles to set
+ * for the system colors.
+ *
+ * n seems to be used for
+ * a) indicating the number of entries to operate on (length of pPens,
+ * pBrushes)
+ * b) passing the handle that points to the previously used color settings.
+ * I couldn't figure out in hell what kind of handle this is on
+ * Windows. I just use a heap handle instead. Shouldn't matter anyway.
+ *
+ * RETURNS
+ * heap handle of our own copy of the current syscolors in case of
+ * "set" call, i.e. pPens, pBrushes != NULL.
+ * TRUE (unconditionally !) in case of "restore" call,
+ * i.e. pPens, pBrushes == NULL.
+ * FALSE in case of either pPens != NULL and pBrushes == NULL
+ * or pPens == NULL and pBrushes != NULL.
+ *
+ * I'm not sure whether this implementation is 100% correct. [AM]
*/
-WORD
-STDCALL
-CascadeChildWindows ( HWND hWndParent, WORD wFlags )
-{
- UNIMPLEMENTED;
- return FALSE;
-}
-/*
- * @unimplemented
- */
-WORD
-STDCALL
-TileChildWindows ( HWND hWndParent, WORD wFlags )
-{
- UNIMPLEMENTED;
- return FALSE;
+static HPEN SysColorPens[COLOR_MENUBAR + 1];
+static HBRUSH SysColorBrushes[COLOR_MENUBAR + 1];
+
+DWORD_PTR
+WINAPI
+SetSysColorsTemp(const COLORREF *pPens,
+ const HBRUSH *pBrushes,
+ DWORD_PTR n)
+{
+ DWORD i;
+
+ if (pPens && pBrushes) /* "set" call */
+ {
+ /* allocate our structure to remember old colors */
+ LPVOID pOldCol = HeapAlloc(GetProcessHeap(), 0, sizeof(DWORD)+n*sizeof(HPEN)+n*sizeof(HBRUSH));
+ LPVOID p = pOldCol;
+ *(DWORD_PTR *)p = n; p = (char*)p + sizeof(DWORD);
+ memcpy(p, SysColorPens, n*sizeof(HPEN)); p = (char*)p + n*sizeof(HPEN);
+ memcpy(p, SysColorBrushes, n*sizeof(HBRUSH)); p = (char*)p + n*sizeof(HBRUSH);
+
+ for (i=0; i < n; i++)
+ {
+ SysColorPens[i] = CreatePen( PS_SOLID, 1, pPens[i] );
+ SysColorBrushes[i] = pBrushes[i];
+ }
+
+ return (DWORD_PTR) pOldCol;
+ }
+ if (!pPens && !pBrushes) /* "restore" call */
+ {
+ LPVOID pOldCol = (LPVOID)n; /* FIXME: not 64-bit safe */
+ LPVOID p = pOldCol;
+ DWORD nCount = *(DWORD *)p;
+ p = (char*)p + sizeof(DWORD);
+
+ for (i=0; i < nCount; i++)
+ {
+ DeleteObject(SysColorPens[i]);
+ SysColorPens[i] = *(HPEN *)p; p = (char*)p + sizeof(HPEN);
+ }
+ for (i=0; i < nCount; i++)
+ {
+ SysColorBrushes[i] = *(HBRUSH *)p; p = (char*)p + sizeof(HBRUSH);
+ }
+ /* get rid of storage structure */
+ HeapFree(GetProcessHeap(), 0, pOldCol);
+
+ return TRUE;
+ }
+ return FALSE;
}
/*
* @unimplemented
*/
HDESK
-STDCALL
+WINAPI
GetInputDesktop ( VOID )
{
UNIMPLEMENTED;
* @unimplemented
*/
BOOL
-STDCALL
+WINAPI
GetAccCursorInfo ( PCURSORINFO pci )
{
UNIMPLEMENTED;
* @unimplemented
*/
BOOL
-STDCALL
+WINAPI
ClientThreadSetup ( VOID )
{
UNIMPLEMENTED;
* @unimplemented
*/
UINT
-STDCALL
+WINAPI
GetRawInputDeviceInfoW(
HANDLE hDevice,
UINT uiCommand,
PUINT pcbSize)
{
UNIMPLEMENTED;
- return FALSE;
-}
-
-/*
- * @unimplemented
- */
-LONG
-STDCALL
-BroadcastSystemMessageExW(
- DWORD dwflags,
- LPDWORD lpdwRecipients,
- UINT uiMessage,
- WPARAM wParam,
- LPARAM lParam,
- PBSMINFO pBSMInfo)
-{
- UNIMPLEMENTED;
- return FALSE;
+ return 0;
}
/*
* @unimplemented
*/
LONG
-STDCALL
+WINAPI
CsrBroadcastSystemMessageExW(
DWORD dwflags,
LPDWORD lpdwRecipients,
* @unimplemented
*/
UINT
-STDCALL
+WINAPI
GetRawInputDeviceInfoA(
HANDLE hDevice,
UINT uiCommand,
PUINT pcbSize)
{
UNIMPLEMENTED;
- return FALSE;
-}
-
-/*
- * @unimplemented
- */
-LONG
-STDCALL
-BroadcastSystemMessageExA(
- DWORD dwflags,
- LPDWORD lpdwRecipients,
- UINT uiMessage,
- WPARAM wParam,
- LPARAM lParam,
- PBSMINFO pBSMInfo)
-{
- UNIMPLEMENTED;
- return FALSE;
+ return 0;
}
/*
* @unimplemented
*/
BOOL
-STDCALL
+WINAPI
AlignRects(LPRECT rect, DWORD b, DWORD c, DWORD d)
{
UNIMPLEMENTED;
* @unimplemented
*/
LRESULT
-STDCALL
+WINAPI
DefRawInputProc(
PRAWINPUT* paRawInput,
INT nInput,
UINT cbSizeHeader)
{
UNIMPLEMENTED;
- return FALSE;
-}
-
-/*
- * @unimplemented
- */
-BOOL
-STDCALL
-GetLayeredWindowAttributes(
- HWND hwnd,
- COLORREF *pcrKey,
- BYTE *pbAlpha,
- DWORD *pdwFlags)
-{
- UNIMPLEMENTED;
- return FALSE;
+ return 0;
}
/*
* @unimplemented
*/
UINT
-STDCALL
+WINAPI
GetRawInputBuffer(
- PRAWINPUT pData,
- PUINT pcbSize,
- UINT cbSizeHeader)
+ PRAWINPUT pData,
+ PUINT pcbSize,
+ UINT cbSizeHeader)
{
UNIMPLEMENTED;
- return FALSE;
+ return 0;
}
/*
* @unimplemented
*/
UINT
-STDCALL
+WINAPI
GetRawInputData(
- HRAWINPUT hRawInput,
- UINT uiCommand,
- LPVOID pData,
- PUINT pcbSize,
- UINT cbSizeHeader)
+ HRAWINPUT hRawInput,
+ UINT uiCommand,
+ LPVOID pData,
+ PUINT pcbSize,
+ UINT cbSizeHeader)
{
UNIMPLEMENTED;
- return FALSE;
+ return 0;
}
/*
* @unimplemented
*/
UINT
-STDCALL
+WINAPI
GetRawInputDeviceList(
PRAWINPUTDEVICELIST pRawInputDeviceList,
PUINT puiNumDevices,
UINT cbSize)
{
- UNIMPLEMENTED;
- return FALSE;
+ if(pRawInputDeviceList)
+ memset(pRawInputDeviceList, 0, sizeof *pRawInputDeviceList);
+ *puiNumDevices = 0;
+
+ UNIMPLEMENTED;
+ return 0;
}
/*
* @unimplemented
*/
UINT
-STDCALL
+WINAPI
GetRegisteredRawInputDevices(
PRAWINPUTDEVICE pRawInputDevices,
PUINT puiNumDevices,
UINT cbSize)
{
UNIMPLEMENTED;
- return FALSE;
+ return 0;
}
/*
* @unimplemented
*/
BOOL
-STDCALL
+WINAPI
PrintWindow(
HWND hwnd,
HDC hdcBlt,
* @unimplemented
*/
BOOL
-STDCALL
+WINAPI
RegisterRawInputDevices(
PCRAWINPUTDEVICE pRawInputDevices,
UINT uiNumDevices,
/*
* @unimplemented
*/
-UINT
-STDCALL
-WINNLSGetIMEHotkey( HWND hwnd)
-{
- UNIMPLEMENTED;
- return FALSE;
-}
-
-/*
- * @unimplemented
- */
-BOOL
-STDCALL
-WINNLSEnableIME( HWND hwnd, BOOL enable)
+BOOL WINAPI DisplayExitWindowsWarnings(ULONG flags)
{
UNIMPLEMENTED;
return FALSE;
/*
* @unimplemented
*/
-BOOL
-STDCALL
-WINNLSGetEnableStatus( HWND hwnd)
+BOOL WINAPI ReasonCodeNeedsBugID(ULONG reasoncode)
{
UNIMPLEMENTED;
return FALSE;
/*
* @unimplemented
*/
-BOOL
-STDCALL
-IMPSetIMEW( HWND hwnd, LPIMEPROW ime)
+BOOL WINAPI ReasonCodeNeedsComment(ULONG reasoncode)
{
UNIMPLEMENTED;
return FALSE;
/*
* @unimplemented
*/
-BOOL
-STDCALL
-IMPQueryIMEW( LPIMEPROW ime)
+BOOL WINAPI CtxInitUser32(VOID)
{
UNIMPLEMENTED;
return FALSE;
/*
* @unimplemented
*/
-BOOL
-STDCALL
-IMPGetIMEW( HWND hwnd, LPIMEPROW ime)
+BOOL WINAPI EnterReaderModeHelper(HWND hwnd)
{
UNIMPLEMENTED;
return FALSE;
/*
* @unimplemented
*/
-BOOL
-STDCALL
-IMPSetIMEA( HWND hwnd, LPIMEPROA ime)
+VOID WINAPI InitializeLpkHooks(FARPROC *hookfuncs)
{
UNIMPLEMENTED;
- return FALSE;
}
/*
* @unimplemented
*/
-BOOL
-STDCALL
-IMPQueryIMEA( LPIMEPROA ime)
+WORD WINAPI InitializeWin32EntryTable(UCHAR* EntryTablePlus0x1000)
{
UNIMPLEMENTED;
return FALSE;
/*
* @unimplemented
*/
-BOOL
-STDCALL
-IMPGetIMEA( HWND hwnd, LPIMEPROA ime)
+BOOL WINAPI IsServerSideWindow(HWND wnd)
{
UNIMPLEMENTED;
return FALSE;
/*
* @unimplemented
*/
-LRESULT
-STDCALL
-SendIMEMessageExW(HWND hwnd,LPARAM lparam)
+HKL WINAPI LoadKeyboardLayoutEx(DWORD unknown,LPCWSTR pwszKLID,UINT Flags) //1st parameter unknown
{
UNIMPLEMENTED;
return FALSE;
/*
* @unimplemented
*/
-LRESULT
-STDCALL
-SendIMEMessageExA(HWND hwnd, LPARAM lparam)
+VOID WINAPI AllowForegroundActivation(VOID)
{
UNIMPLEMENTED;
- return FALSE;
}
/*
* @unimplemented
*/
-BOOL STDCALL DisplayExitWindowsWarnings(ULONG flags)
+VOID WINAPI ShowStartGlass(DWORD unknown)
{
UNIMPLEMENTED;
- return FALSE;
}
/*
* @unimplemented
*/
-BOOL STDCALL ReasonCodeNeedsBugID(ULONG reasoncode)
+BOOL WINAPI DdeGetQualityOfService(HWND hWnd, DWORD Reserved, PSECURITY_QUALITY_OF_SERVICE pqosPrev)
{
UNIMPLEMENTED;
return FALSE;
/*
* @unimplemented
*/
-BOOL STDCALL ReasonCodeNeedsComment(ULONG reasoncode)
+BOOL WINAPI SetProcessDPIAware(VOID)
{
- UNIMPLEMENTED;
- return FALSE;
+ UNIMPLEMENTED;
+ return TRUE;
}
/*
* @unimplemented
*/
-BOOL STDCALL CtxInitUser32(VOID)
+BOOL WINAPI CliImmSetHotKey(DWORD dwID, UINT uModifiers, UINT uVirtualKey, HKL hKl)
{
UNIMPLEMENTED;
return FALSE;
/*
* @unimplemented
*/
-BOOL STDCALL EnterReaderModeHelper(HWND hwnd)
+DWORD WINAPI GetMenuIndex(HMENU hMenu, HMENU hSubMenu)
{
UNIMPLEMENTED;
- return FALSE;
-}
-
-/*
- * @unimplemented
- */
-DWORD
-STDCALL
-GetAppCompatFlags2(HTASK hTask)
-{
- UNIMPLEMENTED;
- return FALSE;
-}
-
-/*
- * @unimplemented
- */
-VOID STDCALL InitializeLpkHooks(FARPROC *hookfuncs)
-{
- UNIMPLEMENTED;
-}
-
-/*
- * @unimplemented
- */
-WORD STDCALL InitializeWin32EntryTable(UCHAR* EntryTablePlus0x1000)
-{
- UNIMPLEMENTED;
- return FALSE;
-}
-
-/*
- * @unimplemented
- */
-BOOL STDCALL IsServerSideWindow(HWND wnd)
-{
- UNIMPLEMENTED;
- return FALSE;
-}
-
-typedef BOOL (CALLBACK *THEME_HOOK_FUNC) (DWORD state,PVOID arg2); //return type and 2nd parameter unknown
-/*
- * @unimplemented
- */
-BOOL STDCALL RegisterUserApiHook(HINSTANCE instance,THEME_HOOK_FUNC proc)
-{
- UNIMPLEMENTED;
- return FALSE;
-}
-
-/*
- * @unimplemented
- */
-BOOL STDCALL UnregisterUserApiHook(VOID)
-{
- UNIMPLEMENTED;
- return FALSE;
-}
-
-/*
- * @unimplemented
- */
-HKL STDCALL LoadKeyboardLayoutEx(DWORD unknown,LPCWSTR pwszKLID,UINT Flags) //1st parameter unknown
-{
- UNIMPLEMENTED;
- return FALSE;
-}
-
-/*
- * @unimplemented
- */
-VOID STDCALL AllowForegroundActivation(VOID)
-{
- UNIMPLEMENTED;
-}
-
-/*
- * @unimplemented
- */
-VOID STDCALL ShowStartGlass(DWORD unknown)
-{
- UNIMPLEMENTED;
-}
-
-/*
- * @unimplemented
- */
-BOOL STDCALL DdeGetQualityOfService(HWND hWnd, DWORD Reserved, PSECURITY_QUALITY_OF_SERVICE pqosPrev)
-{
- UNIMPLEMENTED;
- return FALSE;
+ return 0;
}
-
/*
* @unimplemented
*/
-DWORD STDCALL User32InitializeImmEntryTable(PVOID p)
+DWORD WINAPI UserRegisterWowHandlers(PVOID Unknown1, PVOID Unknown2)
{
UNIMPLEMENTED;
return 0;