public HRESULT SaveInKnownFolder([NativeTypeName("const KNOWNFOLDERID &")] Guid *kfidToSaveIn, [NativeTypeName("LPCWSTR")] ushort *pszLibraryName, LIBRARYSAVEFLAGS lsf, IShellItem **ppsiSavedTo)
 {
     return(((delegate * unmanaged <IShellLibrary *, Guid *, ushort *, LIBRARYSAVEFLAGS, IShellItem **, int>)(lpVtbl[19]))((IShellLibrary *)Unsafe.AsPointer(ref this), kfidToSaveIn, pszLibraryName, lsf, ppsiSavedTo));
 }
    public static HRESULT SHSaveLibraryInFolderPath(IShellLibrary *plib, [NativeTypeName("PCWSTR")] ushort *pszFolderPath, [NativeTypeName("PCWSTR")] ushort *pszLibraryName, LIBRARYSAVEFLAGS lsf, [NativeTypeName("PWSTR *")] ushort **ppszSavedToPath)
    {
        if ((ppszSavedToPath) != null)
        {
            *ppszSavedToPath = null;
        }

        IShellItem *psiFolder;
        HRESULT     hr = SHCreateItemFromParsingName(pszFolderPath, null, __uuidof <IShellItem>(), (void **)(&psiFolder));

        if ((((int)(hr)) >= 0))
        {
            IShellItem *psiSavedTo;

            hr = plib->Save(psiFolder, pszLibraryName, lsf, &psiSavedTo);
            if ((((int)(hr)) >= 0))
            {
                if ((ppszSavedToPath) != null)
                {
                    hr = psiSavedTo->GetDisplayName(SIGDN_DESKTOPABSOLUTEPARSING, ppszSavedToPath);
                }

                _ = psiSavedTo->Release();
            }

            _ = psiFolder->Release();
        }

        return(hr);
    }
 public HRESULT Save(IShellItem *psiFolderToSaveIn, [NativeTypeName("LPCWSTR")] ushort *pszLibraryName, LIBRARYSAVEFLAGS lsf, IShellItem **ppsiSavedTo)
 {
     return(((delegate * unmanaged <IShellLibrary *, IShellItem *, ushort *, LIBRARYSAVEFLAGS, IShellItem **, int>)(lpVtbl[18]))((IShellLibrary *)Unsafe.AsPointer(ref this), psiFolderToSaveIn, pszLibraryName, lsf, ppsiSavedTo));
 }