我正在实现Windows-Explorer-view-like。
首先我通过SHGetSpecialFolderLocation(NULL, CSIDL_DESKTOP, &pidl)
获取桌面pidl并将其存储在类属性中。在我的IShellBrowser::BrowseObject
被调用之后,我通过此方法传递带有pidl的属性。如果我想上去,我打电话给SHBindToParent
,将存储的pidl传递给它,但我得到E_INVALIDARG
或桌面pidl。我怀疑我在其中传递了错误的PIDL。
我应该如何获得父级PIDL?
答案 0 :(得分:1)
// C#
[System.Runtime.InteropServices.DllImportAttribute("shell32.dll", EntryPoint="ILRemoveLastID")]
[return: System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.Bool)]
public static extern bool ILRemoveLastID(System.IntPtr pidl) ;
}