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

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

構文

HRESULT SetRelativePath(
  LPCSTR 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