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::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 ライブラリ