Код (Text): HRESULT CreateLink(LPCSTR lpszPathObj, LPSTR lpszPathLink, LPSTR lpszDesc) { HRESULT hres; IShellLink* psl; hres = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLink, (void**)&psl); if(SUCCEEDED(hres)) { IPersistFile* ppf; psl->SetPath(lpszPathObj); psl->SetDescription(lpszDesc); hres = psl->QueryInterface( IID_IPersistFile, (void**)&ppf); if (SUCCEEDED(hres)) { WORD wsz[MAX_PATH]; MultiByteToWideChar(CP_ACP, 0, lpszPathLink, -1, wsz, MAX_PATH); hres = ppf->Save(wsz, TRUE); ppf->Release(); } psl->Release(); } return hres; } Только .lnk это не иконка, а ярлык
Посмотри в MSDN. Там был ещё другой пример, только работающий на более современных системах. Этот работает по крайней мере, с win95
На RSDN хорошо описывается. Но на с++. В качестве справочного материала пойдет. Мы тут на wasm.ru не знаем, что такое с++ )) Вдруг кому-нибудь понадобится. На wasm.ru обновленный пакет ассемблера без этого примерчика:
Выложи тогда папку \masm32\com Код (Text): include \masm32\com\include\oaidl.inc include \masm32\com\include\shlobj.inc А, не надо. Вот он этот раритет: