0

Windows-Explorer-view-like を実装しています。

最初にデスクトップ pidl を取得SHGetSpecialFolderLocation(NULL, CSIDL_DESKTOP, &pidl)し、クラス属性に保存します。呼び出された後、IShellBrowser::BrowseObjectこのメソッドを介して渡される pidl で属性を上書きします。上に行きたい場合は、 call を呼び出しSHBindToParent、保存されている pidl をそれに渡しますが、どちらかE_INVALIDARGまたはデスクトップの pidl を取得しました。間違った PIDL を渡していると思われます。

親PIDLを正しく取得するにはどうすればよいですか?

4

1 に答える 1

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

}
于 2012-06-25T16:26:57.820 に答える