Hi Jacek,
I don't touch the engine code! I use Gecko's embedding API. The HTML rendering will never be compatible at all, but that's not important in most cases. What we need is a compatible API, and that can be done using Gecko as HTML engine, everything else we have to implement ourself (eg. my current implementation uses Gecko to download document - that also needs to be changed).
Perhaps the way forward is to get mshtml working with Gecko's embedding API, as you're doing, then switch shdocvw to use your implementation of mshtml. That will give us full control over all the relevant OLE interfaces, which are probably the things that will give us most trouble.
Soon you'll see - I promise:) If you mean how much of code do we need to port to Wine tree, the answer is that no code excepting creating our headers. Everything else is in a shared library that can be loaded at runtime. My current implementation imports only 6 functions (and 3 of theme are to manipulate strings!). Everything else can be done using interfaces.
Cool! Looking forward to that. Once you get it going, post what you have, and somebody can start working on shdocvw.
Mike