Método IShellLibrary::Save (shobjidl_core.h)
Salva a biblioteca em um novo arquivo Descrição da Biblioteca (*.library-ms).
Sintaxe
HRESULT Save(
[in] IShellItem *psiFolderToSaveIn,
[in] LPCWSTR pszLibraryName,
[in] LIBRARYSAVEFLAGS lsf,
[out] IShellItem **ppsiSavedTo
);
Parâmetros
[in] psiFolderToSaveIn
Tipo: IShellItem*
O objeto IShellItem que especifica a pasta na qual salvar a biblioteca ou NULL para salvar a biblioteca com as bibliotecas padrão do usuário na pasta FOLDERID_Libraries conhecida.
[in] pszLibraryName
Tipo: LPCWSTR
O nome do arquivo no qual salvar a biblioteca. O nome do arquivo não deve incluir a extensão de nome de arquivo; a extensão de nome de arquivo é adicionada automaticamente.
[in] lsf
Tipo: LIBRARYSAVEFLAGS
O valor LIBRARYSAVEFLAGS que especifica como lidar com uma colisão de nome de biblioteca.
[out] ppsiSavedTo
Tipo: IShellItem**
O objeto IShellItem que representa o arquivo de descrição da biblioteca no qual a biblioteca foi salva.
Retornar valor
Tipo: HRESULT
Se o método for bem-sucedido, ele retornará S_OK. Caso contrário, ele retornará um código de erro HRESULT.
Comentários
IShellLibrary::Save e SHSaveLibraryInFolderPath criam um novo arquivo de biblioteca e salvam o arquivo em disco. Para salvar as alterações feitas em uma biblioteca que tem um arquivo de biblioteca existente, chame IShellLibrary::Commit.
Se a biblioteca for salva na pasta conhecida Bibliotecas (FOLDERID_Libraries), o local da biblioteca será adicionado automaticamente ao índice do sistema.
Para conveniência, SHSaveLibraryInFolderPath pode ser usado no lugar desse método.
Exemplos
O exemplo de código a seguir mostra a função auxiliar SHSaveLibraryInFolderPath, que encapsula esse 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 | Valor |
---|---|
Cliente mínimo com suporte | Windows 7 [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2008 R2 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | shobjidl_core.h (inclua Shobjidl.h) |