[Wine] Trying to fix shdocvw.dll to support IPerPropertyBrowsing GUID

roboknight roboknight at gmail.com
Mon Mar 19 00:47:13 CDT 2007


Let me first provide a little background:

These are the "FIXMEs" I'm trying to correct:

fixme:shdocvw:PersistStreamInit_Load (0x1b9970)->(0x1ae8688)
fixme:shdocvw:WebBrowser_QueryInterface
(0x1b9970)->({376bd3aa-3845-101b-84ed-08002b2ec713} 0xaa9dfc) interface
not supported
fixme:shdocvw:OleControl_OnAmbientPropertyChange (0x1b9970)->(-1)

I'm trying to get GSAK working under any wine version > 0.9.16.  This
appears to be the last version where GSAK would actually work.  Under
this version it appears that IPerPropertyBrowsing was *NOT* supported.
It also appears to still be *NOT* supported.  This would be fine.
However, under wine 0.9.16, GSAK does not generate any messages that
appear to cause the "interface not supported" message to appear as it
does in later versions of wine (Things are a little sketchy here
because I don't have my logs handy... Will post an additional message
that provides these details).  Under later versions of wine however, a
call is made with the IPerPropertyBrowsing GUID and it generates the
"interface not supported" message.  This appears to create an exception
further down the road causing GSAK to crash completely.

I would like to try to fix these "FIXMEs", however, I'm unsure where to
get more information on the structure I need to return from
WebBrowser_QueryInterface for an IPerPropertyBrowsing request as well
as what might be involved in actually implementing it.  Either I
correct this, or prevent this message from getting sent to
WebBrowser_QueryInterface.  As I said, before 0.9.17, it apparently was
never getting generated as it wasn't supported under 0.9.16 either, but
GSAK seems to work (for the most part... there are OTHER issues that
probably need fixing)...

I've tried just returning a WEBBROWSER(This) and that doesn't crash.
This seemed appropriate as the WEBBROWSER cast macro seems to point to
a structure which contains two functions associated with properties:
GetProperty and SetProperty... which I figured is where this query was
eventually going, but this was probably inappropriate and just a quick
stab at a "quick fix"...(at least it didn't crash, but GSAK never comes
up and wine never quits... so I'm assuming I created some kind of loop
or something that locked things up)...

So does anyone know what the appropriate structure is supposed to be
for this query?  Or barring actually fixing this, how to stop the
IPerPropertyBrowsing query from happening?

Thanks in advance,
Brandon.



More information about the wine-users mailing list