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


Метод 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 или более поздняя)

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

IShellLink

IShellLink::Resolve

IShellLink::SetIDList

IShellLink::SetPath

IShellLinkA

IShellLinkW