Método IShellLibrary::Save (shobjidl_core.h)
Guarda la biblioteca en un nuevo archivo de descripción de biblioteca (*.library-ms).
Sintaxis
HRESULT Save(
[in] IShellItem *psiFolderToSaveIn,
[in] LPCWSTR pszLibraryName,
[in] LIBRARYSAVEFLAGS lsf,
[out] IShellItem **ppsiSavedTo
);
Parámetros
[in] psiFolderToSaveIn
Tipo: IShellItem*
Objeto IShellItem que especifica la carpeta en la que se va a guardar la biblioteca, o NULL para guardar la biblioteca con las bibliotecas predeterminadas del usuario en la carpeta FOLDERID_Libraries conocida.
[in] pszLibraryName
Tipo: LPCWSTR
Nombre de archivo en el que se va a guardar la biblioteca. El nombre de archivo no debe incluir la extensión de nombre de archivo; La extensión de nombre de archivo se agrega automáticamente.
[in] lsf
Tipo: LIBRARYSAVEFLAGS
Valor LIBRARYSAVEFLAGS que especifica cómo controlar una colisión de nombres de biblioteca.
[out] ppsiSavedTo
Tipo: IShellItem**
Objeto IShellItem que representa el archivo de descripción de la biblioteca en el que se guardó la biblioteca.
Valor devuelto
Tipo: HRESULT
Si este método se realiza correctamente, devuelve S_OK. De lo contrario, devuelve un código de error de HRESULT.
Comentarios
IShellLibrary::Save y SHSaveLibraryInFolderPath crean un nuevo archivo de biblioteca y guardan el archivo en el disco. Para guardar los cambios realizados en una biblioteca que tiene un archivo de biblioteca existente, llame a IShellLibrary::Commit.
Si la biblioteca se guarda en la carpeta Bibliotecas conocidas (FOLDERID_Libraries), la ubicación de la biblioteca se agrega automáticamente al índice del sistema.
Para mayor comodidad, SHSaveLibraryInFolderPath se puede usar en lugar de este método.
Ejemplos
En el ejemplo de código siguiente se muestra la función auxiliar SHSaveLibraryInFolderPath, que encapsula este método.
//
// 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;
}
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 7 [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2008 R2 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | shobjidl_core.h (include Shobjidl.h) |