static bool CreateLink()
{HRESULT hr = CoInitialize(NULL);
if (SUCCEEDED(hr))
{
IShellLink *pisl;
hr = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLinkA, (void**)&pisl);
if (SUCCEEDED(hr))
{
IPersistFile* pIPF;
char path[MAX_PATH];
//获取执行文件所在路径
GetModuleFileName(GetModuleHandle(NULL), path, MAX_PATH);pisl->SetPath(path);
hr = pisl->QueryInterface(IID_IPersistFile, (void**)&pIPF);
if (SUCCEEDED(hr))
{
char lnk[MAX_PATH];
SHGetSpecialFolderPath(0, lnk, CSIDL_DESKTOPDIRECTORY, 0);
strcat(lnk, TEXT("\\"));
WCHAR wpath[MAX_PATH] = { 0 };
//此处显示桌面上的名称。
strcat(lnk, "在桌面上显示的名称");strcat(lnk, ".lnk");
MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, lnk, -1, wpath, MAX_PATH);
pIPF->Save(wpath, FALSE);
pIPF->Release();
}
pisl->Release();
}
CoUninitialize();
}
return true;
}