views:

62

answers:

2

I just realised there is a shell: URI, but every search engine seems to think shell: and shell are the same thing.

The only thing I've found out is that you can type shell:startup right in explorer (XP & 7 tested) for obvious effects.
This is good already because there is no %startup%, but I want to know what else is this capable of.

Is there any MS reference on this?
EDIT (even if it's not on MSDN)

+1  A: 

There doesn't seem to be a MSDN reference: there is this, though: http://www.winhelponline.com/blog/shell-commands-to-access-the-special-folders/

Edit: The KNOWNFOLDERID page on MSDN has some details on the folders, but not on the shell: mechanism for opening them.

Stuart Dunkeld
Thanks! that list really helps. But there must be an official reference, it has its uses and they even updated it in 7, and I guess MS put it into Windows for some reason. I'll update the question to accept any official reference from MS.
Camilo Martin
I know there are the "known folders" (and that trick of turning a normal folder into something like control panel with a GUID) but the question is about that shell: URIs specifically. (I wonder if any MS product actually uses them).
Camilo Martin
Windows Shell: http://msdn.microsoft.com/en-us/library/bb773177%28v=VS.85%29.aspx
Stuart Dunkeld
I know it can be used in explorer. But it's not actually vital to anything (I guess you can get those folders right from the registry without using shell: URIs), except maybe for telling novice users where to go to fix something (phone support maybe?).
Camilo Martin
+2  A: 

Stuart seems to have found a fairly thorough list of the folders; I'll speak to the mechanism behind it. The availability of this feature comes, at least in part, from the Url Moniker feature of Windows (I remember it as a feature of IE, but since they're integrated and all...): see http://msdn.microsoft.com/en-us/library/ms775149.aspx

You can register your own URL Monikers by implementing a COM interface for a moniker provider, and you can also have your app act as a client. http://msdn.microsoft.com/en-us/library/aa741006.aspx

You'll notice that at least some versions of the MSDN client use this feature, and some other old-school browser features like about:blank (which you can navigate to from the shell) depend on that mechanism as well. If I remember correctly, IE depends on wininet.dll's URL Moniker provider implementations to navigate to, for example, http and https sites. (gopher and a few other protocols were also implemented there). It's possible IE uses something more direct, though, as my memories of that era are rather hazy and I was not closely involved.

JasonTrue
All of this is very interesting. Never heard about Monikers before, now I know what is behind the scenes :)
Camilo Martin