> In the case of InstallShield, it actually comes with typelibs for all > the interfaces it needs to marshal (fixme: is this right?), but they > actually use a mix of MIDL and typelib marshalling. In order to cover up > for the fact that we don't really use RPC they're all force to go via > the typelib marshaller - that's what the 1 || hack is for and what the > "Registering non-automation type library!" warning is about (I think).
Yes, correct. I don't remember the interface, but I think its IDispatch or something. Thats why we need stdole32.tlb, it has the 2 or 3 core interface typelibs we need for marshalling all the InstallShield interfaces. > Then there's a bunch of stuff I still don't understand, like ICallFrame, > interface pointer swizzling, exactly where and how all this stuff is > actually implemented and so on. Pretty much sums up what I would say :) Thanks for writing this, Mike! Ciao, Marcus