IShellLibrary::Save 方法 (shobjidl_core.h)
將連結庫儲存至新的連結庫描述 (*.library-ms) 檔案。
語法
HRESULT Save(
[in] IShellItem *psiFolderToSaveIn,
[in] LPCWSTR pszLibraryName,
[in] LIBRARYSAVEFLAGS lsf,
[out] IShellItem **ppsiSavedTo
);
參數
[in] psiFolderToSaveIn
類型: IShellItem*
IShellItem 物件,指定要儲存連結庫的資料夾,或 NULL,以將連結庫與使用者的預設連結庫一起儲存在FOLDERID_Libraries已知資料夾中。
[in] pszLibraryName
類型: LPCWSTR
要在其中儲存連結庫的檔名。 檔名不得包含擴展名;會自動新增擴展名。
[in] lsf
類型: LIBRARYSAVEFLAGS
LIBRARYSAVEFLAGS 值,指定如何處理連結庫名稱衝突。
[out] ppsiSavedTo
類型: IShellItem**
IShellItem 物件,表示儲存連結庫所在的連結庫描述檔案。
傳回值
類型: HRESULT
如果此方法成功,則會傳回 S_OK。 否則,它會傳回 HRESULT 錯誤碼。
備註
IShellLibrary::Save 和 SHSaveLibraryInFolderPath 會建立新的連結庫檔案,並將檔案儲存至磁碟。 若要儲存對具有現有連結庫檔案的連結庫所做的變更,請呼叫 IShellLibrary::Commit。
如果連結庫儲存在連結庫已知資料夾中 (FOLDERID_Libraries) ,則連結庫的位置會自動新增至系統索引。
為了方便起見, SHSaveLibraryInFolderPath 可用來取代此方法。
範例
下列程式代碼範例顯示協助程式函式 SHSaveLibraryInFolderPath,它會包裝這個方法。
//
// from shobjidl.h
//
__inline HRESULT SHSaveLibraryInFolderPath(
__in IShellLibrary *plib,
__in PCWSTR pszFolderPath,
__in PCWSTR pszLibraryName,
__in LIBRARYSAVEFLAGS lsf,
__deref_opt_out PWSTR *ppszSavedToPath
)
{
if (ppszSavedToPath)
{
*ppszSavedToPath = NULL;
}
IShellItem *psiFolder;
HRESULT hr = SHCreateItemFromParsingName(
pszFolderPath,
NULL,
IID_PPV_ARGS(&psiFolder));
if (SUCCEEDED(hr))
{
IShellItem *psiSavedTo;
hr = plib->Save(psiFolder, pszLibraryName, lsf, &psiSavedTo);
if (SUCCEEDED(hr))
{
if (ppszSavedToPath)
{
hr = psiSavedTo->GetDisplayName(
SIGDN_DESKTOPABSOLUTEPARSING,
ppszSavedToPath);
}
psiSavedTo->Release();
}
psiFolder->Release();
}
return hr;
}
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 7 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2008 R2 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | shobjidl_core.h (包括 Shobjidl.h) |