static Api.IShellItem _ShellItem(string path, string errMsg) { var pidl = More.PidlFromString(path, true); try { var guid = typeof(Api.IShellItem).GUID; AuException.ThrowIfFailed(Api.SHCreateItemFromIDList(pidl, guid, out var R), errMsg); return(R); } finally { Marshal.FreeCoTaskMem(pidl); } }