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