Почитал эту статью: http://worldcpp.vingrad.ru/vspp/zgrt106.php Сделал программу, которая сообщает файл ярлыка, вроде пашет...
Вот главная функция:
| Код | BOOL GetLinkPath(LPTSTR lpLinkPath, LPTSTR lpTargetPath) { IShellLink *SLink; IPersistFile *PF; WORD wLinkPath[MAX_PATH];
CoInitialize(NULL);
CoCreateInstance(CLSID_ShellLink, 0, CLSCTX_INPROC_SERVER, IID_IShellLink, (LPVOID*)&SLink);
SLink->QueryInterface(IID_IPersistFile, (LPVOID*)&PF);
MultiByteToWideChar(CP_ACP, NULL, lpLinkPath, -1, wLinkPath, MAX_PATH);
if(PF->Load(wLinkPath, NULL)!=S_OK) { SLink->Release(); return NULL; }
if(SLink->GetPath(lpTargetPath, MAX_PATH, NULL, NULL)!=NOERROR) { SLink->Release(); return NULL; }
SLink->Release();
CoUninitialize();
return 1; }
|
Все тут ОК?
Кстати, это ведь классы
| Код | SLink->QueryInterface(IID_IPersistFile, (LPVOID*)&PF);
|
А я пишу на С, а не С++ Ожидал что-то, вроде
| Код | QueryInterface(&SLink, IID_IPersistFile, (LPVOID*)&PF);
|
Но так не пашет |