IShellLinkW::SetRelativePath メソッド (shobjidl_core.h)

シェル リンク オブジェクトへの相対パスを設定します。

構文

HRESULT SetRelativePath(
  LPCWSTR pszPathRel,
  DWORD   dwReserved
);

パラメーター

pszPathRel

型: LPCTSTR

ショートカットの解決を実行する相対パスを表す、ショートカット ファイルの完全修飾パスを含むバッファーのアドレス。 フォルダー名ではなく、ファイル名にする必要があります。

dwReserved

型: DWORD

予約済み。 このパラメーターを 0 に設定します。

戻り値

種類: HRESULT

このメソッドは、成功すると S_OK を返します。 そうでない場合は、HRESULT エラー コードを返します。

注釈

クライアントは、通常、相対リンクがターゲットと共に移動される可能性がある場合に定義され、絶対パスが無効になります。 SetRelativePath メソッドは、リンク解決プロセスがターゲットと相対パスの間の共通パス プレフィックスに基づいてターゲットを見つけるのに役立ちます。 解決プロセスを支援するために、クライアントはリンク作成プロセスの一部として相対パスを設定する必要があります。

以下のシナリオについて考えてみます。

  • リンクがあります: c:\MyLink.lnk。
  • リンク 先が c:\MyDocs\MyFile.txt。
  • リンクを移動し、MyDocs\MyFile.txt を d:\ に移動します。
ショートカットを保存する前に、相対パスを含む元のリンクを作成することで、解決プロセスを支援できます。
::SetRelativePath("c:\MyLink.lnk", NULL);

ショートカットを解決する前に、新しい相対パスを設定すると、Resolve コードによって新しい場所にファイルが見つかります。

::SetRelativePath("d:\MyLink.lnk", NULL);

要件

要件
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー shobjidl_core.h
[DLL] Shell32.dll (バージョン 4.0 以降)

こちらもご覧ください

IShellLink

IShellLink::Resolve

IShellLink::SetIDList

IShellLink::SetPath

IShellLinkA

IShellLinkW