August 2nd, 2007

What is the difference between the Folder and Directory (and other special) progids?

When you’re installing your shell extension, you need to know which progid to hang it off of inside HKEY_CLASSES_ROOT. We’ll start with the title question and then move on to other predefined (but perhaps not well-known) progids.

  • “Folder” is the progid for any shell folder. It could be a virtual folder (like Control Panel) or a file system folder (like C:\WINDOWS).
  • “Directory” is the progid for file system folders. This is a subset of “Folder”.
  • “*” is the progid for all files. Doesn’t matter what the extension is.
  • “.” (that’s a single period) is the progid for files without any extension.
  • “AllFileSystemObjects” is the union of “*” and “Directory”. It is the progid for all files and for file system directories.
Topics
Code

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.

0 comments

Discussion are closed.