Функция SHGetFolderLocation (shlobj_core.h)
Не рекомендуется. Извлекает путь к папке в виде структуры ITEMIDLIST .
Синтаксис
SHSTDAPI SHGetFolderLocation(
[in] HWND hwnd,
[in] int csidl,
[in] HANDLE hToken,
[in] DWORD dwFlags,
[out] PIDLIST_ABSOLUTE *ppidl
);
Параметры
[in] hwnd
Тип: HWND
Зарезервировано.
[in] csidl
Тип: int
Значение CSIDL , определяющее расположенную папку. Папки, связанные с CSIDL, могут не существовать в определенной системе.
[in] hToken
Тип: HANDLE
Маркер доступа, который можно использовать для представления конкретного пользователя. Обычно для него устанавливается значение NULL, но это может потребоваться при наличии нескольких пользователей для тех папок, которые считаются принадлежащими одному пользователю. Наиболее часто используемая папка этого типа — Мои документы. Вызывающее приложение отвечает за правильное олицетворение, если hToken имеет значение, отличное от NULL. Он должен иметь соответствующие привилегии безопасности для конкретного пользователя, а куст реестра пользователя должен быть подключен в данный момент. Дополнительные сведения о проблемах управления доступом см. в контроль доступа.
Присвоение параметру hToken значения -1 указывает на пользователя по умолчанию. Это позволяет клиентам SHGetFolderLocation находить расположения папок (например, папку Рабочего стола) для пользователя по умолчанию. Профиль пользователя по умолчанию дублируется при создании новой учетной записи пользователя и включает специальные папки, такие как "Мои документы" и "Рабочий стол". Все элементы, добавленные в папку "Пользователь по умолчанию", также отображаются в любой новой учетной записи пользователя.
[in] dwFlags
Тип: DWORD
[out] ppidl
Тип: PIDLIST_ABSOLUTE*
Адрес указателя на структуру списка идентификаторов элементов, которая указывает расположение папки относительно корня пространства имен (рабочего стола). Параметр ppidl имеет значение NULL при сбое. Вызывающее приложение отвечает за освобождение этого ресурса путем вызова ILFree.
Возвращаемое значение
Тип: HRESULT
Возвращает S_OK в случае успешного выполнения, или значение ошибки в противном случае, включая следующее:
Код возврата | Описание |
---|---|
|
CSIDL в nFolder является допустимым, но папка не существует. |
|
Недопустимый CSIDL в nFolder. |
Комментарии
Эта функция является надмножеством SHGetSpecialFolderLocation, включенной в более ранние версии оболочки.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional, Windows XP [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | shlobj_core.h (включая Shlobj.h) |
Библиотека | Shell32.lib |
DLL | Shell32.dll (версия 5.0 или более поздняя) |