Win32 API 日本語リファレンス
ホームUI.Shell › IShellLinkW

IShellLinkW

COM
IID000214f9-0000-0000-c000-000000000046継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

シェルリンクを作成、変更、解決するメソッドを公開します。(Unicode)

解説(Remarks)

メモ このインターフェイスを使用して URL へのリンクを作成することはできません。
IShellLink インターフェイスには ANSI 版 (IShellLinkA) と Unicode 版 (IShellLinkW) があります。どちらが使用されるかは、ANSI と Unicode のどちらでコンパイルするかによって決まります。
メモ

shobjidl_core.h ヘッダーは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI 版または Unicode 版を自動的に選択するエイリアスとして IShellLink を定義します。エンコーディング中立なエイリアスの使用を、エンコーディング中立でないコードと混在させると、不一致が生じてコンパイルエラーや実行時エラーの原因となる場合があります。詳細については、関数プロトタイプの規約 を参照してください。

メソッド 18

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT GetPath(LPWSTR pszFile, INT cch, WIN32_FIND_DATAW* pfd, DWORD fFlags)

シェルリンクオブジェクトのターゲットのパスとファイル名を取得します。(Unicode)

pszFileLPWSTRoutシェルリンクオブジェクトのターゲットのパスとファイル名を受け取るバッファのアドレスです。
cchINTinpszFile パラメーターが指すバッファのサイズ (文字数)。終端の null 文字を含みます。返すことができるパスの最大サイズは MAX_PATH です。このパラメーターは一般に ARRAYSIZE(pszFile) を呼び出して設定します。ARRAYSIZE マクロは Winnt.h で定義されています。
pfdWIN32_FIND_DATAW*inoutシェルリンクオブジェクトのターゲットに関する情報を受け取る WIN32_FIND_DATA 構造体へのポインターです。このパラメーターが NULL の場合、追加情報は返されません。
fFlagsDWORDin

取得するパス情報の種類を指定するフラグです。このパラメーターには、次の値の組み合わせを指定できます。

SLGP_SHORTPATH

標準の短い (8.3 形式) ファイル名を取得します。

SLGP_UNCPRIORITY

サポートされていません。使用しないでください。

SLGP_RAWPATH

生 (raw) のパス名を取得します。生のパスは存在しない可能性があり、展開が必要な環境変数を含むことがあります。

SLGP_RELATIVEPRIORITY

Windows Vista 以降。可能であれば、IShellLink::SetRelativePath の以前の呼び出しで設定されたパスを基準とした、ショートカットのターゲットの相対パスを取得します。

- fFlags.SLGP_RAWPATH

生 (raw) のパス名を取得します。生のパスは存在しない可能性があり、展開が必要な環境変数を含むことがあります。

- fFlags.SLGP_RELATIVEPRIORITY

Windows Vista 以降。可能であれば、IShellLink::SetRelativePath の以前の呼び出しで設定されたパスを基準とした、ショートカットのターゲットの相対パスを取得します。

- fFlags.SLGP_SHORTPATH

標準の短い (8.3 形式) ファイル名を取得します。

- fFlags.SLGP_UNCPRIORITY

サポートされていません。使用しないでください。

戻り値

型: HRESULT

操作が成功し、有効なパスが取得された場合は S_OK を返します。操作は成功したがパスが取得されなかった場合は S_FALSE を返し、pszFile は空になります。それ以外の場合は、標準の HRESULT エラー値のいずれかを返します。

vtbl 4 HRESULT GetIDList(ITEMIDLIST** ppidl)

シェルリンクオブジェクトのターゲットの項目識別子リストを取得します。(Unicode)

ppidlITEMIDLIST**outこのメソッドが返るとき、PIDL のアドレスが格納されます。

戻り値

型: HRESULT

操作が成功し、1 つ以上の有効な PIDL が取得された場合は S_OK を返します。操作は成功したが PIDL が取得されなかった場合は、ppidlNULL に設定して S_FALSE を返します。それ以外の場合は、標準のエラー値を返します。

vtbl 5 HRESULT SetIDList(ITEMIDLIST* pidl)

シェルリンクオブジェクトの項目識別子リスト (PIDL) へのポインターを設定します。(Unicode)

pidlITEMIDLIST*inオブジェクトの完全修飾 PIDL です。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

このメソッドは、コントロールパネルアプリケーション、プリンター、別のコンピューターなど、ファイルではないオブジェクトへのシェルリンクを設定する必要がある場合に役立ちます。

vtbl 6 HRESULT GetDescription(LPWSTR pszName, INT cch)

シェルリンクオブジェクトの説明文字列を取得します。(Unicode)

pszNameLPWSTRout説明文字列を受け取るバッファへのポインターです。
cchINTinpszName パラメーターが指すバッファにコピーする最大文字数です。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

Windows 2000 以降では、pszName に返される文字列の最大長は INFOTIPSIZE です。Windows 2000 より前のシステムでは、文字列のサイズは MAX_PATH に制限されます。

vtbl 7 HRESULT SetDescription(LPWSTR pszName)

シェルリンクオブジェクトの説明を設定します。説明には、アプリケーションが定義する任意の文字列を指定できます。(Unicode)

pszNameLPWSTRin新しい説明文字列を含むバッファへのポインターです。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

Windows 2000 以降では、pszName で指定する文字列は INFOTIPSIZE 以下でなければなりません。Windows 2000 より前のシステムでは、文字列のサイズは MAX_PATH に制限されます。

vtbl 8 HRESULT GetWorkingDirectory(LPWSTR pszDir, INT cch)

シェルリンクオブジェクトの作業ディレクトリ名を取得します。(Unicode)

pszDirLPWSTRout作業ディレクトリ名を受け取るバッファのアドレスです。
cchINTinpszDir パラメーターが指すバッファにコピーする最大文字数です。作業ディレクトリ名がこのパラメーターで指定した最大値より長い場合は切り詰められます。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 9 HRESULT SetWorkingDirectory(LPWSTR pszDir)

シェルリンクオブジェクトの作業ディレクトリ名を設定します。(Unicode)

pszDirLPWSTRin新しい作業ディレクトリ名を含むバッファのアドレスです。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

作業ディレクトリは、ターゲットが作業ディレクトリを必要とする場合を除き、省略可能です。たとえば、別のディレクトリにあるテンプレートを使用する Microsoft Word 文書へのシェルリンクをアプリケーションが作成する場合、このメソッドを使用して作業ディレクトリを設定します。

vtbl 10 HRESULT GetArguments(LPWSTR pszArgs, INT cch)

シェルリンクオブジェクトに関連付けられたコマンドライン引数を取得します。(Unicode)

pszArgsLPWSTRoutこのメソッドが正常に返るときにコマンドライン引数を受け取るバッファへのポインターです。
cchINTinpszArgs パラメーターで指定されたバッファにコピーできる最大文字数です。Unicode 文字列の場合、文字列の最大長に制限はありません。ANSI 文字列の場合、返される文字列の最大長は Windows のバージョンによって異なり、Windows 2000 より前では MAX_PATH、Windows 2000 以降では INFOTIPSIZE (Commctrl.h で定義) です。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

Windows 7 以降では、このメソッドではなく IPropertyStore (PKEY_Link_Arguments 値を使用) を通じて引数文字列を取得することを推奨します。このメソッドは、指定されたバッファが十分な大きさでない場合に文字列を暗黙的に切り詰めることがあります。IPropertyStore は正しいサイズの文字列を割り当てます。

vtbl 11 HRESULT SetArguments(LPWSTR pszArgs)

シェルリンクオブジェクトのコマンドライン引数を設定します。(Unicode)

pszArgsLPWSTRin新しいコマンドライン引数を含むバッファへのポインターです。Unicode 文字列の場合、文字列の最大長に制限はありません。ANSI 文字列の場合、返される文字列の最大長は Windows のバージョンによって異なり、Windows 2000 より前では MAX_PATH、Windows 2000 以降では INFOTIPSIZE (Commctrl.h で定義) です。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

このメソッドは、コンパイラーなど、特別なフラグを引数として受け取るアプリケーションへのリンクを作成する場合に役立ちます。

vtbl 12 HRESULT GetHotkey(WORD* pwHotkey)

シェルリンクオブジェクトのキーボードショートカット (ホットキー) を取得します。(Unicode)

pwHotkeyWORD*out

キーボードショートカットのアドレスです。仮想キーコードが下位バイトに、修飾フラグが上位バイトに格納されます。修飾フラグには、次の値の組み合わせを指定できます。

HOTKEYF_ALT

ALT キー

HOTKEYF_CONTROL

CTRL キー

HOTKEYF_EXT

拡張キー

HOTKEYF_SHIFT

SHIFT キー

- pwHotkey.HOTKEYF_ALT

ALT キー

- pwHotkey.HOTKEYF_CONTROL

CTRL キー

- pwHotkey.HOTKEYF_EXT

拡張キー

- pwHotkey.HOTKEYF_SHIFT

SHIFT キー

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 13 HRESULT SetHotkey(WORD wHotkey)

シェルリンクオブジェクトのキーボードショートカット (ホットキー) を設定します。(Unicode)

wHotkeyWORDin新しいキーボードショートカットです。仮想キーコードが下位バイトに、修飾フラグが上位バイトに格納されます。修飾フラグには、IShellLink::GetHotkey メソッドの説明で指定された値の組み合わせを指定できます。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

キーボードショートカットを設定すると、特定のキーの組み合わせを押すことでユーザーがオブジェクトをアクティブにできるようになります。

vtbl 14 HRESULT GetShowCmd(SHOW_WINDOW_CMD* piShowCmd)

シェルリンクオブジェクトの表示コマンドを取得します。(Unicode)

piShowCmdSHOW_WINDOW_CMD*out

コマンドへのポインターです。次のコマンドがサポートされています。

SW_SHOWNORMAL

ウィンドウをアクティブにして表示します。ウィンドウが最小化または最大化されている場合、システムはそれを元のサイズと位置に復元します。アプリケーションは、ウィンドウを初めて表示するときにこのフラグを指定する必要があります。

SW_SHOWMAXIMIZED

ウィンドウをアクティブにして、最大化されたウィンドウとして表示します。

SW_SHOWMINIMIZED

ウィンドウをアクティブにして、最小化されたウィンドウとして表示します。

- piShowCmd.SW_SHOWMAXIMIZED

ウィンドウをアクティブにして、最大化されたウィンドウとして表示します。

- piShowCmd.SW_SHOWMINIMIZED

ウィンドウをアクティブにして、最小化されたウィンドウとして表示します。

- piShowCmd.SW_SHOWNORMAL

ウィンドウをアクティブにして表示します。ウィンドウが最小化または最大化されている場合、システムはそれを元のサイズと位置に復元します。アプリケーションは、ウィンドウを初めて表示するときにこのフラグを指定する必要があります。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

表示コマンドは、対応するオブジェクトの初期表示状態を設定するために使用されます。これは ShowWindow で説明されている SW_xxx 値のいずれかです。

vtbl 15 HRESULT SetShowCmd(SHOW_WINDOW_CMD iShowCmd)

シェルリンクオブジェクトの表示コマンドを設定します。表示コマンドは、ウィンドウの初期表示状態を設定します。(Unicode)

iShowCmdSHOW_WINDOW_CMDin

コマンドです。SetShowCmd は次の ShowWindow コマンドのいずれかを受け付けます。

SW_SHOWNORMAL

ウィンドウをアクティブにして表示します。ウィンドウが最小化または最大化されている場合、システムはそれを元のサイズと位置に復元します。アプリケーションは、ウィンドウを初めて表示するときにこのフラグを指定する必要があります。

SW_SHOWMAXIMIZED

ウィンドウをアクティブにして、最大化されたウィンドウとして表示します。

SW_SHOWMINNOACTIVE

ウィンドウを最小化状態で表示し、現在アクティブなウィンドウをアクティブなままにします。

- iShowCmd.SW_SHOWMAXIMIZED

ウィンドウをアクティブにして、最大化されたウィンドウとして表示します。

- iShowCmd.SW_SHOWMINNOACTIVE

ウィンドウを最小化状態で表示し、現在アクティブなウィンドウをアクティブなままにします。

- iShowCmd.SW_SHOWNORMAL

ウィンドウをアクティブにして表示します。ウィンドウが最小化または最大化されている場合、システムはそれを元のサイズと位置に復元します。アプリケーションは、ウィンドウを初めて表示するときにこのフラグを指定する必要があります。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 16 HRESULT GetIconLocation(LPWSTR pszIconPath, INT cch, INT* piIcon)

シェルリンクオブジェクトのアイコンの場所 (パスとインデックス) を取得します。(Unicode)

pszIconPathLPWSTRoutアイコンを含むファイルのパスを受け取るバッファのアドレスです。
cchINTinpszIconPath パラメーターが指すバッファにコピーする最大文字数です。
piIconINT*outアイコンのインデックスを受け取る値のアドレスです。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 17 HRESULT SetIconLocation(LPWSTR pszIconPath, INT iIcon)

シェルリンクオブジェクトのアイコンの場所 (パスとインデックス) を設定します。(Unicode)

pszIconPathLPWSTRinアイコンを含むファイルのパスを格納するバッファのアドレスです。
iIconINTinアイコンのインデックスです。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 18 HRESULT SetRelativePath(LPWSTR pszPathRel, DWORD dwReserved)

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

pszPathRelLPWSTRinショートカットの解決を実行する際の基準となる、ショートカットファイルの完全修飾パスを含むバッファのアドレスです。フォルダー名ではなく、ファイル名である必要があります。
dwReservedDWORDin予約済みです。このパラメーターには 0 を設定してください。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

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

次のシナリオを考えます。

ショートカットを保存する前に、相対パスを指定して元のリンクを作成することで、解決処理を補助できます。
::SetRelativePath("c:\MyLink.lnk", NULL);

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

::SetRelativePath("d:\MyLink.lnk", NULL);
vtbl 19 HRESULT Resolve(HWND hwnd, DWORD fFlags)

シェルリンクのターゲットが移動または名前変更されていても、そのターゲットを見つけようと試みます。(Unicode)

hwndHWNDinシェルがダイアログボックスの親として使用するウィンドウへのハンドルです。シェルリンクの解決中にユーザーに追加情報の入力を求める必要がある場合、シェルはダイアログボックスを表示します。
fFlagsDWORDin

アクションフラグです。このパラメーターには、次の値の組み合わせを指定できます。

SLR_NO_UI (0x0001)

0x0001。リンクを解決できない場合にダイアログボックスを表示しません。SLR_NO_UI が設定されている場合、fFlags の上位ワードに、リンクの解決に費やす最大時間を指定するタイムアウト値を設定できます。タイムアウト時間内にリンクを解決できない場合、関数は戻ります。上位ワードが 0 に設定されている場合、タイムアウト時間は既定値の 3,000 ミリ秒 (3 秒) に設定されます。値を指定するには、fFlags の上位ワードに希望するタイムアウト時間 (ミリ秒単位) を設定します。

SLR_ANY_MATCH (0x0002)

0x0002。使用されません。

SLR_UPDATE (0x0004)

0x0004。リンクオブジェクトが変更されている場合、そのパスと識別子リストを更新します。SLR_UPDATE が設定されている場合、リンクオブジェクトが変更されたかどうかを判定するために IPersistFile::IsDirty を呼び出す必要はありません。

SLR_NOUPDATE (0x0008)

0x0008。リンク情報を更新しません。

SLR_NOSEARCH (0x0010)

0x0010。検索ヒューリスティックを実行しません。

SLR_NOTRACK (0x0020)

0x0020。分散リンク追跡を使用しません。

SLR_NOLINKINFO (0x0040)

0x0040。分散リンク追跡を無効にします。既定では、分散リンク追跡はボリューム名に基づいて複数のデバイスにわたるリムーバブルメディアを追跡します。また、ドライブ文字が変更されたリモートファイルシステムを追跡するために UNC パスを使用します。SLR_NOLINKINFO を設定すると、両方の種類の追跡が無効になります。

SLR_INVOKE_MSI (0x0080)

0x0080。Windows インストーラーを呼び出します。

SLR_NO_UI_WITH_MSG_PUMP (0x0101)

0x0101。Windows XP 以降

SLR_OFFER_DELETE_WITHOUT_FILE (0x0200)

0x0200。Windows 7 以降。このメソッドがショートカットを解決できない場合、そのショートカットがファイルへのショートカットでなくても、ショートカットを削除するオプションを提供します。

SLR_KNOWNFOLDER (0x0400)

0x0400。Windows 7 以降。ターゲットが既知のフォルダーであり、その既知のフォルダーがリダイレクトされた場合に、変更あり (dirty) として報告します。これは、元のターゲットパスがファイルシステムパスまたは ID リストであり、エイリアス化された既知のフォルダー ID リストでない場合にのみ機能します。

SLR_MACHINE_IN_LOCAL_TARGET (0x0800)

0x0800。Windows 7 以降。ローカルコンピューターを指す UNC ターゲット内のコンピューター名を解決します。この値は SLDF_KEEP_LOCAL_IDLIST_FOR_UNC_TARGET と共に使用されます。

SLR_UPDATE_MACHINE_AND_SID (0x1000)

0x1000。Windows 7 以降。必要に応じて、コンピューター GUID とユーザー SID を更新します。

- fFlags.SLR_ANY_MATCH (0x0002)

0x0002。使用されません。

- fFlags.SLR_INVOKE_MSI (0x0080)

0x0080。Windows インストーラーを呼び出します。

- fFlags.SLR_KNOWNFOLDER (0x0400)

0x0400。Windows 7 以降。ターゲットが既知のフォルダーであり、その既知のフォルダーがリダイレクトされた場合に、変更あり (dirty) として報告します。これは、元のターゲットパスがファイルシステムパスまたは ID リストであり、エイリアス化された既知のフォルダー ID リストでない場合にのみ機能します。

- fFlags.SLR_MACHINE_IN_LOCAL_TARGET (0x0800)

0x0800。Windows 7 以降。ローカルコンピューターを指す UNC ターゲット内のコンピューター名を解決します。この値は SLDF_KEEP_LOCAL_IDLIST_FOR_UNC_TARGET と共に使用されます。

- fFlags.SLR_NOLINKINFO (0x0040)

0x0040。分散リンク追跡を無効にします。既定では、分散リンク追跡はボリューム名に基づいて複数のデバイスにわたるリムーバブルメディアを追跡します。また、ドライブ文字が変更されたリモートファイルシステムを追跡するために UNC パスを使用します。SLR_NOLINKINFO を設定すると、両方の種類の追跡が無効になります。

- fFlags.SLR_NOSEARCH (0x0010)

0x0010。検索ヒューリスティックを実行しません。

- fFlags.SLR_NOTRACK (0x0020)

0x0020。分散リンク追跡を使用しません。

- fFlags.SLR_NOUPDATE (0x0008)

0x0008。リンク情報を更新しません。

- fFlags.SLR_NO_UI (0x0001)

0x0001。リンクを解決できない場合にダイアログボックスを表示しません。SLR_NO_UI が設定されている場合、fFlags の上位ワードに、リンクの解決に費やす最大時間を指定するタイムアウト値を設定できます。タイムアウト時間内にリンクを解決できない場合、関数は戻ります。上位ワードが 0 に設定されている場合、タイムアウト時間は既定値の 3,000 ミリ秒 (3 秒) に設定されます。値を指定するには、fFlags の上位ワードに希望するタイムアウト時間 (ミリ秒単位) を設定します。

- fFlags.SLR_NO_UI_WITH_MSG_PUMP (0x0101)

0x0101。Windows XP 以降

- fFlags.SLR_OFFER_DELETE_WITHOUT_FILE (0x0200)

0x0200。Windows 7 以降。このメソッドがショートカットを解決できない場合、そのショートカットがファイルへのショートカットでなくても、ショートカットを削除するオプションを提供します。

- fFlags.SLR_UPDATE (0x0004)

0x0004。リンクオブジェクトが変更されている場合、そのパスと識別子リストを更新します。SLR_UPDATE が設定されている場合、リンクオブジェクトが変更されたかどうかを判定するために IPersistFile::IsDirty を呼び出す必要はありません。

- fFlags.SLR_UPDATE_MACHINE_AND_SID (0x1000)

0x1000。Windows 7 以降。必要に応じて、コンピューター GUID とユーザー SID を更新します。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

リンクの作成後に、ターゲットの名前や場所が変更されることがあります。IShellLink::Resolve メソッドはまず、リンクに関連付けられたパスを取得します。オブジェクトがすでに存在しない場合や名前が変更されている場合、Resolve はそれを見つけようと試みます。成功し、かつ次の条件が満たされる場合、リンクオブジェクトの読み込み元のファイルは、リンクオブジェクトの新しい状態を反映するように更新されます。

クライアントは、IPersistFile::IsDirty メソッドを呼び出して、リンクオブジェクトが変更されファイルの更新が必要かどうかを判定することもできます。

Resolve はターゲットオブジェクトを見つけるために 2 つの方法を持っています。1 つ目は分散リンク追跡サービスです。このサービスが利用可能な場合、NTFS バージョン 5.0 ボリューム上にあり、そのボリューム内の別の場所に移動されたオブジェクトを見つけることができます。また、他のコンピューター上のボリュームを含め、別の NTFS バージョン 5.0 ボリュームに移動されたオブジェクトも見つけることができます。このサービスの使用を抑制するには、SLR_NOTRACK フラグを設定します。

分散リンク追跡が利用できないか、リンクオブジェクトの検出に失敗した場合、Resolve は検索ヒューリスティックを使用して検出を試みます。まず、オブジェクトの最後に判明しているディレクトリ内で、名前は異なるが同じ属性とファイル作成時刻を持つオブジェクトを探します。次に、オブジェクトの最後に判明しているディレクトリの近辺にあるサブディレクトリを再帰的に検索します。同じ名前または作成時刻を持つオブジェクトを探します。最後に、Resolve はデスクトップおよびその他のローカルボリューム上で一致するオブジェクトを探します。検索ヒューリスティックの使用を抑制するには、SLR_NOSEARCH フラグを設定します。

両方の方法が失敗した場合、システムは場所の入力をユーザーに求めるダイアログボックスを表示します。このダイアログボックスを抑制するには、SLR_NO_UI フラグを設定します。

vtbl 20 HRESULT SetPath(LPWSTR pszFile)

シェルリンクオブジェクトのターゲットのパスとファイル名を設定します。(Unicode)

pszFileLPWSTRin新しいパスを含むバッファのアドレスです。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IShellLinkW "{000214F9-0000-0000-C000-000000000046}"
#usecom global IShellLinkW IID_IShellLinkW "{00021401-0000-0000-C000-000000000046}"
#comfunc global IShellLinkW_GetPath              3 var,int,var,int
#comfunc global IShellLinkW_GetIDList            4 var
#comfunc global IShellLinkW_SetIDList            5 var
#comfunc global IShellLinkW_GetDescription       6 var,int
#comfunc global IShellLinkW_SetDescription       7 wstr
#comfunc global IShellLinkW_GetWorkingDirectory  8 var,int
#comfunc global IShellLinkW_SetWorkingDirectory  9 wstr
#comfunc global IShellLinkW_GetArguments         10 var,int
#comfunc global IShellLinkW_SetArguments         11 wstr
#comfunc global IShellLinkW_GetHotkey            12 var
#comfunc global IShellLinkW_SetHotkey            13 int
#comfunc global IShellLinkW_GetShowCmd           14 var
#comfunc global IShellLinkW_SetShowCmd           15 int
#comfunc global IShellLinkW_GetIconLocation      16 var,int,var
#comfunc global IShellLinkW_SetIconLocation      17 wstr,int
#comfunc global IShellLinkW_SetRelativePath      18 wstr,int
#comfunc global IShellLinkW_Resolve              19 sptr,int
#comfunc global IShellLinkW_SetPath              20 wstr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。