1.3.3 小试牛刀--编程(www.cppentry.com)实现写邮件超级链接(6)
定义函数GotoURL(),用于链接到指定的目标地址,具体代码如下:
- //链接到目标地址
- HINSTANCE CHyperLink::GotoURL(LPCTSTR url, int showcmd)
- {
- TCHAR key[MAX_PATH + MAX_PATH];
-
- // 调用函数ShellExecute()
- HINSTANCE result =
- ShellExecute(NULL, _T("open"), url, NULL, NULL, showcmd);
-
- // 如果错误,则检查注册表获得.htm文件的注册键值
- if ((UINT)result <= HINSTANCE_ERROR) {
-
- if (GetRegKey(HKEY_CLASSES_ROOT,_T(".htm"),key) == ERROR_SUCCESS) {
-
- lstrcat(key, _T("\\shell\\open\\command"));
-
- if (GetRegKey(HKEY_CLASSES_ROOT,key,key) == ERROR_SUCCESS) {
- TCHAR *pos;
- pos = _tcsstr(key, _T("\"%1\""));
- if (pos == NULL) { // 没有发现
- pos = strstr(key, _T("%1")); // 检查%1
- if (pos == NULL) // 没有参数
- pos = key+lstrlen(key)-1;
- else
- *pos = '\0'; // 删除参数
- }
- else
- *pos = '\0'; // 删除参数
-
- lstrcat(pos, _T(" "));
- lstrcat(pos, url);
- result = (HINSTANCE)WinExec(key, showcmd);
- }
- }
- }
-
- return result;
- }
至此,整个实例的主要模块介绍完毕。该程序执行后,将在窗体内显示一个超级链接,如图1-17所示。单击"写邮件"后,将激活链接,开始写邮件,如图1-18所示。
|
| 图1-17 显示一个超级链接 |
|
| 图1-18 开始写邮件 |