SHGetFolderPathAndSubDir

WinApi Функция SHGetFolderPathAndSubDir

Описание:
function SHGetFolderPathAndSubDir(hwnd: HWND; csidl: Integer; hToken: THandle; dwFlags: DWord; pszSubDir,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, указывает на пользователя "по умолчанию". Это позволяет SHGetFolderPathAndSubDir находить путь папки (как например "Рабочий стол") для пользьзователя по умолчанию. Профиль пользователя "по умолчанию" копируется каждый раз, когда создается новый пользователь и включает такие папки как Мои документы" и "Рабочий стол". Любые объекты добавленные к профилю также поялвляются в любом новом созданном пользователе.

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

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

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

Возвращаемые значения
Возвращает ошибук определенную в стандарте OLE или следующее значение:

Возвращает стандарт определивший результат ошибки OLE или одно из следующего оценивается.
S_OK - Вызов успешен.
S_FALSE - nFolder правильный, но папка не существует.
E_INVALIDARG - nFolder неправилный.

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



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

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