combo - implement GetComboBoxInfo
Thomas Weidenmueller
wine-patches at reactsoft.com
Tue Mar 15 14:37:38 CST 2005
Alexandre Julliard wrote:
> Much worse, the class name is not a valid way of checking the Windows
> type. You really need to send a message.
>
>
The results of the research I just did:
1. GetComboBoxInfo works with all handles, even with handles not
belonging to the calling process
2. It does NOT send a message, not even in the case it doesn't belong to
the calling process
3. It sets the last error code to ERROR_WINDOW_NOT_COMBOBOX and returns
FALSE if the window handle isn't a combo box
4. It sets the last error code to ERROR_INVALID_MENU_HANDLE and returns
FALSE if the window handle is invalid
5. If the cbSize field of the COMBOBOXINFO structure doesn't match, it
sets the last error code to ERROR_INVALID_PARAMETER and returns FALSE
Because of 1. and 2. it's only possible to implement it in win32k unless
one wants to determine the window owner,
open a process handle and read the memory, a win32k implementation would
be cleaner.
Sure, win32k doesn't exist in wine so it's a task for wineserver.
Just for the record: I wrote a very basic test application where I can
enter a window handle, in combination with MS Spy++
it just takes < 5 minutes to find out. A simple SetLastError(0) before
the function call and a GetLastError() after it revealed
the error codes. print everything to the screen and modify the cbSize
parameter and you got all the information. If you insist
I can attach the test application as a proof, but you have to enter
window handles yourself and run MS Spy++.
This information was gathered in less than 5 minutes by just testing, no
reverse engineering or whatsoever was involved. However,
since it might set the last error code to ERROR_WINDOW_NOT_COMBOBOX I
expect it to check the window class name.
Best Regards,
Thomas
More information about the wine-devel
mailing list