diff --git a/reactos/dll/win32/user32/windows/dialog.c b/reactos/dll/win32/user32/windows/dialog.c index c45e8d5a0dc..1641ce613ca 100644 --- a/reactos/dll/win32/user32/windows/dialog.c +++ b/reactos/dll/win32/user32/windows/dialog.c @@ -288,7 +288,7 @@ static const WORD *DIALOG_GetControl32( const WORD *p, DLG_CONTROL_INFO *info, info->windowName = HeapAlloc( GetProcessHeap(), 0, sizeof(L"#65535") ); if (info->windowName != NULL) { - swprintf((LPWSTR)info->windowName, L"#%d", GET_WORD(p + 1)); + wsprintf((LPWSTR)info->windowName, L"#%d", GET_WORD(p + 1)); info->windowNameFree = TRUE; } else diff --git a/reactos/dll/win32/user32/windows/message.c b/reactos/dll/win32/user32/windows/message.c index fdfb2738132..7bff66d5d26 100644 --- a/reactos/dll/win32/user32/windows/message.c +++ b/reactos/dll/win32/user32/windows/message.c @@ -234,36 +234,24 @@ MsgiUMToKMMessage(PMSG UMMsg, PMSG KMMsg, BOOL Posted) { PKMDDELPARAM DdeLparam; DdeLparam = HeapAlloc(GetProcessHeap(), 0, sizeof(KMDDELPARAM)); - if (NULL == DdeLparam) + if (NULL == DdeLparam || !UnpackDDElParam( + UMMsg->message, UMMsg->lParam, + &DdeLparam->uiLo, &DdeLparam->uiHi)) return FALSE; + /* + If this is a reply to WM_DDE_EXECUTE then + uiHi will contain a hMem, hence >= 0x10000. + Otherwise, it will be be an atom, a 16-bit value. + */ + if(DdeLparam->uiHi >= 0x10000) { - return FALSE; - } - if (Posted) - { - DdeLparam->Packed = TRUE; - if (! UnpackDDElParam(UMMsg->message, UMMsg->lParam, - &DdeLparam->Value.Packed.uiLo, - &DdeLparam->Value.Packed.uiHi)) - { - return FALSE; - } - if (0 != HIWORD(DdeLparam->Value.Packed.uiHi)) - { - /* uiHi should contain a hMem from WM_DDE_EXECUTE */ - HGLOBAL h = DdeGetPair((HGLOBAL)(ULONG_PTR)DdeLparam->Value.Packed.uiHi); + HGLOBAL h = DdeGetPair((HGLOBAL)(ULONG_PTR)DdeLparam->uiHi); if (NULL != h) { - GlobalFree((HGLOBAL)(ULONG_PTR)DdeLparam->Value.Packed.uiHi); - DdeLparam->Value.Packed.uiHi = (UINT_PTR) h; + GlobalFree((HGLOBAL)(ULONG_PTR)DdeLparam->uiHi); + DdeLparam->uiHi = (UINT_PTR) h; } } FreeDDElParam(UMMsg->message, UMMsg->lParam); - } - else - { - DdeLparam->Packed = FALSE; - DdeLparam->Value.Unpacked = UMMsg->lParam; - } KMMsg->lParam = (LPARAM) DdeLparam; } break; @@ -376,17 +364,8 @@ MsgiKMToUMMessage(PMSG KMMsg, PMSG UMMsg) case WM_DDE_ACK: { PKMDDELPARAM DdeLparam = (PKMDDELPARAM) KMMsg->lParam; - if (DdeLparam->Packed) - { - UMMsg->lParam = PackDDElParam(KMMsg->message, - DdeLparam->Value.Packed.uiLo, - DdeLparam->Value.Packed.uiHi); + UMMsg->lParam = PackDDElParam(KMMsg->message, DdeLparam->uiLo, DdeLparam->uiHi); } - else - { - UMMsg->lParam = DdeLparam->Value.Unpacked; - } - } break; case WM_DDE_EXECUTE: diff --git a/reactos/include/reactos/win32k/ntuser.h b/reactos/include/reactos/win32k/ntuser.h index 5725aa27890..e2535ad2a42 100644 --- a/reactos/include/reactos/win32k/ntuser.h +++ b/reactos/include/reactos/win32k/ntuser.h @@ -488,7 +488,7 @@ typedef struct _SBINFOEX #define WNDS_HASCREATESTRUCTNAME 0X00020000 #define WNDS_SERVERSIDEWINDOWPROC 0x00040000 // Call proc inside win32k. #define WNDS_ANSIWINDOWPROC 0x00080000 -#define WNDS_BEGINGACTIVATED 0x00100000 +#define WNDS_BEINGACTIVATED 0x00100000 #define WNDS_HASPALETTE 0x00200000 #define WNDS_PAINTNOTPROCESSED 0x00400000 #define WNDS_SYNCPAINTPENDING 0x00800000 @@ -2692,15 +2692,15 @@ NtUserSetCursorContents( HANDLE Handle, PICONINFO IconInfo); +#if 0 // Correct type. BOOL NTAPI NtUserSetCursorIconData( - HANDLE Handle, - PBOOL fIcon, - POINT *Hotspot, - HMODULE hModule, - HRSRC hRsrc, - HRSRC hGroupRsrc); + HCURSOR hCursor, + PUNICODE_STRING ModuleName, + PUNICODE_STRING ResourceName, + PCURSORDATA pCursorData); +#endif DWORD NTAPI @@ -3178,16 +3178,8 @@ typedef struct tagKMDDEEXECUTEDATA typedef struct tagKMDDELPARAM { - BOOL Packed; - union - { - struct - { UINT_PTR uiLo; UINT_PTR uiHi; - } Packed; - LPARAM Unpacked; - } Value; } KMDDELPARAM, *PKMDDELPARAM; @@ -3329,6 +3321,16 @@ NtUserMonitorFromWindow( IN HWND hWnd, IN DWORD dwFlags); +BOOL +NTAPI +NtUserSetCursorIconData( + HANDLE Handle, + PBOOL fIcon, + POINT *Hotspot, + HMODULE hModule, + HRSRC hRsrc, + HRSRC hGroupRsrc); + typedef struct _SETSCROLLBARINFO { int nTrackPos;