SHBindToParent,获取父pidl

时间:2012-04-30 11:11:14

标签: c++ winapi windows-shell

我正在实现Windows-Explorer-view-like。

首先我通过SHGetSpecialFolderLocation(NULL, CSIDL_DESKTOP, &pidl)获取桌面pidl并将其存储在类属性中。在我的IShellBrowser::BrowseObject被调用之后,我通过此方法传递带有pidl的属性。如果我想上去,我打电话给SHBindToParent,将存储的pidl传递给它,但我得到E_INVALIDARG或桌面pidl。我怀疑我在其中传递了错误的PIDL。

我应该如何获得父级PIDL?

1 个答案:

答案 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) ;

}