| /* |
| * Misc USER functions |
| * |
| * Copyright 1995 Thomas Sandford |
| * Copyright 1997 Marcus Meissner |
| */ |
| |
| #include "windef.h" |
| #include "winbase.h" |
| #include "wingdi.h" |
| #include "winuser.h" |
| #include "winerror.h" |
| |
| #include "debugtools.h" |
| |
| DEFAULT_DEBUG_CHANNEL(win); |
| |
| /********************************************************************** |
| * SetLastErrorEx [USER32.@] Sets the last-error code. |
| * |
| * RETURNS |
| * None. |
| */ |
| void WINAPI SetLastErrorEx( |
| DWORD error, /* [in] Per-thread error code */ |
| DWORD type) /* [in] Error type */ |
| { |
| TRACE("(0x%08lx, 0x%08lx)\n", error,type); |
| switch(type) { |
| case 0: |
| break; |
| case SLE_ERROR: |
| case SLE_MINORERROR: |
| case SLE_WARNING: |
| /* Fall through for now */ |
| default: |
| FIXME("(error=%08lx, type=%08lx): Unhandled type\n", error,type); |
| break; |
| } |
| SetLastError( error ); |
| } |
| |
| |
| /****************************************************************************** |
| * GetProcessWindowStation [USER32.@] Returns handle of window station |
| * |
| * NOTES |
| * Docs say the return value is HWINSTA |
| * |
| * RETURNS |
| * Success: Handle to window station associated with calling process |
| * Failure: NULL |
| */ |
| HWINSTA WINAPI GetProcessWindowStation(void) |
| { |
| FIXME("(void): stub\n"); |
| return (HWINSTA)1; |
| } |
| |
| |
| /****************************************************************************** |
| * GetThreadDesktop [USER32.@] Returns handle to desktop |
| * |
| * NOTES |
| * Docs say the return value is HDESK |
| * |
| * PARAMS |
| * dwThreadId [I] Thread identifier |
| * |
| * RETURNS |
| * Success: Handle to desktop associated with specified thread |
| * Failure: NULL |
| */ |
| DWORD WINAPI GetThreadDesktop( DWORD dwThreadId ) |
| { |
| FIXME("(%lx): stub\n",dwThreadId); |
| return 1; |
| } |
| |
| |
| /****************************************************************************** |
| * SetDebugErrorLevel [USER32.@] |
| * Sets the minimum error level for generating debugging events |
| * |
| * PARAMS |
| * dwLevel [I] Debugging error level |
| */ |
| VOID WINAPI SetDebugErrorLevel( DWORD dwLevel ) |
| { |
| FIXME("(%ld): stub\n", dwLevel); |
| } |
| |
| |
| /****************************************************************************** |
| * GetProcessDefaultLayout [USER32.@] |
| * |
| * Gets the default layout for parentless windows. |
| * Right now, just returns 0 (left-to-right). |
| * |
| * RETURNS |
| * Success: Nonzero |
| * Failure: Zero |
| * |
| * BUGS |
| * No RTL |
| */ |
| BOOL WINAPI GetProcessDefaultLayout( DWORD *pdwDefaultLayout ) |
| { |
| if ( !pdwDefaultLayout ) { |
| SetLastError( ERROR_INVALID_PARAMETER ); |
| return FALSE; |
| } |
| FIXME( "( %p ): No BiDi\n", pdwDefaultLayout ); |
| *pdwDefaultLayout = 0; |
| return TRUE; |
| } |
| |
| |
| /****************************************************************************** |
| * SetProcessDefaultLayout [USER32.@] |
| * |
| * Sets the default layout for parentless windows. |
| * Right now, only accepts 0 (left-to-right). |
| * |
| * RETURNS |
| * Success: Nonzero |
| * Failure: Zero |
| * |
| * BUGS |
| * No RTL |
| */ |
| BOOL WINAPI SetProcessDefaultLayout( DWORD dwDefaultLayout ) |
| { |
| if ( dwDefaultLayout == 0 ) |
| return TRUE; |
| FIXME( "( %08lx ): No BiDi\n", dwDefaultLayout ); |
| SetLastError( ERROR_CALL_NOT_IMPLEMENTED ); |
| return FALSE; |
| } |
| |
| |
| /****************************************************************************** |
| * OpenDesktopA [USER32.@] |
| * |
| * NOTES |
| * Return type should be HDESK |
| * |
| * Not supported on Win9x - returns NULL and calls SetLastError. |
| */ |
| HANDLE WINAPI OpenDesktopA( LPCSTR lpszDesktop, DWORD dwFlags, |
| BOOL fInherit, DWORD dwDesiredAccess ) |
| { |
| FIXME("(%s,%lx,%i,%lx): stub\n",debugstr_a(lpszDesktop),dwFlags, |
| fInherit,dwDesiredAccess); |
| |
| SetLastError(ERROR_CALL_NOT_IMPLEMENTED); |
| return 0; |
| } |
| |
| |
| /****************************************************************************** |
| * SetUserObjectInformationA (USER32.@) |
| */ |
| BOOL WINAPI SetUserObjectInformationA( HANDLE hObj, INT nIndex, |
| LPVOID pvInfo, DWORD nLength ) |
| { |
| FIXME("(%x,%d,%p,%lx): stub\n",hObj,nIndex,pvInfo,nLength); |
| return TRUE; |
| } |
| |
| /****************************************************************************** |
| * SetThreadDesktop (USER32.@) |
| */ |
| BOOL WINAPI SetThreadDesktop( HANDLE hDesktop ) |
| { |
| FIXME("(%x): stub\n",hDesktop); |
| return TRUE; |
| } |
| |
| |
| /*********************************************************************** |
| * RegisterShellHookWindow [USER32.@] |
| */ |
| HRESULT WINAPI RegisterShellHookWindow ( DWORD u ) |
| { |
| FIXME("0x%08lx stub\n",u); |
| return 0; |
| } |
| |
| |
| /*********************************************************************** |
| * DeregisterShellHookWindow [USER32.@] |
| */ |
| HRESULT WINAPI DeregisterShellHookWindow ( DWORD u ) |
| { |
| FIXME("0x%08lx stub\n",u); |
| return 0; |
| |
| } |
| |
| |
| /*********************************************************************** |
| * RegisterTasklist [USER32.@] |
| */ |
| DWORD WINAPI RegisterTasklist (DWORD x) |
| { |
| FIXME("0x%08lx\n",x); |
| return TRUE; |
| } |
| |
| /*********************************************************************** |
| * USER_489 (USER.489) |
| */ |
| LONG WINAPI stub_USER_489(void) { FIXME("stub\n"); return 0; } |
| |
| /*********************************************************************** |
| * USER_490 (USER.490) |
| */ |
| LONG WINAPI stub_USER_490(void) { FIXME("stub\n"); return 0; } |
| |
| /*********************************************************************** |
| * USER_492 (USER.492) |
| */ |
| LONG WINAPI stub_USER_492(void) { FIXME("stub\n"); return 0; } |
| |
| /*********************************************************************** |
| * USER_496 (USER.496) |
| */ |
| LONG WINAPI stub_USER_496(void) { FIXME("stub\n"); return 0; } |