HWND hWnd = m_hWnd;//
HRESULT hres;
IShellLink * psl;
WIN32_FIND_DATA wfd;
LPCSTR lpszLinkName = "C:\\Users\\Administrator\\Desktop\\360安全浏览器7.lnk";//
WCHAR lpszPath[MAX_PATH];//
hres = CoInitialize(NULL);
if (SUCCEEDED(hres))
{
hres = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLink, (void**)&psl);
if (SUCCEEDED(hres))
{
IPersistFile * ppf;
hres = psl->QueryInterface(IID_IPersistFile, (LPVOID*)&ppf);
if (SUCCEEDED(hres))
{
WCHAR wsz[MAX_PATH];
MultiByteToWideChar(CP_ACP, 0, lpszLinkName, -1, wsz, MAX_PATH);
hres = ppf->Load(wsz, STGM_READWRITE);
if (SUCCEEDED(hres))
{
hres = psl->Resolve(hWnd, SLR_ANY_MATCH | SLR_NO_UI);
if (SUCCEEDED(hres))
{
hres = psl->GetPath(lpszPath, MAX_PATH, &wfd, SLGP_SHORTPATH);
//CString sFileNameTemp;
//sFileNameTemp.Format(_T("%s"), lpszPath);
//MessageBox(sFileNameTemp);
psl->SetDescription(_T("hao"));
ppf->Save(wsz, TRUE);
MessageBox(lpszPath);
}
else
MessageBox(_T("Resolve failt"));
}
else
MessageBox(_T("load failt "));
ppf->Release();
}
else
MessageBox(_T("QueryInterface failt "));
psl->Release();
}
else
MessageBox(_T("coCreateInStance failt "));
CoUninitialize();
}
else
{
MessageBox(_T("call CoInitialize failt "));
}
代码参考:http://blog.chinaunix.net/uid-7667983-id-2046551.html