Функция SHSetFolderPathA (shlobj_core.h)
Устаревшие. Назначает новый путь к системной папке, определяемой его CSIDL.
Синтаксис
HRESULT SHSetFolderPathA(
[in] int csidl,
[in] HANDLE hToken,
[in] DWORD dwFlags,
[in] LPCSTR pszPath
);
Параметры
[in] csidl
Тип: int
Значение CSIDL, определяющее папку, путь которой необходимо задать. Допустимы только физические папки. Если указана виртуальная папка, эта функция завершается ошибкой.
Добавьте значение CSIDL_FLAG_DONT_UNEXPAND в CSIDL, чтобы убедиться, что строка записывается в реестр точно так же, как указано. Если флаг CSIDL_FLAG_DONT_UNEXPAND не включен, части пути могут быть заменены строками среды, например %USERPROFILE%.
[in] hToken
Тип: HANDLE
Маркер доступа , который можно использовать для представления конкретного пользователя. Обычно этот параметр имеет значение null, в этом случае функция пытается получить доступ к экземпляру текущего пользователя папки. Однако может потребоваться назначить значение для hToken для этих папок, которые могут иметь несколько пользователей, но рассматриваются как принадлежащие одному пользователю. Наиболее часто используемая папка этого типа — документы.
Вызывающее приложение отвечает за правильное олицетворение, если hToken не имеет значения NULL. Он должен иметь соответствующие привилегии безопасности для конкретного пользователя, включая TOKEN_QUERY и TOKEN_IMPERSONATE, а в настоящее время должен быть подключен куст реестра пользователя. Дополнительные сведения о проблемах контроля доступа см. в .
[in] dwFlags
Тип: DWORD
Скрытный. Должно быть задано значение 0.
[in] pszPath
Тип: LPCTSTR
Указатель на строку длины, завершаемой значением NULL, MAX_PATH, которая содержит новый путь к папке. Это значение не может быть значение NULL, и строка не может иметь нулевой длины.
Возвращаемое значение
Тип: HRESULT
Возвращает стандартные коды HRESULT, включая следующие:
Возвращаемый код | Описание |
---|---|
|
Путь к папке был успешно обновлен. |
|
Несколько условий ошибки приводят к возврату этого значения, включая следующие:
|
Замечания
Рекомендуется выразить пути как строки Юникода, так как имена папок могут содержать символы Юникода, которые не выражаются в ANSI.
Заметка
Заголовок shlobj_core.h определяет SHSetFolderPath как псевдоним, который автоматически выбирает версию этой функции ANSI или Юникод на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows XP [только классические приложения] |
минимальный поддерживаемый сервер | Windows Server 2003 [только классические приложения] |
целевая платформа | Виндоус |
заголовка | shlobj_core.h (include Shlobj.h, Shlobj_core.h) |
библиотеки |
Shell32.lib |
DLL | Shell32.dll (версия 5.0 или более поздняя версия) |