March 10th, 2020

The sad but short story of the SM_AccessoriesName registry value

The SM_AccessoriesName is another victim of programs that reach into undocumented sections of the registry.

This registry value was never documented since it existed for internal use, and for the 64-bit release of Windows, we finally were able to get rid of it in some circumstances.

Until the application compatibility team found a major program that used it. So back it goes, at least for now, until they can figure out a way to keep that program happy while still removing the value.¹ (Perhaps they may be able to shim it.)

“Why not just break the program and tell the vendor to fix their busted program?”

Easier said than done. The vendor of this particular program happens to be a vicious competitor of Microsoft, who in the past has been known to complain loudly to anyone who will listen that Microsoft intentionally breaks their programs in order to gain a competitive advantage. Breaking their program would just be inviting another lawsuit. “Microsoft once again wields its monopoly power to punish competitors.”

Such is the life of the application compatibility team.

¹ I just went back and checked, and in Windows 10, the registry value is finally gone. Only took, what, 10 years?

 

Topics
History

Author

Raymond has been involved in the evolution of Windows for more than 30 years. In 2003, he began a Web site known as The Old New Thing which has grown in popularity far beyond his wildest imagination, a development which still gives him the heebie-jeebies. The Web site spawned a book, coincidentally also titled The Old New Thing (Addison Wesley 2007). He occasionally appears on the Windows Dev Docs Twitter account to tell stories which convey no useful information.

10 comments

Discussion is closed. Login to edit/delete existing comments.

  • Ian Boyd

    That must be a Real pain.

  • skSdnW

    There is also SM_GamesName which would have been nice if it was documented so that all 3rd-party games could put their shortcuts there.

    Why did Microsoft not create CSIDL/special folder constants for these? Would have helped with the clutter in the old start menu era.

  • Shawn Keene

    Now I’m very curious what SM_AccessoriesName registry key was for, but my very cursory web search yielded no results.

    • aidtopia

      Caution: I searched for SM_AccessoriesName and got a bunch of shopping results for S&M accessories.

    • Bradley Uffner

      https://flylib.com/books/en/1.272.1.149/1/
      says that “SM_AccessoriesName” contained the name of the “Accessories” group on the start menu. Sounds logical, but it’s non-canonical of course.

      • Gacel Perfinian

        "and for the 64-bit release of Windows, we finally were able to get rid of it in some circumstances."

        Just a theory, but since 64-bit (I presume this is x64/AMD64) Windows XP does exist, and given that Windows XP has hard-coded names when it comes into folders (like in this exact example, in German it is "Zubehör" instead of "Accessories"), it makes perfect sense... unless you remembered that APIs exist :)

        Now if some application needs this...

        Read more
      • Mason Wheeler

        Now I’m really curious as to what the third-party software that absolutely needed this was, and why!

      • Don Hacherl

        “Absolutely needed”? nothing. “Got their program to work by grabbing a value from a random undocumented registry key that happened to be this one instead of reading the manual and doing things the recommended way”? I’ve got a guess.

      • David Solimano

        Me too, ha! But remember everyone (not you sir but the future reader) ground rules are no written guesses, we will have to be content with wondering in our hearts.

      • R Wells

        There was one major piece of software that wanted to duplicate much of the Start Menu internally so many other programs could be launched without having to navigate the Start Menu. That program would do its own tasks that it was intended to do plus act as a shell replacement. Made sense as a design philosophy for DOS applications where switching was difficult; might not have been as useful under Windows.