http://bugs.winehq.org/show_bug.cgi?id=2869
marcus(a)jet.franken.de changed:
What |Removed |Added
----------------------------------------------------------------------------
Summary|Changing "oleaut32" to |Unimplemtend
|"native" closer |oleaut32.VarMonthNameA
|...fixme:time:GetCalendarInf|
|oA |
--
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
http://bugs.winehq.org/show_bug.cgi?id=3010
marcus(a)jet.franken.de changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |RESOLVED
Resolution| |FIXED
------- Additional Comments From marcus(a)jet.franken.de 2005-29-05 02:36 -------
the problem is that the alsa headers use "interface" in alsa/conf.h
int snd_names_list(const char *interface, snd_devname_t **list);
i submitted a patch to wine to fix this, and will also tell the alsa guys.
--
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
http://bugs.winehq.org/show_bug.cgi?id=3010
Summary: wine-20050524 fails to compile (syntax error before
"struct")
Product: Wine
Version: CVS
Platform: PC
URL: http://bugs.gentoo.org/show_bug.cgi?id=94272
OS/Version: Linux
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: wine-multimedia
AssignedTo: wine-bugs(a)winehq.org
ReportedBy: vapier(a)gentoo.org
this is a bug forward from the Gentoo bugzilla
i686-pc-linux-gnu-gcc -c -I. -I. -I../../../include -I../../../include
-D__WINESRC__ -D_REENTRANT -fPIC -Wall -pipe -mpreferred-stack-boundary=2
-fno-strict-aliasing -gstabs+ -Wpointer-arith -O2 -march=pentium4 -o audio.o
audio.c
In file included from /usr/include/alsa/asoundlib.h:48,
from alsa.h:23,
from audio.c:63:
/usr/include/alsa/conf.h:189: error: syntax error before "struct"
make[2]: *** [audio.o] Error 1
Ed Catmur tracked this back to the wine header files conflicting with the alsa
header files ... include/objbase.h defines 'interface' to 'struct' and newer
alsa header files have a prototype which utilizes 'interface' as a parameter:
int snd_names_list(const char *interface, snd_devname_t **list);
so if the alsa header files are included after objbase.h, the prototype becomes:
int snd_names_list(const char *struct, snd_devname_t **list);
and everything goes boom
Ed Catmur suggested this simple fix (just include the alsa files earlier):
http://bugs.gentoo.org/attachment.cgi?id=60010
--
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
http://bugs.winehq.org/show_bug.cgi?id=2695
tony_lambregts(a)telusplanet.net changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|RESOLVED |CLOSED
------- Additional Comments From tony_lambregts(a)telusplanet.net 2005-28-05 21:27 -------
Closing
--
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
http://bugs.winehq.org/show_bug.cgi?id=2981
------- Additional Comments From allefant(a)gmail.com 2005-28-05 08:20 -------
Quoting MSDN about SetWindowsHookEx:
http://msdn.microsoft.com/library/en-us/winui/winui/windowsuserinterface/wi…
[quote]
dwThreadId
[in] Specifies the identifier of the thread with which the hook procedure is to
be associated. If this parameter is zero, the hook procedure is associated with
all existing threads running in the same desktop as the calling thread.
[/quote]
The case of zero is exactly what I believe is not handled, but ironically, is
what the implementor of the dinput keyboard in Wine is relying on. As I said,
fixing that would also work, but it needs a more knowledgeable person of the
wine internals to help with it (either getting a list of all threads in the
current process ("desktop" in MSDN), and always using all hooks where tid = 0,
or modifying the hooks stuff so additionally to per-thread hooks, there are
global hooks). For both, I'd need some advice, and generally a Wine developer
would be more apt to create a patch.)
About the user32 include, all I use out of it is this:
static inline struct user_thread_info *get_user_thread_info(void)
{
return (struct user_thread_info *)NtCurrentTeb()->Win32ClientInfo;
}
So whoever applies it can simply move that into keyboard.c. Or should I do it
and re-submit the patch?
--
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
http://bugs.winehq.org/show_bug.cgi?id=2981
------- Additional Comments From reif(a)earthlink.net 2005-28-05 08:10 -------
Lionel, would you consider adding any useful tests you develop to the dinput
regression tests?
--
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
http://bugs.winehq.org/show_bug.cgi?id=2981
------- Additional Comments From lionel.ulmer(a)free.fr 2005-28-05 06:40 -------
I checked your patch and somehow I doubt that it will be accepted (as it uses
some internal USER32 parameters) and thus breaks the sacro-sanct DLL separation :-)
I will do some tests in Windows (and Wine) to try to see how native DINPUT.DLL
works to see if we can try to use the same interface in Wine.
As for the hook calling, you are sure about the fact that it should not be
limited to the thread for which it was called ?
--
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
http://bugs.winehq.org/show_bug.cgi?id=2981
------- Additional Comments From allefant(a)gmail.com 2005-28-05 06:04 -------
Ok, that would have been too simple. Attaching a new patch, which really works.
Of course, this is merely a work-around rather than a fix. But, it can safely be
applied as far as I can see, and will fix all problems related to this.
Now, how to explain what is going on. Basically, the bug is in HOOK_CallHooks.
It does not call global hooks, but only hooks for the current thread. This
sounds like a quite serious flaw, so I probably am missing something.
But well, the bug seems to suggest I'm right. The workaround in the patch works,
because when the hook is installed the second time, it is in the window thread,
and that's the thread which calls HOOK_CallHooks. So from now on, the hook is
seen, since now it's installed in the right thread. That the first hook still is
installed in the other thread doesn't matter, since it never will be called anyway.
Now, a proper fix of course would be to fix HOOK_CallHooks. Basically, instead
of just checking the hooks of the thread which calls HOOK_CallHooks, it should
additionally check global (and only global) hooks of all other threads in the
current process.
So, if you give me a way to iterate through all the threads of the current
process, I can write a patch.
Thinking a bit further, I believe that using the KEYBOARD_LL hook is the wrong
way to implement the dinput keyboard (unless real Windows does it that way as
well). So a completely alternate solution would be to not install any
KEYBOARD_LL hook for the keyboard dinput device, but instead directly call the
KeyboardCallback function inside dlls/dinput/keyboard.c from
dlls/x11drv/keyboard.c. I can make a patch for that instead as well, if you give
me a way to loop over all currently acquired dinput devices.
I think best is to just apply the attached patch for now, add fixing of
HOOK_CallHooks to some sort of TODO list (and then removed the workaround again
once that's done), and also discuss somewhere if dinput shouldn't be implemented
without a message hook really.
--
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
http://bugs.winehq.org/show_bug.cgi?id=2981
allefant(a)gmail.com changed:
What |Removed |Added
----------------------------------------------------------------------------
Attachment #902 is|0 |1
obsolete| |
--
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.