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

IShellLinkDual

COMIDispatch (デュアル)
IDispatch を実装(デュアルインターフェース)。HSP では comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。
IID88a05c00-f000-11ce-8350-444553540000継承元IDispatch呼び出し名前(IDispatch) または vtbl自前メソッド開始 vtbl7

メソッド 16

vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。

vtbl 7 HRESULT get_Path(LPWSTR* pbs)
pbsLPWSTR*outショートカットのターゲットパス文字列を受け取る BSTR ポインタである。
vtbl 8 HRESULT put_Path(LPWSTR bs)
bsLPWSTRinショートカットのターゲットとして設定するパス文字列を指定する。
vtbl 9 HRESULT get_Description(LPWSTR* pbs)
pbsLPWSTR*outショートカットの説明(コメント)文字列を受け取る BSTR ポインタである。
vtbl 10 HRESULT put_Description(LPWSTR bs)
bsLPWSTRinショートカットに設定する説明(コメント)文字列を指定する。
vtbl 11 HRESULT get_WorkingDirectory(LPWSTR* pbs)
pbsLPWSTR*outショートカットの作業ディレクトリのパス文字列を受け取る BSTR ポインタである。
vtbl 12 HRESULT put_WorkingDirectory(LPWSTR bs)
bsLPWSTRinショートカットに設定する作業ディレクトリのパス文字列を指定する。
vtbl 13 HRESULT get_Arguments(LPWSTR* pbs)
pbsLPWSTR*outショートカットのコマンドライン引数文字列を受け取る BSTR ポインタである。
vtbl 14 HRESULT put_Arguments(LPWSTR bs)
bsLPWSTRinショートカットに設定するコマンドライン引数文字列を指定する。
vtbl 15 HRESULT get_Hotkey(INT* piHK)
piHKINT*outショートカットに割り当てられたホットキーの値を受け取るポインタである。下位バイトに仮想キーコード、上位バイトに修飾子フラグが格納される。
vtbl 16 HRESULT put_Hotkey(INT iHK)
iHKINTinショートカットに設定するホットキーの値を指定する。下位バイトに仮想キーコード、上位バイトに修飾子フラグを格納する。
vtbl 17 HRESULT get_ShowCommand(INT* piShowCommand)
piShowCommandINT*outショートカット起動時のウィンドウ表示状態(SW_SHOWNORMAL などの ShowWindow コマンド)を受け取るポインタである。
vtbl 18 HRESULT put_ShowCommand(INT iShowCommand)
iShowCommandINTinショートカット起動時のウィンドウ表示状態(SW_SHOWNORMAL などの ShowWindow コマンド)を指定する。
vtbl 19 HRESULT Resolve(INT fFlags)
fFlagsINTinリンク解決時の動作を制御するフラグ(SLR_ 系の値)を指定する。
vtbl 20 HRESULT GetIconLocation(LPWSTR* pbs, INT* piIcon)
pbsLPWSTR*outアイコンを含むファイルのパス文字列を受け取る BSTR ポインタである。
piIconINT*outそのファイル内のアイコンインデックスを受け取るポインタである。
vtbl 21 HRESULT SetIconLocation(LPWSTR bs, INT iIcon)
bsLPWSTRinアイコンを含むファイルのパス文字列を指定する。
iIconINTinそのファイル内のアイコンインデックスを指定する。
vtbl 22 HRESULT Save(VARIANT vWhere)
vWhereVARIANTinショートカットの保存先パスを示す VARIANT を指定する。省略(VT_EMPTY)した場合は元のパスに保存される。

HSP用 COM定義

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

出力引数:
#define global IID_IShellLinkDual "{88A05C00-F000-11CE-8350-444553540000}"
#usecom global IShellLinkDual IID_IShellLinkDual "{}"
#comfunc global IShellLinkDual_get_Path              7 var
#comfunc global IShellLinkDual_put_Path              8 wstr
#comfunc global IShellLinkDual_get_Description       9 var
#comfunc global IShellLinkDual_put_Description       10 wstr
#comfunc global IShellLinkDual_get_WorkingDirectory  11 var
#comfunc global IShellLinkDual_put_WorkingDirectory  12 wstr
#comfunc global IShellLinkDual_get_Arguments         13 var
#comfunc global IShellLinkDual_put_Arguments         14 wstr
#comfunc global IShellLinkDual_get_Hotkey            15 var
#comfunc global IShellLinkDual_put_Hotkey            16 int
#comfunc global IShellLinkDual_get_ShowCommand       17 var
#comfunc global IShellLinkDual_put_ShowCommand       18 int
#comfunc global IShellLinkDual_Resolve               19 int
#comfunc global IShellLinkDual_GetIconLocation       20 var,var
#comfunc global IShellLinkDual_SetIconLocation       21 wstr,int
#comfunc global IShellLinkDual_Save                  22 int
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。