获取快捷方式的文件路径

158 views 十一月 30, 05 by Timothy

#include

bool ReadShortcut(LPWSTR lpwLnkFile, LPSTR lpDescFile)
{
bool bReturn = true;
IShellLink *pShellLink;

if(bReturn)
{
bReturn = (CoInitialize(NULL) == S_OK);
if(bReturn)
{
bReturn = CoCreateInstance (CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER,
IID_IShellLink, (void **)&pShellLink) >= 0;
if(bReturn)
{
IPersistFile *ppf;
bReturn = pShellLink->QueryInterface(IID_IPersistFile, (void **)&ppf) >= 0;
if(bReturn)
{
bReturn = ppf->Load(lpwLnkFile, TRUE) >= 0;
if(bReturn)
{
pShellLink->GetPath(lpDescFile, MAX_PATH, NULL, 0);
}
ppf->Release ();
}
pShellLink->Release ();
}
CoUninitialize();
}
}
return bReturn;
}

// 测试代码:
char szBuf[MAX_PATH];
ReadShortcut(L”C:\\GLWorld.lnk”, szBuf);
MessageBox(0, szBuf, “”, 0);

分享到:

声明: 此Blog中的文章和随笔仅代表作者在某一特定时间内的观点和结论,对其完全的正确不做任何担保或假设
本站文章均采用 知识共享署名-相同方式共享3.0 协议进行授权,除非注明,本站文章均为原创,转载请注明转自 Timothy's Space 并应以链接形式标明本文地址!

你可能也对下列文章感兴趣

  • 没有相关文章!

<

这篇文章还没有人评论... 赶快来抢沙发吧!.


Leave a Reply

 您已输入0

(Ctrl+Enter)