Freigeben über


IShellLibrary::Save-Methode (shobjidl_core.h)

Speichert die Bibliothek in einer neuen Bibliotheksbeschreibungsdatei (*.library-ms).

Syntax

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

Parameter

[in] psiFolderToSaveIn

Typ: IShellItem*

Das IShellItem-Objekt , das den Ordner angibt, in dem die Bibliothek gespeichert werden soll, oder NULL , um die Bibliothek mit den Standardbibliotheken des Benutzers im FOLDERID_Libraries bekannten Ordner zu speichern.

[in] pszLibraryName

Typ: LPCWSTR

Der Dateiname, unter dem die Bibliothek gespeichert werden soll. Der Dateiname darf nicht die Dateinamenerweiterung enthalten. die Dateinamenerweiterung wird automatisch hinzugefügt.

[in] lsf

Typ: LIBRARYSAVEFLAGS

Der LIBRARYSAVEFLAGS-Wert , der angibt, wie eine Bibliotheksnamenkollision behandelt werden soll.

[out] ppsiSavedTo

Typ: IShellItem**

Das IShellItem-Objekt , das die Bibliotheksbeschreibungsdatei darstellt, in der die Bibliothek gespeichert wurde.

Rückgabewert

Typ: HRESULT

Wenn diese Methode erfolgreich ist, wird S_OK zurückgegeben. Andernfalls wird ein Fehlercode HRESULT zurückgegeben.

Hinweise

IShellLibrary::Save und SHSaveLibraryInFolderPath erstellen eine neue Bibliotheksdatei, und speichern Sie die Datei auf dem Datenträger. Rufen Sie IShellLibrary::Commit auf, um Änderungen an einer Bibliothek zu speichern, die über eine vorhandene Bibliotheksdatei verfügt.

Wenn die Bibliothek im bekannten Ordner Bibliotheken (FOLDERID_Libraries) gespeichert wird, wird der Speicherort der Bibliothek automatisch dem Systemindex hinzugefügt.

Der Einfachheit halber kann SHSaveLibraryInFolderPath anstelle dieser Methode verwendet werden.

Beispiele

Das folgende Codebeispiel zeigt die Hilfsfunktion SHSaveLibraryInFolderPath, die diese Methode umschließt.

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

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 7 [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 R2 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile shobjidl_core.h (einschließlich Shobjidl.h)

Weitere Informationen

IShellLibrary

SHSaveLibraryInFolderPath

Windows-Bibliotheken