Why don’t music files show up in my Recent Items list?


If you double-click a music file, it doesn’t show up in your Recent Items list. What’s so special about music files?

The technical reason is that the file types are registered with the FTA_No­Recent­Docs flag, which means that they don’t show up in the Recent Items list (formerly known as Recent Documents), and they don’t show up in the Recent or Frequent section of Windows Media Player’s Jump List.

Okay, fine, but that’s like answering “Why is there a door here?” with “Because the blueprints said that there should be a door there.” You really want to know why the architect decided to put a door there.

The reason why music files are not placed in the Recent Items list is that individual songs are not that interesting there. If you spend an hour listening to music, that will fill up your Recent Items list and push out everything else. The list ends up simply telling you about the thing you just finished doing. Not all that useful.

Therefore, Windows Media Player excludes individual music files from the Recent Items list. Instead, it puts artists and albums in the Jump List, higher-level information that they figure is more interesting than just a list of the songs you just heard.

Comments (19)
  1. Anonymous Coward says:

    In case readers are wondering, these flags are set in the EditFlags field in the registry. Refer to this page for more detail: msdn.microsoft.com/…/bb762506.aspx

  2. kinokijuf says:

    Is there a way to always open the home oldnewthing page in excerpt mode? It does not seem to remember my preferences.

  3. You can change it so they start appearing in the Recent Items list. Using NirSoft's FileTypesMan, you can allow or prevent any file type/extension from appearing in Recent Items list. In FileTypeMan's "Edit

    File Type" dialog, check the option called "Don't add this file type to Recent Documents".

    What I would like to know if there or isn't there a way in Windows 7 to add a file to the Recent jump list when launched by my own app launcher?

  4. chentiangemalc says:

    thanks Raymond for info behind design decision

    @xpclient you can get doco on how to jump list here msdn.microsoft.com/…/gg281362.aspx

    For .NET example channel9.msdn.com/…/Windows-7-Jump-Lists

  5. @chentiangemalc: I don't think that answers xpclient's question, which is how to launch (presumably via ShellExecuteEx) a file, in another application, and have the file added to that application's automatic jump-list.

    I've run into this problem myself. There does not seem to be any documented way to do this. You can add files to the auto-jump-list if you know the app's AppUserModelID, but MSDN explicitly states that there is no way to get the AppUserModelID for an app, in general (i.e. when it is auto-generated). Besides which, I don't think there is a reliable way to find out which app ShellExecuteEx actually launched int he first place.

    As is often the case, it seems the API was written and documented to the bare minimum needed for Windows Explorer to function, with no thought for alternative tools needing to do the same thing. :(

    [Or it was designed on the principle that application X shouldn't be screwing with the jump list of application Y. (The authors of application Y might view application X as malware, since it's trying to manipulate Y's jump list without permission.) -Raymond]
  6. "Or it was designed on the principle that application X shouldn't be screwing with the jump list of application Y."

    i.e. The assumption that Windows Explorer is the one and only application launcher, and that anything else that might want to do anything similar is up to no good and must be prevented, rather than trying to do something useful. :(

    It could be a flag on ShellExecuteEx, for example.

    [If you want to write your own launcher with its own jump-listy thing based on what the user launched from your launcher, then knock yourself out. -Raymond]
  7. Yes, mother (um,…Microsoft) knows best. If the people wonder why the files are not there (I've been wondering all the time) that's because they wont them in the list. If I double click at a file to play it, the file is interesting, not an album. If I double click on a playlist, the playlist is interesting. What *I* open I think is interesting, not what Microsoft assumes. Too much thinking behind our backs.

  8. jon says:

    @LeoDavidson: Why would Microsoft bother investing resources in making things easier for third-party software? That's not what they're about.

  9. chentiangemalc says:

    @jon much better to not have other 3rd party software messing with my software when typically users don't require/want this – it sounds like simple request at first, but will go straight to open slather abuse…

    Microsoft has made it very easy to use Jump list system for 3rd parties – for either web sites in IE9+ or native&managed code applications. Just keep it to your application/website. Perfectly reasonable limitation.

  10. @LeoDavidson

    Lets step back and think for a moment if you could do what you want. What is there to stop super awesome application a from installing itself and registering itself on any jumplists that it can? Explorer was obviously designed this way to stop anyone but the application itself and users from being able to modify this list.

    I know that jon was being sarcastic there, but yes, this wasn't to make things easy for third party apps, it was to keep users majorly in control of their settings. If you dislike this idea then I really don't know what to say since I know I like being able to say what goes in a jumplist and what doesn't.

  11. Oh so it's "by design". Explorer from anywhere (Run dialog, Start Menu's Recent Items and all the ShellExecute methods) are all given special permissions but not third party launchers. And yet MS takes away the Start Menu in Windows 8. Talk about having your cake and eating it without sharing. Lack of a feature is justified as some security measure. Any app or malware can modify the "Recent Items" on the Start Menu, why not an app's jump list?

    [Who said it was a security measure? It's a design decision. There is no supported, documented way for one application to modify another application's jump list. Just like there is no supported, documented way for one application to modify another application's notification icon. -Raymond]
  12. jon says:

    @xpclient: Apparently the jump list is super-secret highly sensitive information that nothing except the exalted Explorer be allowed to modify. Either that or Raymond just makes stuff up to justify design "decisions" that probably amount to no more than Microsoft not thinking or caring about what third-party applications might want to do.

    "Implement the bare minimum in an API to make Explorer and Office work" has been the Microsoft way for years now.

    [Imagine if applications could edit each other's jump lists. But if all you want to do is execute a document and say "Hey, I executed a document, in case you wanted to add it to a jump list or something" you can just invoke the document with the CMIC_MASK_FLAG_LOG_USAGE flag. -Raymond]
  13. Cheong says:

    Btw, for musics most players including WMP have their own "recently played file" list, and most people play music only in one or two music software. They add them once, and play from their playlist afterwards. There's little point to include them in the "Recent Items" list.

  14. asdbsd says:

    Trollfest in comments above. Yeah it's a good thing that apps can't mess with other apps stuff, news flash guys. There probably should have been a method for an app to be allowed (by the user, through system UI) to act as a "service level app", or even better, a fine grained permission system, buut. You can't program everything.

  15. dirk gently says:

    jon

    The jump list is valuable real estate for me as the user. I know people like you all to well. You are the creator of "Super Awesome Apps" who know better than the user what should be in user's jump list.

    As a user, I say NO to developers like you.

  16. Anon says:

    They must not have met my 2 year old son.

  17. Person says:

    Reminds me of browser toolbars, applications have the power to install them. Given the option to not install them is there, but the option always defaults on. The end result is many of the normal (non-power/techi) users have at least one browser toolbar, some people I know have like three. Someof which are hostile, one family friends computer had a browser toolbar that would insert more ads into facebook into the user feed. So in light of browser toolbar mantality, i do not want third party apps touching other apps jump lists either ;), as much as i hate to say it. As a programer id like to be able to do whatever id like with the system too, but it seems more bad than good.

  18. jon says:

    Where's the CMIC_MASK_FLAG_LOG_USAGE equivalent for the ShellExecuteEx() function then?

    [Apparently SEE_MASK_FLAG_LOG_USAGE is not an obvious-enough name? -Raymond]
  19. @asdbsd says:

    You need to re-learn the definition of trolling.

Comments are closed.