Andrew de Quincey <[EMAIL PROTECTED]> writes: > I wrote a program in windows which had owner drawn menu items. Whenever I > received the WM_DRAWITEM message: > > 1) I called GetCapture(), and compared it with the hwnd of main window > containing the menu. It pops up a message box if they are different. > 2) I then called SetCapture() with the HWND of the menu item itself. > > This approximately simulates what IDA is doing. > > The message box never popped up. This shows that even though the capture was > changed in one WM_DRAWITEM, windows had reset the capture to the window > containing the menu by the time of the next one. I also checked the messages > _were_ being sent using Spy++ (in case of a programming error).
That's a good start, but it's not enough to know what Windows is really doing. You should also check the capture window right after you call SetCapture; and you should use GetGUIThreadInfo and print out all the details, especially the GUI_INMENUMODE flag. My suspicion is that the capture is not allowed to change at all in menu mode. -- Alexandre Julliard [EMAIL PROTECTED]
