public static void ILFree2(PIDLIST_ABSOLUTE ppidl) { if (ppidl.LPITEMIDLIST != IntPtr.Zero) { Marshal.FreeCoTaskMem(ppidl.LPITEMIDLIST); } }
public static extern int SHGetSpecialFolderLocation(IntPtr hwnd, int csidl, out PIDLIST_ABSOLUTE ppidl);
public static extern int SHGetIDListFromObject([MarshalAs(UnmanagedType.Interface)] object punk, out PIDLIST_ABSOLUTE ppidl);
public static extern int SHGetKnownFolderIDList( [In, MarshalAs(UnmanagedType.LPStruct)] Guid rfid, uint dwFlags, IntPtr hToken, out PIDLIST_ABSOLUTE ppidl);
public static extern int SHCreateItemFromIDList(PIDLIST_ABSOLUTE pidl, [In, MarshalAs(UnmanagedType.LPStruct)] Guid riid, out IShellItem ppv);
public static extern void ILFree(PIDLIST_ABSOLUTE ppidl);