The Wayback Machine - https://web.archive.org/web/20081211115631/http://www.pcmag.com:80/article2/0,4149,1183816,00.asp
pcmagnetwork logo
Subscribe!

Home

Product Guides
top sellers
Plus Main Dvorak
Dvorak 11/17
Top Web Sites 2008
shop now

Find great products
and great deals.
Shop for:

(enter product name
or keywords)
in:

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.

'); if ( number_google_ads <=1 ){document.write('
');}}
newsletters

Get PCMag.com's FREE email newsletters delivered to your inbox.

It's easy, just follow the steps.

Want more? Check out our other newsletters here.

Manage your newsletter subscriptions here.

1. Make your selections:

Daily News Alert
Inside PCMag.com
PCMag.com Small Business Update
PCMagCast Update
Productwire: First Looks Update
Security Watch
Tech Saver
Tip of the Day
Utility Library Update
What's New Now
PCMag Announcements

2. Select email format:

3. Enter email address:


NoteWhen 3: Clear the Clutter. Version 3




NoteWhen 3: Clear the Clutter. Version 3 adds many features that you, our subscribers, have been asking for. You can now:

Send notes by e-mail, including Gmail or secure servers
Synchronize notes with notes from other machines
Lock notes to prevent further editing
Archive notes, taking them out of the list without deleting them
View scheduled events on a bigger calendar showing note titles
Make NoteWhen portable for flash drives
Export notes to HTML, RTF, Text, or CSV
Print a list of notes

Download Now:�NoteWhen3Setup.zip
PCMagCast
PC Magazine's live, online events make you more productive at work, home, and on the go. Best of all, they're FREE!

Featured Event:

5 Strategies for Providing Superior Tech Support While Cutting Costs
Tuesday, December 16, 2008 at 1pm ET - Sponsored by Citrix Online
How do technical support organizations keep customers satisfied and stay competitive while cutting costs? Attend this webcast to find out. Register today.

See all PCMagCasts >>

More Free PCMagCasts:

On-Demand Applications: Easy Ways for Your Business to Work Online
Sponsored by Dell Sb360
We walk you through the best on-demand offerings and what they can do for your business. Attend now.

Virtualization: How Small Businesses Can Save Money and Boost Efficiency
Sponsored by Dell SB360
This course delves into how server strategies at small businesses can be optimized with virtualization, and how multiple operating systems can be efficiently deployed on single systems for networked use. Attend today.



Info Centers
Special Offers
Free White Papers
'); } } // -->