Add Any Folder to the Start Menu

Namespace Extensions
Before Windows 95 was released, the only types of folders that existed were file system folders associated with
storage devices like hard disks and floppy disks. Windows 95 introduced the concept of virtual folders,
like My Computer and Control Panel, which look like other folders but are not part of the file system.
All folders--traditional and virtual--are organized under a hierarchical collection called the shell namespace.
The root of the shell namespace is the Desktop, which is also a virtual folder.

You can create virtual folders by implementing a shell namespace extension, which is essentially a DLL that exposes several OLE COM (component object model) objects. These objects, as well as all other COM objects, each have a unique identifier called a CLSID (class identifier) that Windows uses when searching for the object. Whenever the shell needs to access one of these virtual folders, it searches for the DLL by using the CLSID of the namespace extension object, loads the DLL, asks for the right interfaces, and then begins calling the methods of these interfaces to enumerate the contents of the virtual folder.

To access a virtual folder, you need to create a junction point that defines where the virtual folder is located in the shell namespace. This junction point can be a file or a folder, or it can be created inside the Desktop or My Computer virtual folders by setting some keys in the registry. Folder Pointers uses a file system folder as its junction point into the shell namespace.
There are two ways to declare that a folder is serving as the junction point of a virtual folder. You can use the CLSID of the namespace extension as the file extension of the folder, or you can set the System file attribute of the folder, and place a file inside the folder named Desktop.ini that contains the following text:
[.ShellClassInfo]
CLSID={clsid}
where clsid is replaced by the CLSID of the desired virtual folder. Folder Pointers uses the latter method to create its junction points.
There is a well-known trick for adding Control Panel to the Start menu that is based on the first method for declaring the junction point of a virtual folder. Simply create a folder named Control Panel. {21EC2020-3AEA-1069-A2DD-08002B30309D} and put it inside the Start menu. When I first learned of this technique, I immediately began trying it with other virtual folders. With some--such as the Printers folder--the trick worked, but with the folders I was most interested in, it didn't. You can't add the Desktop or My Computer using this technique. That's when I decided to write my own shell namespace extension that would let me access any folder from the Start menu.