[ros-dev] [ros-diffs] [weiden] 29670: Tweak the ScrollDC implementation

James Tabor jimtabor.rosdev at gmail.com
Thu Nov 15 00:43:50 CET 2007


Hi!
Oh, another reason to move them into Win32k; You can not write to the
Window Object in user mode.

Window object are read only and ATM we do not support it. We have code
trying to do it but it does not work yet.

Thanks,
James

On Oct 27, 2007 1:21 AM, James Tabor
<jimtabor at adsl-64-217-116-74.dsl.hstntx.swbell.net> wrote:
> Hi!
> BTW, I found my old notes again. 8^)
>
> After some research over the years, I found out there are up to 8 or more
> WndProc atom classes registered in win32k and not user32.
>
> Integer Atoms:
> #define POPUPMENU_CLASS_ATOM MAKEINTATOM(32768)  /* PopupMenu */ Reg in W32k
> #define DESKTOP_CLASS_ATOM   MAKEINTATOM(32769)  /* Desktop */   Reg in W32k
> #define DIALOG_CLASS_ATOM    MAKEINTATOM(32770)  /* Dialog */    Reg in User32
> #define WINSWITCH_CLASS_ATOM MAKEINTATOM(32771)  /* WinSwitch */ Reg in W32k
> #define ICONTITLE_CLASS_ATOM MAKEINTATOM(32772)  /* IconTitle */ Reg in W32k
>
> #define TOOLTIP_CLASS_ATOM MAKEINTATOM(32774) Reg in W32k
>
> String Atoms:
> "ScrollBar", "Message", and something called "DDEMLEvent" for WM_DDEMLEVENT.
>
> The one that we are looking into fixing "ScrollBar", The controls are in
> win32k and not in User32.
>
> I noticed WndProc messages originate from win32k too. The window thread is
> locked and then the message is sent out.
>
> Example: Function call User32 -> Win32k -> send message.
>
> Maybe we are doing double the work when we scroll on a bar. The rapid
> blinking of the bar too. We maybe sending more than one message out.
>
> Example: Win32k send message, then in the loop, user32 sends the same message
> back into Win32k we go and loop again, wow!
>
> We have scroll controls in user32 and we are controlling the scrolling from
> win32k. It just look so messy!
>
> So~
>
> Once Gdi/Win32k is at a state of normality and acting like it should. We need
> to setup a game plan for User/Win32k.
>
> 1. Map View the Wnd handle table and Wnd objects to user process space
>    (readonly), like gdi.
>     a. This will allow user space to read the table and read the WINDOW_OBJECT.
> 2. Migrate the above atom classes and controls to win32k.
> 3. Add more. .. ....
> 4. Fix bugs.
> 5. Get paid!
>
> Thanks,
> James
>
> http://wiki.winprog.org/wiki/Windows_messages
> http://msdn2.microsoft.com/en-us/library/ms997511.aspx
> _______________________________________________
> Ros-dev mailing list
> Ros-dev at reactos.org
> http://www.reactos.org/mailman/listinfo/ros-dev
>


More information about the Ros-dev mailing list