Status of InstallShield-Setup Engine

Mike Hearn mike at theoretic.com
Fri Dec 5 04:58:01 CST 2003


On Thu, 2003-12-04 at 20:14, Robert Shearman wrote:
> I belive that it is our lack of proper ThreadingModel support in COM. We
> currently ignore the registry parameter
> HKCU\CLSID\{GUID}\InprocServer32\ThreadingModel. I believe we do that right
> thing in the case of that value being Apartment and the application calling
> CoInitializeEx(NULL,COINIT_APARTMENTTHREADED). However, we don't do the
> right thing in any of the other combination of flags. 

This mostly affects visuals I think - the last "known good" point of
InstallShield on Wine was that it did work, and installed without
crashing, however it looked ugly because repainting didn't work well
(due to the lack of proper interthread marshalling). There have been
regressions since then though, Marcus fixed one bad one lately (in-place
coercion of arguments to IDispatch::Invoke).

> I belive the right course of action is to use stubless proxies to
> marshal the interface across boundaries in certain cases.

Oves work on interthread marshalling has been X11 licensed and I
produced a patch that merged it with WineHQ (and fixed a minor bugs and
such). I think Mike McCormack has a copy I sent him, but I never
submitted it. I need to do that sometime really.

> These cases are listed in the books "Inside
> OLE" and "Inside DCOM" by Microsoft Press.

"Essential COM" by Don Box is another good book, but a lot of the
knowledge required is available on MSDN and MSJ articles, it's just
scattered all over the net (the DCOM spec is a good reference too). 








More information about the wine-devel mailing list