C/C++ 获取快捷方式目标路径
wstring getLnkFormPath(wchar_t *lnkPath)
{
// 初始化
wstring sRet;
wchar_t wRet[MAX_PATH];
// 初始化 COM 库
CoInitialize(NULL);
IPersistFile* pPF = NULL;
// 创建 COM 对象
HRESULT hr = CoCreateInstance(
CLSID_ShellLink, // CLSID
NULL, // IUnknown 接口指针
CLSCTX_INPROC_SERVER, // CLSCTX_INPROC_SERVER:以 Dll 的方式操作类对象
IID_IPersistFile, // COM 对象接口标识符
(void**)(&pPF) // 接收 COM 对象的指针
);if(FAILED(hr)){cout << "CoCreateInstance failed." << endl;}
// 判断是否支持接口
IShellLink* pSL = NULL;
hr = pPF->QueryInterface(
IID_IShellLink, // 接口 IID
(void**)(&pSL) // 接收指向这个接口函数虚标的指针
);if(FAILED(hr)){cout << "QueryInterface failed." << endl;}
// 打开文件
hr = pPF->Load(
lnkPath, // 文件全路径
STGM_READ // 访问模式:只读
);if(FAILED(hr)){cout << "Load failed :" << GetLastError() << endl;}
// 获取 Shell 链接来源
hr = pSL->GetPath(wRet, MAX_PATH, NULL, 0);
sRet = wRet;
// 关闭 COM 库
pPF->Release();
CoUninitialize();
return sRet;
}
文章出处:https://www.cnblogs.com/LyShark/articles/15019597.html
本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
标签:
Visual C++
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构