描述:
用IShellLink接口的SetPath设置对象的路径时,如果指定参数为url(比如http://www.baidu.com)时,右键查看文件属性发现为只读,灰色不能更改,而且利用IShellLink接口的GetPath也无法获取先前通过SetPath设置的路径(http://www.baidu.com),请问一下如果可以获取这个路径?
下面是代码:
::CoInitialize(NULL);
CComPtr<IShellLink> spShellLink;
HRESULT hr=spShellLink.CoCreateInstance(CLSID_ShellLink);
CComPtr<IPersistFile> spPersistFile;
TCHAR FileName[MAX_PATH+1] = L"http://www.baidu.com";
hr=spShellLink->SetPath(FileName);
hr=spShellLink->SetDescription(L"test");
hr=spShellLink->QueryInterface(IID_IPersistFile, (void **)&spPersistFile);
//取得桌面的全路径
LPITEMIDLIST pidl;
hr = SHGetSpecialFolderLocation(NULL, CSIDL_DESKTOP, &pidl);
TCHAR szPath[MAX_PATH];
SHGetPathFromIDList(pidl, szPath);
//创建快捷方式
CComBSTR strLinkFilePath(szPath);
strLinkFilePath.Append(L"\\测试.lnk");
hr=spPersistFile->Save(strLinkFilePath, TRUE);
spPersistFile.Release();
spShellLink.Release();
::CoUninitialize();