Поделиться через


Функция GetWindowsDirectoryW (sysinfoapi.h)

Извлекает путь к каталогу Windows.

Эта функция предоставляется в основном для обеспечения совместимости с устаревшими приложениями. Новые приложения должны хранить код в папке Program Files, а постоянные данные — в папке Данные приложения в профиле пользователя. Дополнительные сведения см. в разделе ShGetFolderPath.

Синтаксис

UINT GetWindowsDirectoryW(
  [out] LPWSTR lpBuffer,
  [in]  UINT   uSize
);

Параметры

[out] lpBuffer

Указатель на буфер, который получает путь. Этот путь не заканчивается обратной косой чертой, если каталог Windows не является корневым каталогом. Например, если каталог Windows называется Windows на диске C, путь к каталогу Windows, полученному этой функцией, — C:\Windows. Если система была установлена в корневом каталоге диска C, извлекается путь C:.

[in] uSize

Максимальный размер буфера, указанный параметром lpBuffer , в TCHAR. Это значение должно быть равно MAX_PATH.

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

Если функция выполняется успешно, возвращаемое значение — это длина строки, скопированной в буфер в TCHAR, не включая завершающий символ NULL.

Если длина превышает размер буфера, возвращаемое значение равно размеру буфера, необходимому для хранения пути.

Если функция выполняется неудачно, возвращается нулевое значение. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.

Комментарии

Каталог Windows — это каталог, в котором некоторые устаревшие приложения хранят файлы инициализации и справки. Новые приложения не должны хранить файлы в каталоге Windows; Вместо этого они должны хранить системные данные в каталоге установки приложения, а данные, относящиеся к конкретному пользователю, — в профиле пользователя.

Если пользователь использует общую версию системы, каталог Windows гарантированно будет частным для каждого пользователя.

Если приложение создает другие файлы, которые оно хочет хранить для каждого пользователя, оно должно поместить их в каталог, указанный в переменной среды HOMEPATH. Этот каталог будет отличаться для каждого пользователя, если он указан администратором, с помощью средства администрирования User Manager. HOMEPATH всегда указывает либо домашний каталог пользователя, который гарантированно является частным для каждого пользователя, либо каталог по умолчанию (например, C:\USERS\DEFAULT), к которому у пользователя будет полный доступ.

Службы терминалов: Если приложение выполняется в среде служб терминалов, у каждого пользователя есть частный каталог Windows. Существует также общий каталог Windows для системы. Если приложение поддерживает Terminal-Services (в заголовке изображения установлен флаг IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE ), эта функция возвращает путь к системным каталогу Windows так же, как функция GetSystemWindowsDirectory . В противном случае он получает путь к частному каталогу Windows для пользователя.

Примеры

Пример см. в разделе Получение сведений о системе.

Примечание

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

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header sysinfoapi.h (включая Windows.h)
Библиотека Kernel32.lib
DLL Kernel32.dll

См. также

GetCurrentDirectory

GetSystemDirectory

GetSystemWindowsDirectory

Функции сведений о системе