#include <shlobj.h>
/*
Shell link creator, by Alfa
mailto: alfa7@pisem.net
*/
CoInitialize(NULL);
IShellLink *SLink;
HRESULT HRes = CoCreateInstance(CLSID_ShellLink, 0, CLSCTX_INPROC_SERVER,
IID_IShellLink, ( LPVOID*)&SLink);
HRes = SLink->SetPath("C:\\app.exe");// Путь к запускаемой программе, для которой создаем ярлык
HRes = SLink->SetWorkingDirectory("C:\\");// Рабочий каталог для програмы
IPersistFile *PF;
HRes = SLink->QueryInterface(IID_IPersistFile, (LPVOID*)&PF);
WORD path[MAX_PATH];
TCHAR buf1[MAX_PATH];
LPITEMIDLIST pl;
SHGetSpecialFolderLocation(NULL, CSIDL_DESKTOP, &pl);
SHGetPathFromIDList(pl, buf1);
lstrcat(buf1, "\\");
lstrcat(buf1, "link_for_app_1.lnk");
MultiByteToWideChar(CP_ACP, 0, buf1, -1, path, MAX_PATH);
HRes = PF->Save(path, TRUE);// Сохранить
SLink->Release();
CoUninitialize(); Добавочные функции:
SLink->SetArguments(LPCSTR argum);// Командная строка для програмы
SLink->SetIconLocation(LPSTR IconPath, strlen(IconPath), int IconIndex);//Иконка у ярлыка
|