Метод IShellLinkA::SetRelativePath (shobjidl_core.h)
Задает относительный путь к объекту ссылки оболочки.
Синтаксис
HRESULT SetRelativePath(
LPCSTR pszPathRel,
DWORD dwReserved
);
Параметры
pszPathRel
Тип: LPCTSTR
Адрес буфера, содержащего полный путь к файлу ярлыка, относительно которого должно быть выполнено разрешение ярлыка. Это должно быть имя файла, а не имя папки.
dwReserved
Тип: DWORD
Зарезервировано. Задайте для этого параметра нулевое значение.
Возвращаемое значение
Тип: HRESULT
Если этот метод завершается успешно, он возвращает S_OK. В противном случае возвращается код ошибки HRESULT .
Комментарии
Клиенты обычно определяют относительную ссылку, когда она может быть перемещена вместе с целевым объектом, что приводит к тому, что абсолютный путь становится недопустимым. Метод SetRelativePath можно использовать, чтобы помочь процессу разрешения ссылок найти свой целевой объект на основе общего префикса пути между целевым и относительным путем. Чтобы упростить процесс разрешения, клиенты должны задать относительный путь в рамках процесса создания ссылки.
Примеры
Рассмотрим следующий сценарий.
- У вас есть ссылка: c:\MyLink.lnk.
- Целевой объект ссылки c:\MyDocs\MyFile.txt.
- Вы хотите переместить ссылку и MyDocs\MyFile.txt в папку d:\.
::SetRelativePath("c:\MyLink.lnk", NULL);
Перед разрешением ярлыка задайте новый относительный путь, и код разрешения найдет файл в новом расположении.
::SetRelativePath("d:\MyLink.lnk", NULL);
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | shobjidl_core.h |
DLL | Shell32.dll (версия 4.0 или более поздняя) |
См. также раздел
IShellLinkA
IShellLinkW