Функция SHGetFolderPathAndSubDirW (shlobj_core.h)

Получает путь к папке и добавляет предоставленный пользователем путь к вложенной папке.

Синтаксис

HRESULT SHGetFolderPathAndSubDirW(
  [in]  HWND    hwnd,
  [in]  int     csidl,
  [in]  HANDLE  hToken,
  [in]  DWORD   dwFlags,
  [in]  LPCWSTR pszSubDir,
  [out] LPWSTR  pszPath
);

Параметры

[in] hwnd

Тип: HWND

Зарезервировано.

[in] csidl

Тип: int

Значение CSIDL , определяющее папку, путь к которой требуется извлечь. Допустимы только реальные папки. Если указана виртуальная папка, эта функция завершается ошибкой. Вы можете принудительно создать папку с помощью SHGetFolderPathAndSubDir , объединив CSIDL папки с CSIDL_FLAG_CREATE.

[in] hToken

Тип: HANDLE

Маркер доступа, представляющий конкретного пользователя. Для систем, предшествующих Windows 2000, присвойте этому значению значение NULL. В более поздних системах hToken обычно, но не всегда, имеет значение NULL. Возможно, потребуется присвоить значение hToken для тех папок, которые могут иметь несколько пользователей, но считаются принадлежащими одному пользователю. Наиболее часто используемая папка этого типа — "Мои документы".

[in] dwFlags

Тип: DWORD

Указывает, является ли возвращаемый путь фактическим путем к папке или путем по умолчанию. Это значение используется в случаях, когда папка, связанная со значением CSIDL , может быть перемещена или переименована пользователем.

SHGFP_TYPE_CURRENT

Возвращает текущий путь к папке.

SHGFP_TYPE_DEFAULT

Возвращает путь по умолчанию к папке.

[in] pszSubDir

Тип: LPCTSTR

Указатель на вложенный путь, добавляемый к пути к папке. Это строка длиной MAX_PATH, заканчивающаяся значением NULL. Если вы не создаете новый каталог, это должен быть существующий подкаталог, иначе функция возвращает ошибку. Это значение может иметь значение NULL , если подпуть не должен быть добавлен.

[out] pszPath

Тип: LPTSTR

При возврате этой функции это значение указывает на путь к каталогу и добавленный вложенный путь. Это строка длиной MAX_PATH, заканчивающаяся значением NULL. Эта строка пуста, когда функция возвращает код ошибки.

Возвращаемое значение

Тип: HRESULT

Если эта функция выполняется успешно, она возвращает S_OK. В противном случае возвращается код ошибки HRESULT .

Комментарии

Примечание

Заголовок shlobj_core.h определяет SHGetFolderPathAndSubDir как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора UNICODE. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

   
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header shlobj_core.h (включая Shlobj.h, Shlobj_core.h)
Библиотека Shell32.lib
DLL Shell32.dll (версия 5.60 или более поздняя)

См. также раздел

SHGetFolderPath