Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Извлекает полный путь к известной папке, определенной идентификатором KNOWNFOLDERID папки.
Синтаксис
HRESULT SHGetKnownFolderPath(
[in] REFKNOWNFOLDERID rfid,
[in] DWORD dwFlags,
[in, optional] HANDLE hToken,
[out] PWSTR *ppszPath
);
Параметры
[in] rfid
Тип: REFKNOWNFOLDERID
Ссылка на ЗНАЧЕНИЕ KNOWNFOLDERID , идентифицирующее папку.
[in] dwFlags
Тип: DWORD
Флаги, указывающие специальные параметры извлечения. Это значение может быть равно 0; в противном случае одно или несколько значений KNOWN_FOLDER_FLAG .
[in, optional] hToken
Тип: HANDLE
Маркер доступа, представляющий конкретного пользователя. Если этот параметр имеет значение NULL, то функция запрашивает известную папку для текущего пользователя.
Запросите папку конкретного пользователя, передав hToken этого пользователя. Обычно это делается в контексте службы с достаточными привилегиями для получения маркера заданного пользователя. Этот маркер должен быть открыт с помощью TOKEN_QUERY и TOKEN_IMPERSONATE прав. В некоторых случаях также необходимо включить TOKEN_DUPLICATE. Помимо передачи hToken пользователя, необходимо подключить куст реестра конкретного пользователя. Дополнительные сведения о проблемах управления доступом см. в статье "Управление доступом ".
Назначение параметра hToken значением -1 указывает пользователя по умолчанию. Это позволяет клиентам SHGetKnownFolderPath находить расположения папок (например, папку Desktop ) для пользователя по умолчанию. Профиль пользователя по умолчанию дублируется при создании любой новой учетной записи пользователя и включает в себя специальные папки, такие как "Документы " и "Рабочий стол". Все элементы, добавленные в папку "Пользователь по умолчанию", также отображаются в любой новой учетной записи пользователя. Обратите внимание, что для доступа к папкам пользователей по умолчанию требуются права администратора.
[out] ppszPath
Тип: PWSTR*
При возврате этого метода содержит адрес указателя на строку Юникода, завершающую значение NULL, которая указывает путь к известной папке. Процесс вызова отвечает за освобождение этого ресурса после того, как он больше не нужен, вызвав CoTaskMemFree, независимо от того, успешно ли выполняется SHGetKnownFolderPath . Возвращаемый путь не включает конечную обратную косую черту. Например, возвращается значение "C:\Users", а не "C:\Users\".
Возвращаемое значение
Тип: HRESULT
Возвращает S_OK в случае успешного выполнения или значения ошибки в противном случае, включая следующее:
| Код возврата | Description |
|---|---|
|
Помимо прочего, это значение может указывать на то, что параметр МНОГОМЕРНЫХ ссылок ссылается на ИЗВЕСТНЫЙFOLDERID , который не имеет пути (например, папку, помеченную как KF_CATEGORY_VIRTUAL). |
|
Помимо прочего, это значение может указывать на то, что параметр СИАПР ссылается на ИЗВЕСТНЫЙFOLDERID, который отсутствует в системе. Не все значения KNOWNFOLDERID присутствуют во всех системах. Используйте IKnownFolderManager::GetFolderIds , чтобы получить набор значений KNOWNFOLDERID для текущей системы. |
Замечания
Эта функция заменяет SHGetFolderPath. Эта старая функция теперь является просто оболочкой для SHGetKnownFolderPath.
Требования
| Требование | Ценность |
|---|---|
| Минимальный поддерживаемый клиент | Windows Vista [только классические приложения] |
| минимальный поддерживаемый сервер | Windows Server 2008 [только классические приложения] |
| целевая платформа | Виндоус |
| Header | shlobj_core.h (include Shlobj.h) |
| Library | OneCore.Lib |
| DLL | Shell32.dll (версия 6.0.6000 или более поздней версии) |