- Get FlashWindow working, pass all but 2 tests. Add more win32k atoms.

svn path=/trunk/; revision=54633
This commit is contained in:
James Tabor 2011-12-10 06:00:38 +00:00
parent 13adb6230a
commit 3c7096002a
2 changed files with 33 additions and 3 deletions

View file

@ -41,6 +41,11 @@ InitUserAtoms(VOID)
/* System Context Help Id Atom */
gpsi->atomContextHelpIdProp = IntAddGlobalAtom(L"SysCH", TRUE);
gpsi->atomIconSmProp = IntAddGlobalAtom(L"SysICS", TRUE);
gpsi->atomIconProp = IntAddGlobalAtom(L"SysIC", TRUE);
gpsi->atomFrostedWindowProp = IntAddGlobalAtom(L"SysFrostedWindow", TRUE);
AtomWndObj = IntAddGlobalAtom(L"SysWNDO", TRUE);
AtomLayer = IntAddGlobalAtom(L"SysLayer", TRUE);
AtomFlashWndState = IntAddGlobalAtom(L"FlashWState", TRUE);

View file

@ -776,6 +776,31 @@ IntPrintWindow(
return TRUE;
}
BOOL
FASTCALL
IntFlashWindowEx(PWND pWnd, PFLASHWINFO pfwi)
{
PPROPERTY pprop;
DWORD FlashState;
BOOL Ret = FALSE;
pprop = IntGetProp(pWnd, AtomFlashWndState);
if (!pprop)
{
FlashState = pfwi->dwFlags;
IntSetProp(pWnd, AtomFlashWndState, (HANDLE) FlashState);
return TRUE;
}
FlashState = (DWORD)pprop->Data;
if ( pfwi->dwFlags == FLASHW_STOP )
{
IntRemoveProp(pWnd, AtomFlashWndState);
Ret = TRUE;
}
return Ret;
}
/* PUBLIC FUNCTIONS ***********************************************************/
/*
@ -951,7 +976,7 @@ CLEANUP:
BOOL APIENTRY
NtUserFlashWindowEx(IN PFLASHWINFO pfwi)
{
//PWND pWnd;
PWND pWnd;
FLASHWINFO finfo = {0};
BOOL Ret = TRUE;
@ -971,7 +996,7 @@ NtUserFlashWindowEx(IN PFLASHWINFO pfwi)
if (!Ret) goto Exit;
if (!(/* pWnd = */ (PWND)UserGetObject(gHandleTable, finfo.hwnd, otWindow)) ||
if (!( pWnd = (PWND)UserGetObject(gHandleTable, finfo.hwnd, otWindow)) ||
finfo.cbSize != sizeof(FLASHWINFO) ||
finfo.dwFlags & ~(FLASHW_ALL|FLASHW_TIMER|FLASHW_TIMERNOFG) )
{
@ -980,7 +1005,7 @@ NtUserFlashWindowEx(IN PFLASHWINFO pfwi)
goto Exit;
}
//Ret = IntFlashWindowEx(pWnd, &finfo);
Ret = IntFlashWindowEx(pWnd, &finfo);
Exit:
UserLeave();