using System; using System.Runtime.InteropServices; namespace Vanara.PInvoke { public static partial class Shell32 { /// Exposed by a client to specify how to filter the enumeration of a Shell item by a server application. // https://docs.microsoft.com/en-us/windows/win32/api/shobjidl_core/nn-shobjidl_core-ishellitemfilter [ComImport, InterfaceType(ComInterfaceType.InterfaceIsIUnknown), Guid("2659B475-EEB8-48b7-8F07-B378810F48CF")] public interface IShellItemFilter { /// Sets a given Shell item status to inclusion in the view. /// /// Type: IShellItem* /// A pointer to the Shell item that is to be included in the view. /// /// /// Type: HRESULT /// If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code. /// /// /// The host calls this method for each item in the folder. Returns S_OK to have the item enumerated for inclusion in the view. /// Returns S_FALSE to prevent the item from being enumerated for inclusion in the view. /// // https://docs.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-ishellitemfilter-includeitem HRESULT // IncludeItem( IShellItem *psi ); [PreserveSig] HRESULT IncludeItem([In] IShellItem psi); /// /// Allows a client to specify which classes of objects in a Shell item should be enumerated for inclusion in the view. /// /// /// Type: IShellItem* /// A pointer to the Shell item for which the SHCONTF enum flags are to be retrieved. /// /// /// Type: SHCONTF* /// /// A pointer to the SHCONTF enum flags for the given Shell item that specifies which classes of objects to enumerate for /// inclusion in the view. /// /// /// /// Type: HRESULT /// If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code. /// // https://docs.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-ishellitemfilter-getenumflagsforitem // HRESULT GetEnumFlagsForItem( IShellItem *psi, SHCONTF *pgrfFlags ); [PreserveSig] HRESULT GetEnumFlagsForItem([In] IShellItem psi, out SHCONTF pgrfFlags); } } }