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::SaveSHSaveLibraryInFolderPath 會建立新的連結庫檔案,並將檔案儲存至磁碟。 若要儲存對具有現有連結庫檔案的連結庫所做的變更,請呼叫 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)

另請參閱

IShellLibrary

SHSaveLibraryInFolderPath

Windows 媒體櫃