SHGetNewLinkInfoA 函式 (shellapi.h)
根據快捷方式的建議目標,建立新快捷方式的名稱。 此函式不會建立快捷方式,只是名稱。
語法
BOOL SHGetNewLinkInfoA(
[in] LPCSTR pszLinkTo,
[in] LPCSTR pszDir,
[out] LPSTR 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 版或更新版本) |