How can I make my custom namespace extension get categorized correctly in My Computer?

Raymond Chen

Raymond

A customer was developing a custom namespace extension and they found that when displayed in My Computer, it showed up in the Other category.

NameType
Hard Disk Drives (3)
OS (C:)Local Disk
DISK_1 (E:)Local Disk
DISK_2 (F:)Local Disk
Devices with Removable Storage (1)
DVD RW Drive (D:)CD Drive
Network Locations (1)
share (\\server) (Z:)Network Drive
Other (1)
NAS DeviceSystem Folder

They wanted it to appear in the Network Locations category because it represented a network device.

Explorer categorizes the items based on the SH­DESCRIPTION­ID.dwDescription­Id. We saw this structure some time ago when we tried to detect the Recycle Bin. By default shell namespace extensions are given SHDID_COMPUTER_OTHER as their description ID and the clsid is the class ID of the shell extension itself.

To customize the description ID, go to the shell namespace registration and add the following:

HKEY_CLASSES_ROOT\
    CLSID\
        {clsid}\
            DescriptionID=REG_DWORD:9

The magic number 9 is SHDID_COMPUTER_NET­DRIVE. You can use any of the values supported by the SH­DESCRIPTION­ID structure. For example, if your shell extension wraps a file system directory, you may want to use SHDID_FS_DIRECTORY so that it gets categorized under Folders.

Raymond Chen
Raymond Chen

Follow Raymond   

0 comments

Comments are closed.