Mike Hearn mike@theoretic.com writes:
The other reason it might have bounced is if we're not allowed to extend WND, though as it's purely internal and not accessible from the APIs that should be OK? I'm not sure how to do this otherwise without exporting the currently locked window variable from USER to X11DRV which probably breaks dll separation. Either that, or adding a new driver procedure.
Extending the WND structure is OK (though it doesn't seem necessary in that case), but accessing it from x11drv is a violation of dll separation. We still do that in a number of places but they will have to be fixed, so we probably shouldn't add new ones.
On Tue, 13 Jan 2004 13:39:48 -0800, Alexandre Julliard wrote:
Extending the WND structure is OK (though it doesn't seem necessary in that case), but accessing it from x11drv is a violation of dll separation. We still do that in a number of places but they will have to be fixed, so we probably shouldn't add new ones.
Alright. It'd be nice if somebody who knew all the rules of DLL separation would write them up somewhere. At the moment I basically have to guess. Apologies if it's already written up or the rules are obvious to all except me :)
If using WND is not OK, what is the best way to get information from USER to x11drv then? A wine-specific export that we GetProcAddress() for? Using SetProp()?
Mike Hearn mike@theoretic.com writes:
Alright. It'd be nice if somebody who knew all the rules of DLL separation would write them up somewhere. At the moment I basically have to guess. Apologies if it's already written up or the rules are obvious to all except me :)
Basically you can only use stuff that is officially exported by the Windows dlls and headers. The WND structure is not exported, since it's not declared in any standard header file, and you need to call Wine internal functions to get access to it.
If using WND is not OK, what is the best way to get information from USER to x11drv then? A wine-specific export that we GetProcAddress() for? Using SetProp()?
That depends on the problem. In this case it really depends on the inter-process behavior of LockWindowUpdate; probably at least part of it needs to be handled in the server, but the doc is not really clear on that point.