diff --git a/dlls/user/user32.spec b/dlls/user/user32.spec index 2df366fd84d..d0ec2097dcb 100644 --- a/dlls/user/user32.spec +++ b/dlls/user/user32.spec @@ -651,15 +651,17 @@ debug_channels (accel caret class clipboard combo cursor dc ddeml dialog driver @ stdcall RegisterDeviceNotificationA(long ptr long) RegisterDeviceNotificationA @ stub RegisterDeviceNotificationW @ stub UnregisterDeviceNotification + # win98/win2k -@ stdcall GetClipboardSequenceNumber () GetClipboardSequenceNumber @ stdcall AllowSetForegroundWindow (long) AllowSetForegroundWindow -@ stdcall LockSetForegroundWindow (long) LockSetForegroundWindow +@ stdcall AnimateWindow(long long long) AnimateWindow @ stdcall DrawMenuBarTemp(long long) DrawMenuBarTemp @ stdcall EnumDisplaySettingsExA(str long ptr long) EnumDisplaySettingsExA @ stdcall EnumDisplaySettingsExW(wstr long ptr long) EnumDisplaySettingsExW +@ stdcall GetClipboardSequenceNumber () GetClipboardSequenceNumber @ stdcall GetWindowModuleFileNameA(long ptr long) GetWindowModuleFileNameA @ stdcall GetWindowModuleFileNameW(long ptr long) GetWindowModuleFileNameW +@ stdcall LockSetForegroundWindow (long) LockSetForegroundWindow ################################################################ # Wine extensions: Win16 functions that are needed by other dlls diff --git a/include/winuser.h b/include/winuser.h index 56c45073eab..c7a96d51917 100644 --- a/include/winuser.h +++ b/include/winuser.h @@ -2525,6 +2525,17 @@ DECL_WINELIB_TYPE_AW(LPICONMETRICS) #define PM_REMOVE 0x0001 #define PM_NOYIELD 0x0002 +/* AnimateWindow() flags */ +#define AW_SLIDE 0x00040000 +#define AW_ACTIVATE 0x00020000 +#define AW_BLEND 0x00080000 +#define AW_HIDE 0x00010000 +#define AW_CENTER 0x00000010 +#define AW_HOR_POSITIVE 0x00000001 +#define AW_HOR_NEGATIVE 0x00000002 +#define AW_VER_POSITIVE 0x00000004 +#define AW_VER_NEGATIVE 0x00000008 + /* WM_SHOWWINDOW wParam codes */ #define SW_PARENTCLOSING 1 #define SW_OTHERMAXIMIZED 2 @@ -3247,8 +3258,9 @@ BOOL WINAPI SetKeyboardState(LPBYTE); /* Declarations for functions that change between Win16 and Win32 */ -BOOL WINAPI AdjustWindowRect(LPRECT,DWORD,BOOL); -BOOL WINAPI AdjustWindowRectEx(LPRECT,DWORD,BOOL,DWORD); +BOOL WINAPI AdjustWindowRect(LPRECT,DWORD,BOOL); +BOOL WINAPI AdjustWindowRectEx(LPRECT,DWORD,BOOL,DWORD); +BOOL WINAPI AnimateWindow(HWND,DWORD,DWORD); #define AnsiLowerA CharLowerA #define AnsiLowerW CharLowerW #define AnsiLower WINELIB_NAME_AW(AnsiLower) diff --git a/windows/winpos.c b/windows/winpos.c index 42e87c309c5..afcf9cc0bdc 100644 --- a/windows/winpos.c +++ b/windows/winpos.c @@ -1393,6 +1393,30 @@ void WINAPI SetInternalWindowPos16( HWND16 hwnd, UINT16 showCmd, } } +/*********************************************************************** + * AnimateWindow (USER32.@) + * Shows/Hides a window with an animation + * NO ANIMATION YET + */ +BOOL WINAPI AnimateWindow(HWND hwnd, DWORD dwTime, DWORD dwFlags) +{ + FIXME("partial stub\n"); + + /* If trying to show/hide and it's already * + * shown/hidden or invalid window, fail with * + * invalid parameter */ + if(!IsWindow(hwnd) || + (IsWindowVisible(hwnd) && !(dwFlags & AW_HIDE)) || + (!IsWindowVisible(hwnd) && (dwFlags & AW_HIDE))) + { + SetLastError(ERROR_INVALID_PARAMETER); + return FALSE; + } + + ShowWindow(hwnd, (dwFlags & AW_HIDE) ? SW_HIDE : ((dwFlags & AW_ACTIVATE) ? SW_SHOW : SW_SHOWNA)); + + return TRUE; +} /*********************************************************************** * SetInternalWindowPos (USER32.@)