Bagikan melalui


IShellLibrary::Metode simpan (shobjidl_core.h)

Menyimpan pustaka ke file Deskripsi Pustaka (*.library-ms) baru.

Sintaks

HRESULT Save(
  [in]  IShellItem       *psiFolderToSaveIn,
  [in]  LPCWSTR          pszLibraryName,
  [in]  LIBRARYSAVEFLAGS lsf,
  [out] IShellItem       **ppsiSavedTo
);

Parameter

[in] psiFolderToSaveIn

Jenis: IShellItem*

Objek IShellItem yang menentukan folder untuk menyimpan pustaka, atau NULL untuk menyimpan pustaka dengan pustaka default pengguna di folder FOLDERID_Libraries diketahui.

[in] pszLibraryName

Jenis: LPCWSTR

Nama file untuk menyimpan pustaka. Nama file tidak boleh menyertakan ekstensi nama file; ekstensi nama file ditambahkan secara otomatis.

[in] lsf

Jenis: LIBRARYSAVEFLAGS

Nilai LIBRARYSAVEFLAGS yang menentukan cara menangani tabrakan nama pustaka.

[out] ppsiSavedTo

Jenis: IShellItem**

Objek IShellItem yang mewakili file deskripsi pustaka tempat pustaka disimpan.

Nilai kembali

Jenis: HRESULT

Jika metode ini berhasil, metode ini mengembalikan S_OK. Jika tidak, kode kesalahan HRESULT akan dikembalikan.

Keterangan

IShellLibrary::Save dan SHSaveLibraryInFolderPath membuat file pustaka baru, dan menyimpan file ke disk. Untuk menyimpan perubahan yang dibuat pada pustaka yang memiliki file pustaka yang sudah ada, panggil IShellLibrary::Commit.

Jika pustaka disimpan di folder Pustaka yang diketahui (FOLDERID_Libraries), lokasi pustaka secara otomatis ditambahkan ke indeks sistem.

Untuk kenyamanan, SHSaveLibraryInFolderPath dapat digunakan sebagai pengganti metode ini.

Contoh

Contoh kode berikut menunjukkan fungsi pembantu SHSaveLibraryInFolderPath, yang membungkus metode ini.

//
// 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;
}

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 7 [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2008 R2 [hanya aplikasi desktop]
Target Platform Windows
Header shobjidl_core.h (termasuk Shobjidl.h)

Lihat juga

IShellLibrary

SHSaveLibraryInFolderPath

Pustaka Windows