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) |