using System;
using System.Runtime.InteropServices;
using System.Runtime.InteropServices.ComTypes;
namespace Vanara.PInvoke
{
public static partial class Shell32
{
/// Provides a method to update the ITEMIDLIST of the child of an folder object.
///
/// When to Implement
/// Implement this interface for an IShellFolder implementation to update the provided child ITEMIDLIST.
///
// https://docs.microsoft.com/en-us/windows/win32/api/shobjidl_core/nn-shobjidl_core-iupdateidlist
[PInvokeData("shobjidl_core.h", MSDNShortId = "NN:shobjidl_core.IUpdateIDList")]
[ComImport, Guid("6589b6d2-5f8d-4b9e-b7e0-23cdd9717d8c"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IUpdateIDList
{
/// Updates the provided child ITEMIDLIST based on the parameters specified by the provided IBindCtx.
///
/// Type: IBindCtx*
///
/// An IBindCtx interface on a bind context object. Used to specify parameters for updating the child ITEMIDLIST. This value can
/// be NULL.
///
///
///
/// Type: PCUITEMID_CHILD
/// The child ITEMIDLIST.
///
///
/// Type: PITEMID_CHILD*
/// A pointer to the child ITEMIDLIST relative to the parent folder.
///
///
/// Type: HRESULT
/// If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.
///
///
/// If pbc is NULL or does not contain any parameters that apply to the current Shell folder, ppidlOut points to the same
/// ITEMIDLIST as pidlIn.
///
// https://docs.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-iupdateidlist-update HRESULT Update(
// IBindCtx *pbc, PCUITEMID_CHILD pidlIn, PITEMID_CHILD *ppidlOut );
[PreserveSig]
HRESULT Update([In, Optional] IBindCtx pbc, [In] PIDL pidlIn, out PIDL ppidlOut);
}
}
}