Mercurial > hg > xemacs-beta
diff netinstall/mklink2.c @ 448:3078fd1074e8 r21-2-39
Import from CVS: tag r21-2-39
author | cvs |
---|---|
date | Mon, 13 Aug 2007 11:38:25 +0200 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/netinstall/mklink2.c Mon Aug 13 11:38:25 2007 +0200 @@ -0,0 +1,27 @@ +#include "win32.h" +#include "shlobj.h" + +/* This part of the code must be in C because the C++ interface to COM +doesn't work. */ + +void +make_link_2 (char *exepath, char *args, char *icon, char *lname) +{ + IShellLink *sl; + IPersistFile *pf; + WCHAR widepath [_MAX_PATH]; + + CoCreateInstance (&CLSID_ShellLink, NULL, + CLSCTX_INPROC_SERVER, &IID_IShellLink, (LPVOID *) & sl); + sl->lpVtbl->QueryInterface (sl, &IID_IPersistFile, (void **) &pf); + + sl->lpVtbl->SetPath (sl, exepath); + sl->lpVtbl->SetArguments (sl, args); + sl->lpVtbl->SetIconLocation (sl, icon, 0); + + MultiByteToWideChar (CP_ACP, 0, lname, -1, widepath, _MAX_PATH); + pf->lpVtbl->Save (pf, widepath, TRUE); + + pf->lpVtbl->Release (pf); + sl->lpVtbl->Release (sl); +}