0%
wstring getLnkFormPath(wchar_t *lnkPath) { wstring sRet; wchar_t wRet[MAX_PATH];
CoInitialize(NULL); IPersistFile* pPF = NULL; HRESULT hr = CoCreateInstance( CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IPersistFile, (void**)(&pPF) );if(FAILED(hr)){cout << "CoCreateInstance failed." << endl;} IShellLink* pSL = NULL; hr = pPF->QueryInterface( IID_IShellLink, (void**)(&pSL) );if(FAILED(hr)){cout << "QueryInterface failed." << endl;} hr = pPF->Load( lnkPath, STGM_READ );if(FAILED(hr)){cout << "Load failed :" << GetLastError() << endl;} hr = pSL->GetPath(wRet, MAX_PATH, NULL, 0); sRet = wRet; pPF->Release(); CoUninitialize();
return sRet; }
|