Where does shell.windows.com get information about file extensions, and how do I get in on that action?


If you double-click a file for which there is no registered handler, Windows will offer to visit the Web service on shell.windows.com to locate a program that can open it. But where does this information come from, and how can you add your program to the database?

Knowledge Base article Q929149, titled Windows File Association System On-Boarding Process, provides step-by-step instructions on how you can add your file extension.

If you look at the existing entries on shell.windows.com, most of them have relatively straightforward and neutral descriptions. "This document is a PowerPoint presentation." "This document is a sound file." But there is at least one company that decided to use the file association service for a bit of grandstanding. "Invented by XYZ company and perfected over 15 years, ABC file format lets you capture information from any application, on any computer, and share it with anyone around the world."

By the way, if the file association Web service offends you, you can disable it.

Comments (46)
  1. Anonymous says:

    With exquisite, slow-aged bits handcrafted from only the finest Italian bit-blocks, our prodigious pedigree provides you with a graphic file format that is second to none. When your data is written to disk, do not think of it as simply adding another file to your C:Users directory, think instead of giving birth to a perfect, resplendent piece of Heaven upon this very Earth.

  2. Anonymous says:

    I think a more appropriate blurb would be: Bulky as a brontosaurus and as slow as one stuck in a tar pit in winter, this application was forced upon unsuspecting computer and Internet users through clever marketing.  Now it’s become so entrenched that it’s used nearly everywhere, most often where it’s not needed, so suck it you worms and download or buy a copy today.

  3. Anonymous says:

    Between the choices of:

    1. Grandstanding description of a well documented file format with complete and free documentation of every aspect of the file format.

    [Even though they sue you for supporting their file format. -Raymond]

    2. To the point description of an undocumented, proprietary file format.

    I’ll choose 1 any day. I know you have no power over this, but still, I’ll let that company be a bit pompous, I think they’re entitled to it.

  4. Anonymous says:

    But would they sue you for registering a domain in your real name?  Sadly, the answer is almost certainly "yes".  Eventually you won’t be able to walk outside without getting sued.

  5. Anonymous says:

    Pierre,

    I assume you mean the file formats that aren’t documented and available in, of all formats, PDF here:

    http://www.microsoft.com/interop/docs/OfficeBinaryFormats.mspx

    Microsoft "saw the light" so to say and has published a lot of their specifications:

    http://www.microsoft.com/interop/osp/default.mspx

  6. Anonymous says:

    I think I’ve never seen that page return anything but "unknown", and it doesn’t tell you how to "on-board" it, ensuring that it stays unknown.

  7. Anonymous says:

    if you don’t like Adobe’s bloatware, try out the Foxit reader (http://www.foxitsoftware.com/) – small fast, unobtrusive and "just works".

  8. Anonymous says:

    The on-boarding form has this:

    "State or Province for contact [N/A if placed in Korea]"

    Anyone know why Korea is mentioned specifically there?

  9. Anonymous says:

    "if you don’t like…"

    Alternative viewers for the format don’t change the fact it’s based on pieces of paper and unsuitable for on-screen viewing.

    It’s fine for stuff you want to print but I wish it would be taken outside and set fire to when it comes to web-based documents which most people view on the screen. Perhaps my point of view is biased because I very rarely print documents. (What’s the point when the useful ones go out of date and the others only need to be read once and when you can’t search a print-out?)

  10. Anonymous says:

    if you don’t like Adobe’s bloatware, try out the Foxit reader

    Or, if you’re a Mac user, just double click or hit the space bar.

    On the topic of file extensions, who decides what a ‘doc’ file is ? The web service claims it’s a MS Word file but there are other applications that use .doc (lots of them).

    Sure this works for the some well-known file formats, but who needs this service for that ? And even then it fails lots of times. I prefer the *nix tool ‘file’ that actually analyzes the content of the file to determine what filetype it is. For example: what is a txt file, it’s a text file, sure, but what KIND of text file ? Is it DOS-style text, Unix-style text, UTF-8 ? Sure, notepad will try to open that Unix-style text file, but it’ll look like crap.

    Mac’s also usually ignore the extension and use filesystem metadata to determine the correct application to use (I think extensions are still used as a fallback) The best part of this is that you can determine on a per-file basis which app should open the file. E.g. if you want to open files for finished projects in a lightweight viewer, just set the viewer as the default and set the heavy-weight editor as the application on the file for your current project.

    I think both those approaches are a lot better than just using file extensions. Especially trying to execute every file that’s named .exe or .com when double clicked is a really bad idea (has been used as an attack vector for trojans in numerous occasions). Is this something that’s even seen as an issue at Microsoft or is it just ‘the way it is’ ? (I can imagine that this is something that can be done as part of the WinFS project)

  11. Anonymous says:

    @Aaargh!

    The point of the webservice is to help the user when the associated application is NOT installed. If you already have it installed it would just load up the default app for the file.

  12. Anonymous says:

    Wow, I’ve been wanting to disable that for years now, but had no idea what to look for. Thanks Raymond!

    And for anyone else out there who doesn’t want to read that rather longwinded article on msdn:

    Windows Registry Editor Version 5.00

    [HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionPoliciesSystem]

    "NoInternetOpenWith"=dword:00000001

  13. Anonymous says:

    hmm I wonder who that company is. Anyone got a PDF might confirm it? ;)

  14. Anonymous says:

    @aaargh

    Uhm, what?

    You do realize that an extension is essentially a piece of metadata? And if you analyze the file to figure out what type it is, you still need to have some sort of association to open the file. Lets say you figure out a file is a jpeg. What application opens jpegs?

    As far as who decides what a ".doc" file is? The application decides what extension to give to a file, and the user decides what the default program for opening that extension.

    I’m not exactly sure what Microsoft does when there is a collision, but as you can see from the .doc example multiple applications can be listed for a file type.  

  15. Anonymous says:

    Only two companies registered a claim to be able to handle mp3? Wow.

    I’d have expected every half baked music player under the sun would be trying to get in on that web service action. Marketing departments everywhere must be slipping.

  16. Anonymous says:

    I, too, always wanted to disable it for ages as I thought it was completely broken. It never seemed to work for me on any XP box. Surprisingly, the last time i tried to use it on Vista it actually worked.

    For average users it is probably quite useful

  17. Anonymous says:

    It doesn’t offend me, it just wastes my time. I have never yet had it return anything useful, and 90% of the time I just want to use Wordpad to see if the file is human-readable. It would be great if it was easier to turn off.

  18. Anonymous says:

    @chrismcb and ola:

    Aaargh does actually know what he’s talking about. You’re missing the point that recognising what a file is and opening it with something are two different actions.

    IMO a vanilla KDE setup that knows that .doc is a Microsoft Word document (even if there are three files elsewhere in the world that use that extension for something else) is more useful than a vanilla Windows install that doesn’t, even though neither can actually open the thing. And as Aaargh (I presume you’re named after the castle?) pointed out, the file extension isn’t always adequate – such as the case of UTF-16 text files or ones with Unix line breaks, which Windows will associate with Notepad despite it not handling them at all well.

    Yes, the web helper thing does help this problem a bit, but frankly I’d prefer the system to just know what things are rather than have to go through the myriad of popups about "do you want to use the helper application or select from a list that arbitrarily won’t contain the program you want to use?".

    If it is essential to have it web-based rather than have a local list of common formats, why not have both? Have a bigger dialog that displays the list of local programs and fetches a remote list in the background.

  19. Anonymous says:

    "Aaargh does actually know what he’s talking about. You’re missing the point that recognising what a file is and opening it with something are two different actions."

    I don’t see how that’s even slightly relevant to the topic at hand.  You find Windows’ meta data to be lacking.  Not surprising: there’s very little meta data in the way of file handling.

    None the less, if you have applications on your machine that could handle the file then why do you want it to go to the internet?  Isn’t that exactly at odds with the common complaint that Windows uses too many resources?

  20. Anonymous says:

    "if you have applications on your machine that could handle the file then why do you want it to go to the internet? "

    The point is that the metadata is an attribute that is stored with the file, and is usually copied with it (While Windows/Linux filesystems usually don’t support this kind of metadata, OS X still tries to store it with the files, you’ve probably seen .DS_Store files on network shares or __MACOSX directories in ZIP files). You don’t need to have to have any app installed to be able to recognize the file type, and identify the application that would be needed to open it.

    My point is that using the file extension to identify the file type (and thus the app) is not a very reliable way of determining the correct application to use, whether it’s installed on the system or not)

  21. Anonymous says:

    Wow, do people ever actually NOT use the "Select the program from a list" radio button in favor of "Use the Web service to find the appropriate program"?  I almost always want some sort of pseudo-text editor to open strange files with.

  22. Anonymous says:

    @Peter I didn’t miss that point, but Aaargh seems to me.

    Aargh seems to be implying that windows sucks because it doesn’t know what a file is. But unix is infinitely better because some random programs know how to decipher some files. Or Mac is better because it has a little more meta data.

    The thing is, they are all the same thing. Some are a bit richer than others. But if I come up with a new data type, does "file" know about my data type? I don’t know how rich the metadata is on the Mac, but does it point me to a resource to install the file?

    JPegs are common, but that doesn’t help me open the file. I have no freaking clue what "graffle" is, so that doesn’t help me either. Having it named "com.omnigroup.omnigraffle.graffle" Doesn’t help much. Sure I can search for omnigroup, omnigraffle, graffle. But I can also search for "jpg"

    Right now the OS pops up a list of common "viewers" and gives you a way to search for more. Should this "search for more" be more automated? That is a design decision. Perhaps as more and more people have broadband that is a better solution. But as it stands now, IF the application is installed on Windows, then the OS knows about the file type. But if the application isn’t installed on it, someone needs to figure out what that type is. Should we push this information down to the OS?

  23. Anonymous says:

    This is very useful to know, thanks.  (Although I must admit that I have never once picked the option to consult the web service.)

  24. Anonymous says:

    What seems strange to me is that it looks awfully difficult for open-source organisations to get their strange extensions on the list, seeing as they generally don’t have company names or offices. Having the database be aware of things like .ogg or .mkv would be very useful for the people who get confronted with those formats.

  25. Anonymous says:

    What I find amusing is that some programs will rename the type of generic files, for example, by changing the type of .JPG files to "ABBCCC Image File"

    WTF?  ABBCCC did not define the JPEG file format, so why do they think it’s appropriate to put their name on it? Must be some stupid egotistic marketers….

    "…’file’ doesn’t know about Contoso Accounting Template files."

    BTW, is that specification available under Microsoft’s open spec promise?

  26. Anonymous says:

    Pierre, telling *Microsoft* of all people how "free and open" it is is probably a strategic mistake if you’re trying to convince people to use it. As Raymond’s pointed out, Microsoft got sued for implementing the "free and open" file format, since Adobe is full of asshats. Pick your battles, man.

    Really, I’m amazed Adobe had enough time to get a lawsuit together, what with all the turning Macromedia products into crap they’ve been doing. I can’t believe I used to think Flash 8 had a bad UI; much like in It’s a Wonderful Life, Adobe has now shown me via CS3 that things could have been oh so much worse.

  27. Anonymous says:

    > “The point of the webservice is to help the user when the associated application is NOT installed. “

    Sure, but ‘file’ works fine for apps you don’t have installed. In fact. lots of files it can recognize won’t even be useful on the platform it runs on. (e.g. it will recognize a ELF binary and will tell you exactly for which platform is it meant).

    [That’s only because ‘file’ has been taught how to recognize ELF binaries (even if it can’t run them). On the other hand, ‘file’ doesn’t know about Contoso Accounting Template files. -Raymond]

    Also, the metadata in an OS X file doesn’t need the actual app to be useful, because it will point you to the correct app. You can see this from the terminal using the ‘mdls’ command.

    For example, running ‘mdls’ on an OmniGraffle file shows, among other things, this line (whitespace removed):

    kMDItemContentType = “com.omnigroup.omnigraffle.graffle”

    From there it’s easy to find the correct application to open it. It’s even more useful than that, it even shows you the *kind* of document you’re dealing with. For example, a JPEG will have this ‘content type tree’ in the metadata:

    kMDItemContentTypeTree = (

       “public.jpeg”,

       “public.image”,

       “public.data”,

       “public.item”,

       “public.content”

    )

    Even if you don’t have a JPEG decoder, you can still determine it’s an image.

    > You do realize that an extension is essentially a piece of metadata?

    Sure, 3 letters, that won’t ever cause a collision (yes, you *can* use more, however, almost no one does). Even if you use more, adding proper namespace will cause confusingly long filenames. Plus you can’t easily have multiple identifiers like the ‘content type tree’ above.

    > Lets say you figure out a file is a jpeg. What application opens jpegs?

    JPEG’s are common, so lots of apps. But if it’s a ‘weird’ file format, like OmniGraffle, I think “com.omnigroup.omnigraffle.graffle” will point you in the direction of the app you need just fine.

  28. Anonymous says:

    What I find disturbing is that although the web service seems to recognize a lot of the file types if you use the en-US locale, under the nl-NL locale it recognizes almost nothing!

    Screw the Dutch (and possible any non-english speaker?)

  29. Anonymous says:

    Having it named "com.omnigroup.omnigraffle.graffle" Doesn’t help much.

    REALLY ? It wouldn’t occur to you to try omnigroup.com ?

  30. Anonymous says:

    My point is that using the file extension to identify the file type (and thus the app) is not a very reliable way of determining the correct application to use, whether it’s installed on the system or not)

    How reliable is metadata? The term "volatile" comes to my mind.

    Interoperability matters. Being able to transfer files between heterogenous systems through archives (tar, zip, 7z…), network file systems (FTP, SMB, NFS…) or file systems on shared media (mainly FAT16 and FAT32) matters. File extensions work for that. Extended attributes & other file system specific metadata don’t work.

    Now, open your HTML file with a pure text editor and save it with another name. Is the file type preserved? If it is, then, the text editor was specially programmed to handle that case.

    If, for some reason, you need a very reliable way to tag files with a type and exchange these files, don’t use file system metadata. File extensions aren’t perfect either. For that, store the data AND metadata in the same file: Use the MIME standard.

  31. Anonymous says:

    I could try omnigroup.com, but how will I know that omnigroup.com has anything to do with that filetype? And if they do, what program of theirs is going to help me?

    Consider adobe where they have 4 or 5 big titles each with its own set of file formats. Adobe reader isnt going to help me with flash files, and my photoshop 7 is just about the worst way to view a pdf file even tho it can pull individual pages out of one.

    Quite honestly if I am using shell.windows.com its because I tried clicking on a document in the hopes that a reader/client would display it. I do not care about omnigroup’s or adobe’s latest marketing hoopla. I care about easily finding a viewer/client for the specific document.

    [Yeah, that’s user-friendly. “Okay, so in order to figure out what application you need to open this file, first run the mdls program and look kMDItemContentTypeTree, that’ll tell you what kind of file it is, and then you use the kMDItemContentType to get the namespace. Now let me teach you hwo to interpret namespaces…” I thought the Mac was supposed to be easy to use! -Raymond]
  32. Anonymous says:

    "I could try omnigroup.com, but how will I know that omnigroup.com has anything to do with that filetype?

    How do you known that Microsoft has anything to do with .doc ? The namespace will usually give you enough information, but you will probably still need a service like the one this thread is about. Only using this mechanism you could actually expect it to come up with the correct application instead of a best-guess based on a 3 letter extension.

    And if they do, what program of theirs is going to help me?"

    As the namespace com.omnigroup.omnigraffle implies, the correct application is "OmniGraffle".

  33. Anonymous says:

    "You don’t need to have to have any app installed to be able to recognize the file type, and identify the application that would be needed to open it."

    You already said above that you need an app to recognize the metadata.  So basically, if I’m already using another app to find out which app I want to use then what’s all this metadata really buying me?  A very slight amount of convenience?

  34. Anonymous says:

    So, wait, I got lost here. Does Microsoft suck because it doesn’t store enough metadata? Or does Microsoft suck because their version of "file" is online and allows anyone to register their file extensions?

    Just trying to figure out if the bashes are for not being bloated enough, or for being too open.

  35. Anonymous says:

    What I find amusing is that some programs will rename the type of generic files, for example, by changing the type of .JPG files to "ABBCCC Image File"

    I hate those things.  Or I hate explorer.  Both I guess.  If an image editing/viewing application is going to associate every image type with itself, the least it can do is differentiate the file types as "ABBCCC JPG Image File" so I can groupe all jpg files in explorer.  Likewise, my biggest pet peeve with explorer is the idiotic way it groups files by this "type" and no longer allows me to group by actual file extension.  

    Someone at Microsoft wasn’t thinking with that one and obviously no-one at any of the image editing software companies was thinking either (more likely they couldn’t care less).

  36. Wound says:

    While mention "on-boarding" (which is nasty) can I also mention another microsoftism I encountered today which is far far worse?

    I give you "to surface", as used of the windows 7 jump list.

    http://blogs.msdn.com/yochay/archive/2009/01/06/windows-7-taskbar-part-1-the-basics.aspx

    "Jump Lists surface commonly used nouns (destinations) and verbs (tasks) of a program"

    I think they mean "to present as available functionality", but it hurts my eyes so much I just had to vent my spleen to someone.

  37. Anonymous says:

    on Windows Server 2008 (so probably on Vista too), it can be set from Local Group Policy Editor > Computer Configuration > Administrative Templates > System > Internet Communication Management > Internet Communication settings > Turn off Internet File Association service.

  38. Anonymous says:

    "Jump Lists surface commonly used nouns (destinations) and verbs (tasks) of a program"

    Oh dear. I think I just surfaced my lunch.

  39. Anonymous says:

    @Z: The Group Policy editor can be used to edit this setting on Windows XP (SP2) as well.

  40. Anonymous says:

    Simon MacMullen wrote "Only two companies registered a claim to be able to handle mp3? Wow."

    Think about how often that page is viewed: Every time someone tries to play an MP3-file on a Windows computer that doesn’t have software to deal with the format… Not so often. (I don’t think this service is targeted to Windows 3 users.)

  41. Anonymous says:

    @wound

    The verb to surface means "to bring to the surface" or to "rise up." In this case the surface is the user interface of the program, it is what the user sees. you are right, surfacing a command is to make the command available to the the user. But it makes it available such that the user SEES the command, it is brought to the surface. Sorry if using English words in a way that is correct makes you barf.

  42. Anonymous says:

    This "feature" has never worked because software vendors don’t want support it. But I don’t care why it doesn’t work, just admit its not working and remove it from the OS. It takes too many clicks. And after that it doesn’t ever find anything, plus it requires the user to ponder for a few moments about how Windows is hard and annoying to use.

  43. Wound says:

    @chrismcb

    Not quite. "Surface", in the sense of "to rise to the surface" is an intransitive verb, which means it cannot be used in the passive voice. It is only transitive in the sense of "to put a surface on something" (e.g. the workmen surface the road.), but since it is the program which adds elements to the jump list, and not the other way around, this usage is incorrect.

  44. Anonymous says:

    chrismcb wrote:

    >So, wait, I got lost here. Does Microsoft suck because it doesn’t store enough metadata?

    MS sucks because they are polishing a turd. The on-line file associator is a good idea; continuing to use the filename to associate with a program is bone-headed.

    Raymond wrote:

    >Yeah, that’s user-friendly. “Okay, so in order to figure out what application you need to open this file, first run…[snip]

    You’re being deliberately obtuse.

    [Actually, I’m genuinely obtuse. Problem statement: You have a file but not the application that knows how to open it. How do you find the right application? One response was “well run this program and study the metadata.” I don’t consider that a user-friend solution. -Raymond]
  45. Anonymous says:

    Honestly, I barely even consider that to be a solution anyway.  How do you know to use this other application – does it show up automatically?

    If I am skilled to read meta-data then I am probably skilled enough to use http://www.google.com/search?q=jpeg+file and replace "jpeg" with whatever extension I want.

    But hey, if I could do that then why not provide that feature at my finger tips in an automated fashion. Oh wait…

  46. Anonymous says:

    Since I’m french, I use the french version of Windows XP and thought, for years, that this service was utterly useless.

    Recently, I discovered that the english database contains many file extensions.

    But, really, the french database does contain almost zero extensions.

    txt, bmp, wav, zip, avi, wmv, gz, 7z… None of them are listed.

    So I just discovered that this feature is actually useful for some guys on earth.

Comments are closed.