1. About DUSER32 "emulates" USER32. This emulation is limited, but should work for simple window objects as in DirectDraw, OpenGL or SDL. 2. Supported Functions Please note that if a function isn't marked as dummy it still may not work as expected because it is only partly implemented. Name Dummy? ---------------------------------------------- AdjustWindowRect AdjustWindowRectEx Y BeginPaint CallWindowProcA ChangeClipboardChain Y ChangeDisplaySettingsA CharLowerA CharLowerW CharLowerBuffA CharLowerBuffW CharNextA CharNextExA CharNextW CharPrevA CharPrevExA CharPrevW CharToOemA CharToOemBuffA CharToOemBuffW CharToOemW CharUpperA CharUpperW CharUpperBuffA CharUpperBuffW ClientToScreen ClipCursor CloseClipboard CopyIcon Y CopyRect CountClipboardFormats CreateCursor CreateDialogParamA Y CreateIcon Y CreateIconFromResource Y CreateIconFromResourceEx Y CreateIconIndirect Y CreateWindowExA DefWindowProcA DestroyCursor DestroyIcon Y DestroyWindow DialogBoxIndirectParamA Y DialogBoxParamA Y DispatchMessageA DrawFocusRect Y DrawIconExA Y DrawTextA Y EmptyClipboard EnableWindow Y EndDialog Y EndPaint EnumClipboardFormats EnumDisplaySettingsA EnumThreadWindows Y EnumWindows Y ExitWindowsEx Y FillRect FindWindowA FindWindowExA GetActiveWindow GetAsyncKeyState GetClassInfoA GetClientRect GetClipboardData GetClipboardFormatNameA GetClipboardOwner GetCursor GetCursorPos GetDC GetDesktopWindow Y GetDlgItem Y GetFocus GetForegroundWindow GetIconInfo Y GetKeyboardState GetKeyboardLayout GetKeyboardLayoutNameA Y GetKeyboardType GetKeyNameTextA Y GetKeyState GetLastActivePopup Y GetMenu Y GetMessageA GetMessageTime GetParent GetQueueStatus Y GetSysColor Y GetSysColorBrush GetSystemMenu GetSystemMetrics GetTopWindow Y GetWindow Y GetWindowDC GetWindowLongA GetWindowPlacement GetWindowRect GetWindowTextA GetWindowTextLengthA GetWindowThreadProcessId InflateRect InSendMessage Y IntersectRect InvalidateRect IsCharAlphaA IsCharAlphaNumericA IsClipboardFormatAvailable IsIconic IsRectEmpty IsWindow IsZoomed KillTimer LoadBitmapA LoadCursorA LoadIconA LoadImageA LoadKeyboardLayoutA LoadStringA LoadStringW MapVirtualKeyA MapVirtualKeyExA MapWindowPoints MessageBeep MessageBoxA MessageBoxExA MessageBoxW MoveWindow MsgWaitForMultipleObjects OemToCharA OemToCharBuffA OemToCharBuffW OemToCharW OffsetRect OpenClipboard PeekMessageA PostMessageA PostQuitMessage PostThreadMessageA PtInRect RegisterClassA RegisterClassExA RegisterClipboardFormatA RegisterHotKey Y RegisterWindowMessageA Y ReleaseDC ScreenToClient SendMessageA SendMessageW SetActiveWindow SetClassLongA SetClipboardData SetClipboardViewer Y SetCursorPos SetDlgItemTextA Y SetFocus SetForegroundWindow Y SetKeyboardState Y SetParent SetRect SetRectEmpty SetTimer SetWindowLongA SetWindowPlacement SetWindowPos SetWindowTextA SetWindowTextW SetSysColors Y ShowCursor ShowWindow SystemParametersInfoA Y ToAscii ToAsciiEx ToUnicode TranslateMessage Y UnionRect UnregisterClassA UnregisterHotKey Y UpdateWindow ValidateRect VkKeyScanA Y WaitForInputIdle Y WindowFromDC WindowFromPoint WinHelpA Y wsprintfA wvsprintfA 3. History 2006.09.14: Version 2.9.9 þ bugfix: GetKeyboardState() set bit 6, not bit 7 of the key state þ bugfix: in WM_KEYDOWN messages bit 29 of LPARAM wasn't set if ALT was pressed. þ SetClipboardViewer, ChangeClipboardChain added (dummies) þ GetClassInfoA implemented þ IsRectEmpty added 2006.08.15: Version 2.9.8 þ RegisterHotkey partially implemented þ GetDlgItemTextA, GetDlgItemInt, SetDlgItemInt added 2006.07.15: Version 2.9.7 þ wsprintfA supports %S format specifier þ MapVirtualKeyExA, LoadKeyboardLayoutA, GetKeyboardLayoutNameA added þ ValidateRgn + InvalidateRgn added þ GetMessagePos added þ SetParent, SetMenu, SetWindowTextW added þ EnumClipboardFormats, CountClipboardFormats, GetClipboardFormatNameA, RegisterClipboardFormatA added þ CopyIcon, DrawIconEx, GetIconInfo added (dummies) þ RedrawWindow added 2006.06.14: Version 2.9.6 þ bugfix: GetKeyboardLayout() caused wrong stack alignment þ ValidateRect added þ DUSER32 now uses Int 31h, ax=09xxh for serialization þ UpdateWindow removes WM_PAINT messages from message queue þ ToAsciiEx, ToUnicode added þ WaitForInputIdle added (dummy) þ GetKeyNameTextA added (dummy) þ CreateIconIndirect added (dummy) þ MessageBoxW added þ IsZoomed() now checks value of style bit WS_MAXIMIZE. Previously it always returned TRUE. 2006.05.15: Version 2.9.5 þ GetMessageTime added þ GetClipboardOwner added þ GetLastActivePopup added (dummy) þ CharNextW, CharPrevW added þ SendMessageW added 2006.04.21: Version 2.9.4 þ LoadAcceleratorsA added þ TranslateAcceleratorA added (dummy) 2006.03.26: Version 2.9.3 þ Get/SetClassLong: some more values defined (GCL_HBRBACKGROUND, GCL_HCURSOR) 2006.03.08: Version 2.9.2 þ MessageBox now handles multiple lines þ GetKeyboardLayout added þ FindWindowA, FindWindowExA added þ SM_CMOUSEBUTTONS supported þ DrawTextA added (dummy) þ class style CS_SAVEBITS supported 2006.02.06: Version 2.9.1 þ bugfix: GetWindowLong/SetWindowLong didn't work with offset 0. þ PostThreadMessageA no longer dummy 2006.01.22: Version 2.9 þ bugfix:calling ChangeDisplaySettings without a previous mode change failed. þ WM_SYSKEYDOWN/WM_SYSKEYUP/WM_SYSCHAR supported þ MapVirtualKeyA now works with type=2 as well þ keybd_event implemented þ bugfix: GetWindowRect now accepts HWND_DESKTOP (=0) as hwnd þ LoadIconA now looks in icon group resource þ SetPropA, GetPropA, RemovePropA added (dummies) þ TranslateMessage, IsDialogMessageA implemented 2006.01.02: Version 2.8 þ DialogBoxIndirectParamA, GetDlgCtrlID added (dummies) þ WaitMessage added þ GetClassNameA, GetWindowDC added þ CloseWindow added þ bugfix: WM_xBUTTONy had wrong WPARAM parameter þ IsChild, GetClassLongA, IsWindowEnabled implemented 2005.12.20: Version 2.7 þ EnableWindow implemented (dummy) þ catch DestroyWindow(0) error þ GetWindowPlacement, SetWindowPlacement added þ DialogBoxParamA, EndDialog, GetDlgItem, SetDlgItemTextA, CreateDialogParamA added (dummies) þ VkKeyScanA added (dummy) 2005.12.07: Version 2.6 þ bugfix: wrong handling of WM_WINDOWPOSCHANGED in DefWindowProc þ GetSysColor, SetSysColors added (dummies) þ RegisterHotkey, UnregisterHotkey added (dummies) þ RegisterWindowMessageA added þ SystemParametersInfoA added (dummy) þ UpdateWindow, MoveWindow implemented þ MessageBoxA now works in graphics mode (limited) þ GetSysColorBrush added þ WNDCLASS.hbrBackground now supports system color indices þ LoadIconA, CreateIconFromResource added þ bugfix: SetWindowLong didn't return previous value þ GetWindowThreadProcessId no longer dummy þ MessageBox now waits for a key press þ WindowFromDC added þ GetClassInfoA added (dummy) þ GetQueueStatus added (dummy) þ InSendMessage added (dummy) 2005.11.24: Version 2.5 þ WM_SETCURSOR handled in DefWindowProc þ IsWindowVisible added 2005.11.18: Version 2.4 þ CopyRect, InflateRect, IntersectRect, OffsetRect, SetRect, þ SetRectEmpty, UnionRect added 2005.11.04: Version 2.3 þ DefWindowProc now handles WM_SYSCOMMAND/SC_CLOSE. þ bugfix: BeginPaint didn't send WM_ERASEBKGND if windows background has to be erased. þ bugfix: returncode of ShowWindow was always 1 þ bugfix: SetActiveWindow wasn't exported þ bugfix: ChangeDisplaySettingsA didn't return an error code if DEVMODE.dmFields wasn't initialized. 2005.10.24: Version 2.2 þ SetTimer, KillTimer no longer dummies þ MsgWaitForMultipleObjects added þ MapVirtualKeyA added þ SetTimer, KillTimer added þ PtInRect, LoadImageA added þ ChangeDisplaySettingsA, EnumDisplaySettingsA added þ ClientToScreen, ScreenToClient, AdjustWindowRect(Ex) added þ GetWindowRect, GetClientRect, MapWindowPoints added þ GetDesktopWindow, GetParent, GetMenu, WindowFromPoint added þ SetClassLongA added þ SetWindowTextA, IsZoomed, CallWindowProcA added þ GetCapture, ReleaseCapture, SetCapture added þ CreateIconFromResourceEx, DestroyIcon added þ GetCurser, GetCursorPos, ClipCursor, SetCursorPos added 2005.09.29: Version 2.1 þ FillRect, InvalidateRect added þ BeginPaint, EndPaint, GetDC, ReleaseDC added 2005.09.18: Version 2.0 þ LoadBitmapA added þ SetWindowLongA, UnregisterClassA, CharLowerBuffW added 2005.07.20: Version 1.9 þ GetWindowTextLengthA added (dummy) 2005.07.06: Version 1.8 þ IsClipboardFormatAvailable added 2005.06.14: Version 1.7 þ GetMessage/PeekMessage now receiving mouse messages þ LoadCursor/DestroyCursor/SetCursor added þ ShowCursor now shows/hides mouse cursor (SetConsoleMode) þ RegisterClassA + RegisterClassExA now maintain a linked list of registered classes. 2005.06.07: Version 1.6 þ MessageBoxA + MessageBoxExA now write to console þ GetFocus,SetFocus,RegisterClassExA added 2005.05.20: Version 1.5 þ CharPrevA, CharPrevExA added 2004.12.03: Version 1.4 þ CharToOemBuffW, CharToOemW þ SetWindowPos, EnumWindows þ GetWindowTextA, GetWindow, GetWindowThreadProcessId added þ GetForegroundWindow, SetForegroundWindow added þ GetWindowLongA, GetTopWindow added þ GetKeyboardState + SetKeyboardState added (dummy) þ MessageBoxExA, ToAscii, IsWindow added (dummy) 2004.11.25: Version 1.3 þ CreateIcon + CreateCursor added (dummies) 2004.08.31: Version 1.2 þ LoadStringW no longer dummy 2004.08.29: Version 1.1 þ ExitWindowsEx added (dummy) þ CharLowerBuffA added þ GetKeyboardType added þ IsCharAlphaNumericA added þ CharNextExA added þ MessageBeep added 2004.02.01: Version 1.0 4. Copyright DUSER32 is part of HX DOS extender. This extender is freeware. View HXRT.TXT for licence details. Japheth