0
我有一個控制面板項目的外殼文件夾。我正在嘗試獲取ITEMIDLIST。我有殼牌文件夾GUID。IShellFolder :: ParseDisplayName獲取控制面板的ITEMIDLIST項目
由文檔
https://msdn.microsoft.com/en-us/library/windows/desktop/bb775090%28v=vs.85%29.aspx 和
https://msdn.microsoft.com/en-us/LIBRary/ms909875.aspx,這並不一致
,我也可以在導航::桌面文件夾{GUID}語法指定顯示名稱的狀態,我試圖去
::{CLSID for Control Panel}\::{CLSID for my Shell folder}.
但是這不起作用,因爲我最終與控制小組的ITEMIDLIST。如何將ITEMIDLIST獲取到控制面板項目?
隨着@Denis Anisimov建議的答案,我仍然面臨着ParseDisplayName的問題。
int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
{
HRESULT hres;
LPSHELLFOLDER cPanel;
LPSHELLFOLDER DesktopFolder;
LPITEMIDLIST cpItemPidl;
LPITEMIDLIST pidl;
SHGetDesktopFolder(&DesktopFolder);
SHGetKnownFolderIDList(FOLDERID_ControlPanelFolder, CSIDL_CONTROLS, NULL, &pidl);
hres = DesktopFolder->BindToObject(pidl, NULL, IID_IShellFolder, (void**)&cPanel);
LPWSTR SFOLDERGUID = L"::{025A5937-A6BE-4686-A844-36FE4BEC8B6D}";
hres = cPanel->ParseDisplayName(NULL, NULL, SFOLDERGUID, NULL, &cpItemPidl, NULL);
}
我得到HRES作爲
E_INVALIDARG One or more arguments are invalid.
試過,但ControlPanelFolder-> ParseDisplayName沒有按」當我傳遞_T(:: GUID)作爲顯示名時,t工作。 – Peaked
什麼是ParseDisplayName的HRESULT?如果你顯示你的代碼會更好。 –
hres是E_INVALIDARG一個或多個參數無效。 我將顯示名稱作爲:: {GUID} – Peaked