如何使用Windows Shell API解析探索器痕迹路径,如"此PC\Galaxy Tab A\Card\Folder1"?

Joa*_*der 6 windows winapi windows-shell

当用户在Windows资源管理器中导航到例如他的Android手机的SD卡上的文件夹时,资源管理器会显示一种痕迹路径,就像"This PC\Galaxy Tab A\Card\Folder1"在地址栏中单击一样.

在地址栏中输入或复制它们并按回车键时,Windows资源管理器也接受这些路径.

我想知道是否有办法使用Shell API解析这些面包屑路径并获得PItemIDListIShellItem作为回报.到目前为止,我没有成功使用eg SHParseDisplayName().这段代码

LPITEMIDLIST itemidlist;
HRESULT hr = SHParseDisplayName(L"This PC\\Galaxy Tab A\\Card\\testfolder", NULL, &itemidlist, 0, NULL);
Run Code Online (Sandbox Code Playgroud)

回来0x80070002HRESULT.

问题SHParseDisplayName当路径不存在这样一个问题涉及如何使用IBindCtx解析到一个并不存在的文件的路径.这可以使用STR_FILE_SYS_BIND_DATA绑定上下文来完成.但是移动设备上的对象不是文件系统数据,而且它们已经存在,所以我不明白为什么这是重复的.