我的应用程序接收一个 PIDL 作为字符串:
QString pidl = "::{20D04FE1-3AEA-1069-A2D8-08002B30309B}";
在这种情况下,它对应于My Computer
。我需要将其转换为My Computer
.
有一个 WINAPI 函数SHGetPathFromIDList
,它需要LPCITEMIDLIST
作为第一个参数并将其转换为字符串。
我怎样才能建立它LPCITEMIDLIST
?
更新
这是我到目前为止得到的:
LPCWSTR csPath = (LPCWSTR)"::{20D04FE1-3AEA-1069-A2D8-08002B30309B}";
LPITEMIDLIST stId = 0;
SFGAOF stSFGAOFIn = 0;
SFGAOF stSFGAOFOut = 0;
if(!FAILED(SHParseDisplayName(csPath, 0, stId, stSFGAOFIn, &stSFGAOFOut)))
msgBox("not failed")
不幸的是,这段代码崩溃了。