共用方式為


SHGetNewLinkInfoW 函式 (shellapi.h)

根據快捷方式的建議目標,建立新快捷方式的名稱。 此函式不會建立快捷方式,只是名稱。

語法

BOOL SHGetNewLinkInfoW(
  [in]  LPCWSTR pszLinkTo,
  [in]  LPCWSTR pszDir,
  [out] LPWSTR  pszName,
  [out] BOOL    *pfMustCopy,
  [in]  UINT    uFlags
);

參數

[in] pszLinkTo

類型:LPCTSTR

快捷方式目標路徑和檔名的指標。 如果 uFlags 不包含 SHGNLI_PIDL 值,則此參數是包含目標之 null 終止字串的位址。 如果 uFlags 包含 SHGNLI_PIDL 值,則此參數是代表目標的 PIDL。

[in] pszDir

類型:LPCTSTR

Null 終止字串的指標,其中包含要在其中建立快捷方式之資料夾的路徑。

[out] pszName

類型:LPTSTR

字串的指標,這個字串會接收快捷方式的 Null 終止路徑和檔名。 此緩衝區假設大小至少MAX_PATH個字元。

[out] pfMustCopy

類型:BOOL*

BOOL 的位址 值,這個值會接收指出是否複製快捷方式的旗標。 建立另一個快捷方式的快捷方式時,Shell 只會複製目標快捷方式,並適當地修改複製快捷方式。 如果 pszLinkTo 中指定的目標 指定會導致複製目標快捷方式的快捷方式,此參數就會收到非零值。 如果目標未指定要複製的快捷方式,此參數就會接收零。

[in] uFlags

類型:UINT

函式的選項。 這可以是零或下列值的組合。

SHGNLI_PIDL(0x000000001)

0x000000001。 pszLinkTo 所指向的目標是代表目標的 PIDL。 如果未包含此旗標,pszLinkTo 會被視為包含目標路徑和檔名的字串位址。

SHGNLI_NOUNIQUE (0x000000002)

0x000000002。 略過一般檢查,以確保快捷方式名稱在目的地資料夾內是唯一的。 如果未包含此旗標,函式會建立快捷方式名稱,然後判斷該名稱在目的地資料夾中是否是唯一的。 如果目的地資料夾中已經有具有相同名稱的檔案,則會修改快捷方式名稱。 此程式會重複執行,直到找到唯一名稱為止。

SHGNLI_PREFIXNAME (0x000000004)

0x000000004。 建立的名稱前面會加上字串 「Shortcut to 」 。

SHGNLI_NOLNK (0x000000008)

0x000000008。 5.0 版 請勿新增.lnk擴展名。 您必須將 _WIN32_IE 巨集設定為 5.01 或更高版本,才能使用此旗標。 如需版本設定的詳細資訊,請參閱殼層和通用控件版本。

SHGNLI_NOLOCNAME(0x000000010)

0x000000010。 Windows Vista 和更新版本。 使用 pszLinkTo 所指向之目標的非當地語系化剖析名稱, 做為快捷方式檔案的名稱。 如果未設定此旗標,則會使用本地化的名稱。

SHGNLI_USEURLEXT(0x000000020)

0x000000020。 Windows 7 和更新版本。 將 .url 擴展名 (而不是.lnk) 附加至 pszName 所指向的名稱。 如果未設定此旗標,除非已設定SHGNLI_NOLNK,否則快捷方式名稱會使用.lnk延伸模組。

傳回值

類型:BOOL

如果成功,則會傳回 TRUE;否則,FALSE

言論

SHGetNewLinkInfo 會決定目的地檔案系統是否支援長檔名。 如果這樣做,則會使用長檔名作為快捷方式名稱。 如果目的地檔案系統不支援長檔名,則會以 8.3 格式傳回快捷方式名稱。

注意

shellapi.h 標頭會將SHGetNewLinkInfo定義為別名,根據UNICODE預處理器常數的定義,自動選取此函式的ANSI或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的 慣例。

要求

要求 價值
最低支援的用戶端 Windows 2000 Professional、Windows XP、Windows 7 [僅限傳統型應用程式]
支援的最低伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平臺 窗戶
標頭 shellapi.h
連結庫 Shell32.lib
DLL Shell32.dll (4.71 版或更新版本)