w2k Explorer makes wine crash in RtlRaiseException

Rolf Kalbermatter rolf.kalbermatter at citeng.com
Fri Jan 31 03:41:36 CST 2003


Mike Hearn wrote:

> > Yep.  We need to implement a lot of shell hooks...
> > people want to be able to install plugins that add features
> > to Explorer.
> 
> Yuck. That's not going to be fun. I once tried to write Explorer shell
> objects to make virtual folders and such, along the way I somehow
> managed to completely trash explorer such that it'd not display the
> listview control for the directory at all. That part of Windows is
> really not documented at all well, and there are precious few examples.
> Certainly doing stuff like ZipFolders is pretty evil.

Went through that hell as well. Wrote a shell extension to display the
contents of a private file archive format and it took me quite some time
to get it right. Didn't get results as bad as yours, but it definitely
started to get strange at times. The entire shell extension interface
isn't exactly well documented, not quite well designed and in my view
an adhoc implementation, which unfortunately happened to survive its
"proof of concept". Also subtle differences between the different
Windows versions can drive you really crazy. Due to the traditional
bad documentation there are many shell extensions out there who happen
to work on certain Windows versions more by luck than by design and
getting these things in Wine all to work in the same strange ways is
going to be a nightmare.

My shell extension was a self contained extension based on the early
semi-official cabview shell extension from MSDN from Microsoft. Never
really seriously tried to use the built in ShellView object which got
only recently very limited documentation in the course of the trial
decision to document many private Win32 APIs.

> Is there a compelling reason why people need to do this? I can't see why
> you'd want to use Explorer to browse files unless it's truly
> necessary....

Well, running Explorer on Wine is IMO not a very hot topic. And most of
the actual functionality of Explorer really is in shell32 and friends and
Explorer is just the process who starts a user interface and ties all
the things together, so what we actually would need is a very thorough
implementation of the shell32 functionality anyhow.

Eventually writing a WineExplorer seems to me a little more interesting
although it really is a rather low priority thing (and making it work with
shell extensions is going to be quite some work). It is a little bit a
catch 22 situation here. Quite some APIs in shell32 and other related DLLs
are mainly used in Explorer although with the recent documentation of them
other applications are likely to start to use them too. To test and torture
those APIs Explorer would be nice. On the other hand Explorer really does
not add a lot of functionality in terms of user experience, as your Unix
X desktop has very likely a filesystem browser which is more fun to use.
Having our own WineExplorer is not likely to use all those APIs, as many
functionality in Explorer is probably never really used in an obvious way
and therefore is unlikely to be built into a WineExplorer. 

Rolf Kalbermatter




More information about the wine-devel mailing list