[prev in list] [next in list] [prev in thread] [next in thread] 

List:       wine-devel
Subject:    Re: [PATCH 10/11] server: add calls to get/set menu item info
From:       "H. Verbeet" <hverbeet () gmail ! com>
Date:       2006-06-30 21:18:59
Message-ID: d658b69e0606301418p31c1f58ct4a4ea3609a0ccb4d () mail ! gmail ! com
[Download RAW message or body]

On 30/06/06, Thomas Kho <tkho@ucla.edu> wrote:
> I'm not 100% clear what the problem is. My interpretation of your
> first email was that there was a necessary distinction in type between
> user/gdi handles as stored in the server, but now my understanding is
> that you're concerned gdi objects in MENUITEM/MENUITEMINFO should not
> be mutable by external processes. Is that right?
The basic problem is that if you create a HBITMAP in one process, then
pass the handle to another process, you can't read the contents of the
bitmap in that other process.

So suppose you create a menu item in one process and set a custom
bitmap on the menu item. Should the menu then display correctly in
another process if you pass it the menu handle?

> I did some probing and was able to change the values of the four gdi
> objects (MENUINFO.hbrBack, and bitmap, (un-)check bitmaps in
> MENUITEMINFO) from an external process. Specifically, I changed the
> brush to one returned by GetStockObject(WHITE_BRUSH), changed the
> bitmap to one of the predefined handles, and set (un-)check bitmaps to
> an invalid value that was correctly returned upon a GetMenuItemInfo
> query. So, I think regardless of the scope of gdi objects, it's the
> right behavior for the menu code to blindly set and get the gdi
> handles.
Stock objects are somewhat special, since they're not created / owned
by the current process.


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic