Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <windows.h>
- #include <shobjidl.h>
- HRESULT CreateLink(LPCWSTR lpszPathObj, LPCWSTR lpszDesc)
- {
- HRESULT hres;
- IShellLink* psl;
- // Создание экземпляра IShellLink
- hres = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLink, (LPVOID*)&psl);
- if (SUCCEEDED(hres))
- {
- // Установка пути к целевой программе и описания
- psl->SetPath(lpszPathObj);
- psl->SetDescription(lpszDesc);
- // Запрос интерфейса IPersistFile
- IPersistFile* ppf;
- hres = psl->QueryInterface(IID_IPersistFile, (LPVOID*)&ppf);
- if (SUCCEEDED(hres))
- {
- // Преобразование пути в формат Unicode
- WCHAR wsz[MAX_PATH];
- MultiByteToWideChar(CP_ACP, 0, lpszPathObj, -1, wsz, MAX_PATH);
- // Сохранение ссылки
- hres = ppf->Save(wsz, FALSE); // FALSE: не сохранять на диск
- ppf->Release();
- }
- psl->Release();
- }
- return hres;
- }
- int main()
- {
- // Пример использования
- CreateLink(L"C:\\Path\\To\\YourApp.exe", L"My Quit Task");
- // Обработка задачи quit() в вашем приложении
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement