Понятие "пространство имен" появилось вместе с появлением Windows 95 и остается в новых версиях до сих пор. Это иерархическая структура построенная на основе модели COM, которая включает:
Строится эта модель на основе COM, как и было объявленно при появлении этого интерфейса, что в будущем файловая система будет строиться на принципах COM (Освой программирование OLE за 21 день). Пространство имен вы видите используя Exploler. Вот это и есть пространство имен. То что вы видите отличается от файловой системы как таковой и это важно. Это не одно и тоже хотя похоже.
Самым верхнем уровнем иерархии считается рабочий стол. На данный момент пространство имен содержит больше объектов, чем файловая структура. Первое понятие это папка Shell folder. Это объект, который владеет другими объектами. Папка - это аналог директории, при этом многие объекты таковыми и являются. Подчеркиваю многие, но не все. Вот, например, те которые не имеют аналогов каталогов и являются виртуальными папками, например, My Computer или Network Neighborhood. Данные о папках, которые имеют аналоги на файловой системе хранятся в реестре по пути. Обратите внимание, что они хранятся в разделе HKEY_CURRENT_USER и специфичны для каждого пользователя.
HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Explorer/Shell Folders/
Каждый объект в данной иерархии имеет свой уникальный номер (идентификатор), который и определяет положение этого объекта. При создании приложений Вы манипулируете понятием указателя на элемент списка - Pointer to an Identifier List (PIDL).
В ваших программах для поддержки работы с пространством имен необходимо подключить описание функций и констант.
#include <shlobj.h>
Весь список возможностей включает интерфейсы к объектам, которые естественно имеют свои функции:
ICommDlgBrowser IDockingWindow IDockingWindowFrame IDockingWindowSite IEnumIDList IPersistFolder IShellBrowser IShellExecuteHook IShellFolder IShellIcon IShellView
Функции:
BrowseCallbackProc SHAddToRecentDocs SHBrowseForFolder SHChangeNotify SHFileOperation SHFreeNameMappings SHGetDataFromIDList SHGetDesktopFolder SHGetFileInfo SHGetInstanceExplorer SHGetMalloc SHGetPathFromIDList SHGetSpecialFolderLocation SHLoadInProc
Для облегчения доступа к наиболее часто используемым папкам предусмотрены ряд констант и функции SHGetSpecialFolderLocation, которые описаны в подробностях.
Структуры:
BROWSEINFO CIDA FOLDERSETTINGS SHFILEINFO SHFILEOPSTRUCT SHNAMEMAPPING STRRET
Перечисления:
SHCONTF SHGNO