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 개체이거나, FOLDERID_Libraries 알려진 폴더에 사용자의 기본 라이브러리를 사용하여 라이브러리를 저장할 NULL 입니다.
[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 포함) |