Downloads
21539.zip

Modify the list of folders on the Places bar in Win2K's and Office 2000's Open dialog box

In Windows 2000, Microsoft introduced some UI enhancements that are mostly aimed at easing users' experience with the system shell. The usefulness of these "improvements" has undergone debate. The HTML-based Active Desktop, in particular, constitutes a big change for Windows NT 4.0 users. Like it or not, the new UI gives power users a chance to personalize their desktop to make their daily activity more efficient. Let's look at how you can customize one of the new UI features: the Open dialog box's Places bar.

The Open Dialog Box
You've probably noticed that when some applications run under Win2K, their Open dialog box looks a little different from how it looks in NT 4.0. Figure 1 shows the Open dialog box, which I opened by clicking File, Open in Win2K's Notepad utility. The Win2K dialog box has a new element that you won't find in the template of the same dialog box in earlier versions of the OS: a vertical button bar at the left-hand side of the window. The Win2K software development kit (SDK) documentation refers to this bar as the Places bar.

The Places bar is designed to help users reach frequently used folders with a single mouse click. The bar contains up to five buttons, each of which points to a system folder. You can click any of these buttons once to cause the dialog box to immediately show the contents of the selected folder.

The default Places bar contains a button for each of the following folders: History, Desktop, My Documents, My Computer, and My Network Places. The History folder is the system repository for the most recently accessed documents and folders. Thus, it's the first place you should look for recently opened files. Many users frequently use the other four folders as well.

The default configuration of the Places bar attempts to satisfy the largest audience by including the folders that users visit most often. However, this default configuration might not fit the way you work. If not, you might want to customize the Places bar.

Changing Places
You won't find the Places bar folders clearly listed in the registry or anywhere else. Therefore, unless you manually or automatically create a new set of places, Win2K uses the standard set.

The Places bar is considered a systemwide resource. So, when you designate a group of folders as places, you set the places for all the Win2K applications. This restriction means that you can't assign one group of folders for Notepad and another group for Paint. All programs running under Win2K feature the same list of places—either the standard list or the list you've customized. (Microsoft Office 2000 programs can have a different set of places, but I tell you more about that later.)

The first step in designating your own group of folders for the Places bar is to tell the system that you don't want the default list of places. Create the HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\ComDlg32\Placesbar registry subkey. (You probably already have the Policies subkey but not the ComDlg32 subkey.) After you create this subkey, you'll notice that the Open dialog box's Places bar is empty. The Placesbar subkey tells Win2K that you don't want the standard places, but you haven't yet listed your own choices.

The Placesbar subkey can contain up to five entries named Place0 through Place4, so you can specify, but not exceed, as many as five folders. Win2K won't recognize or handle correctly an entry with the name Place5 or Place6, or any other name. You should assign places in order—for example, don't set Place0 and Place2, skipping Place1. An untidy and sparse list of places puts an unpredictable sequence of icons and folder names in the Places bar.

When adding place entries to the Placesbar subkey, one way to refer to existing folders is to specify the fully qualified name as a string. You create a new string entry containing the file-system path and folder name. The registry type for such an entry must be REG_SZ (REG_EXPAND_SZ, if you're using environment variables in the name).

You might also want to link to system folders, whose actual paths are subject to change or might be harder to remember. (Quick, do you know the file-system path of your My Documents folder?) If you want to add an entry for My Documents or Favorites, you can use its system-independent numeric ID instead of the path and folder name. Microsoft calls this ID the CSIDL. Table 1 lists the identifiers for the most common system folders. For these places, you create an entry of type REG_DWORD for the Placesbar subkey.

Automating Places Bar Customization
Listing 1 shows setplaces.vbs, a minimal VBScript application that automates reading and writing places. The script first asks you to specify the number of the place you want to modify. If you enter a number from 0 through 4, the script continues, asking you to click Yes if you want to specify a folder by path or No if you want to specify a folder by ID number. If you enter Yes, the script tells you to enter a pathname. After you do so, the script creates a REG_SZ registry entry. If you enter No, the script tells you to enter any system-file ID. After you do so, the script creates a REG_DWORD subkey. Next, the script updates the registry accordingly. After you enter one place, the script loops and asks you for another one.

Admittedly, setplaces.vbs doesn't do much error handling, and its UI is quite rough. If you want a richer application, you can easily turn the script into Visual Basic (VB) code.

Listing 2, page 109, shows the restoredefaultplaces.vbs script, which deletes the Placesbar subkey to restore the default places to the Places bar. As I mentioned, the Placesbar subkey doesn't exist unless you or an application creates it. Without a Placesbar subkey, the contents of the Places bar defaults to the standard folders.

The Office 2000 Places Bar
The registry changes that I've described affect applications that use the dialog boxes in the Win2K common dialog library. Office 2000 applications use dialog boxes from a custom library, so modifying the Win2K Open dialog box's Places bar doesn't have any effect on the bar in Microsoft Word and Microsoft Excel.

Fortunately, though, Office 2000 provides a way to personalize its Places bar. The pertinent registry subkey is HKEY_CURRENT_USER\Software\Microsoft\Office\9.0\Common\Open Find\Places; however, you don't need to know this subkey if you just want to customize the Places bar. Microsoft offers a handy tool that you can install in the Tools menu in Office 2000 applications and use to change the bar's places. The tool, places.exe, is an Office 2000 add-in that you can download from the Microsoft article "INFO: Places COM Add-In for Office 2000 Available for Download" (http://support.microsoft.com/support/kb/articles/q260/1/90.asp). The package comes with the complete VB source code for the add-in and a read-me.doc file that explains in detail how to use the facility.

After downloading the self-extracting places.exe file to a new folder, double-click it. Then, click Start, Run, type

regsvr32 <path>\places.dll

and click OK to register the only executable in the folder: places.dll. If at this point you have any Office 2000 program open, close it, then reopen it. The program's Tools menu will feature a new Set Places item that you can use to select new folders for the Places bar. Unlike Win2K applications, Office 2000 applications support small icons. If you choose this option, you can double the number of folders on the bar from 5 to 10. All the changes you make to the Places bar in one Office application apply to all Office applications.

The way to good software is paved with great intentions and sometimes also with handy tools. The Places bar is a time-saving feature, but you get the maximum benefit only if the listed places are folders that you frequently use. Now you have enough information to customize the bar in both Win2K and Office 2000.