SHGetFolderPath winapi

WinApi Функция SHGetFolderPath

Описание:
function SHGetFolderPath(hwnd: HWND; csidl: Integer; hToken: THandle; dwFlags: DWord; pszPath: PAnsiChar): HRESULT;

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

Параметры
hwnd: Хендл окна владельца. Это поараметр обычно равен nil. В случае если не nil, и dial-up связь установлена, то в папке появляется интерфейс ползователя, связанный с программой. {Я так понимаю это просто вы задаете интерфейс при http и ftp соединениях в Проводнике.}

csidl: CSIDL идентифицирующий папку. В силе только реальные папки. В случае если вы передаете CSIDL виртуальной папки, то функция терпит неудачу. Вы можете создать папку обьеденеиф папку CSIDL сфлагом CSIDL_FLAG_CREATE.

hToken: Метка (Токен) доступа, который используется для указания конкретного пользователя. Для систем ранее Win2000, этот параметр должен быть nil. Для поздних систме, этот параметр обычно nil, но может быть использован, для тех папок, которые имею много пользователей, но должны рассматриваться, как будто одного. Наиболее общая папка такого типа это - "Мои документы".

Вызывающий оператор ответсвенен за правильную маркировка токена когда hToken не nil. Он должен иметь подходящие привелегии безопасности, для конкретного пользователя, включая TOKEN_QUERY и TOKEN_IMPERSONATE и ячейка регистрации пользователя должна быть корректна прикреплена(mounted).
Параметр hToken равный -1, указывает на пользователя "по умолчанию". Это позволяет SHGetFolderPath находить путь папки (как например "Рабочий стол") для пользьзователя по умолчанию. Профиль пользователя "по умолчанию" копируется каждый раз, когда создается новый пользователь и включает такие папки как Мои документы" и "Рабочий стол". Любые объекты добавленные к профилю также поялвляются в любом новом созданном пользователе.

dwFlags: Указывает какой путь возвращать. Исползуется для случаев когда папка связанная с CSIDL может быть перемещена или переименована.
SHGFP_TYPE_CURRENT - Возвращает текущий путь папки.
SHGFP_TYPE_DEFAULT - Возвращает путь по умолчанию.

pszPath: Строка длинные не более MAX_PATH, в которую будет возвращен путь. Если произошла ошибка, или возвращается S_FALSE, то эта строка будет пустой.

Возвращаемые значения
Возвращает одно из следующих значений:
S_OK - Вызов успешен.

S_FALSE - nFolder правильный, но папка не существует.
E_INVALIDARG - nFolder неправилный.

Замечания
Эта функция расширяет функцию SHGetSpecialFolderPath, которая включенна в более ранние версии оболочки Windows. Осуществлено на редистрибутивной DLL, которая импортирует многое новые папки Оболочки. Если функция терпит неудачу, то пытается имитировать подходящее поведение. Оно поддерживает только некоторые CSIDL:
CSIDL_ADMINTOOLS, CSIDL_COMMON_ADMINTOOLS, CSIDL_APPDATA, CSIDL_COMMON_APPDATA, CSIDL_COMMON_DOCUMENTS, CSIDL_COOKIES, CSIDL_FLAG_CREATE, CSIDL_HISTORY, CSIDL_INTERNET_CACHE, CSIDL_LOCAL_APPDATA, CSIDL_MYPICTURES, CSIDL_PERSONAL, CSIDL_PROGRAM_FILES, CSIDL_PROGRAM_FILES_COMMON, CSIDL_SYSTEM CSIDL_WINDOWS


Материал взят из:
Русская спpавка по Windows API



Последние из рубрики

ОтменитьДобавить комментарий