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::SaveSHSaveLibraryInFolderPath 는 새 라이브러리 파일을 만들고 파일을 디스크에 저장합니다. 기존 라이브러리 파일이 있는 라이브러리에 대한 변경 내용을 저장하려면 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 포함)

추가 정보

IShellLibrary

SHSaveLibraryInFolderPath

Windows 라이브러리