internal static extern PIDL ILFindLastID(PIDL pidl);
 internal static extern IntPtr SHGetFileInfo(PIDL pidl, UInt32 dwFileAttributes, ref SHFILEINFO psfi,
                                             UInt32 cbFileInfo, UInt32 uFlags);
        internal static IntPtr SHGetFileInfo(PIDL pidl, UInt32 dwFileAttributes, ref SHFILEINFO psfi, UInt32 uFlags)
        {
            var cbFileInfo = (UInt32)Marshal.SizeOf(psfi);

            return(SHGetFileInfo(pidl, dwFileAttributes, ref psfi, cbFileInfo, (UInt32)uFlags));
        }
 internal static extern void SHBindToParent(
     [In][MarshalAs(UnmanagedType.Struct)] PIDL pidl,
     [In][MarshalAs(UnmanagedType.LPStruct)] Guid riid,
     [MarshalAs(UnmanagedType.Interface)] out IShellFolder pParentShellFolder,
     IntPtr ppidlLast = default(IntPtr));