Hi Gaurav,
On 3/31/12 9:22 PM, Gaurav Jain wrote:
shell32: Added stubs for IMarshal interface (resend)
Resending due to previous code freeze.
ShellLink_QueryInterface() did not have a lookup for the IMarshal Interface. This resulted in an error message popping up in the Quest for Glory II (remake) installer. Providing IMarshal interface stubs avoids this error behaviour.
IMarshal is an interface that has serious impact on how the object is handled in RPC calls and the fact that you see better behavior in an app may be very well a side effect of Wine behaving badly, but in a different (more friendly for given application) way. The first question is does the object really implements custom IMarshal implementation on Windows?
Cheers, Jacek
Hi Jacek,
First I'd like to put a disclaimer, that I'm extremely new to this, so please forgive me if I don't understand most of the behaviours and dependancies. That being said, I will try my very best to dig as much as I can to find out more.
On 2012-04-01, at 7:08 AM, Jacek Caban wrote:
the fact that you see better behavior in an app may be very well a side effect of Wine behaving badly but in a different (more friendly for given application) way
Yes I believe the poor behaviour in wine is that it does not properly resolve the lookup of the IMarshal interface, which the application does not like. Thus adding the stubs allows the lookup to pass and stubs to return "not implemented" error values.
The first question is does the object really implements custom IMarshal implementation on Windows?
How should I go about understanding this more? Would you like to know which IMarshal stubs are being called out to?
I should probably explain more the poor application behaviour that I was seeing. Towards the end of the installation, I got the error: "Unable to add game tasks: IPersistFile::Save failed". With the addition of the IMarshal stubs, this error goes away. I'm not entirely sure what path the application takes as a result of calling the unimplemented IMarshal functions.
Thanks,
Gaurav