1. //引用网上的一篇文章进行的修改 ,2003的所在注册表位置和其他的系统位置不同 
  2. //hkey 是注册表主键,如HKEY_LOCAL_MACHINE,szUrl为IP地址(原文中有域名的添加方法,这里去掉了) 
  3. BOOL VengFuncConfig::SetTrustfulUrl(HKEY hKey, TCHAR *szUrl, DWORD dwType,BOOL IsWindow2003) 
  4.     HKEY hkResult; 
  5.     int rc = 0; 
  6.     TCHAR szProtocol[MAX_PATH] = {0}; 
  7.     TCHAR szRegPath[MAX_PATH] = {0}; 
  8.  
  9.     lstrcpy(szProtocol, _T("*")); 
  10.     //lstrcpy(szProtocol, _T("http")); 
  11.  
  12.     CString cQueryIERegName = (IsWindow2003?_T("EscRanges"):_T("Ranges")); 
  13.  
  14.     //判断是IP还是域名 
  15.     //IP类站点添加 
  16.  
  17.     DWORD dwKeys = 0; 
  18.  
  19.     wsprintf(szRegPath, _T("Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ZoneMap\\%s"),cQueryIERegName); 
  20.  
  21.     rc = RegCreateKey(hKey, szRegPath, &hkResult); 
  22.     //先获取该key下有多少个项 
  23.     rc = RegQueryInfoKey(hkResult, NULL, NULL, NULL, &dwKeys, NULL, NULL, NULL, NULL, NULL, NULL, NULL); 
  24.  
  25.     RegCloseKey(hkResult); 
  26.     hkResult = NULL; 
  27.  
  28.     if (rc != ERROR_SUCCESS) 
  29.     { 
  30.         return FALSE; 
  31.     } 
  32.     else 
  33.     {    
  34.         //查询当前的远程服务器IP是否加入了IE的受信任列表中 
  35.         wsprintf(szRegPath, _T("Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ZoneMap\\%s\\Range%d"),cQueryIERegName ,dwKeys+10 -1); 
  36.  
  37.         CString cHostIP = ReadCfg(_T(":Range"),szRegPath); 
  38.         if ( !cHostIP.CompareNoCase(szUrl) ) 
  39.         { 
  40.             return FALSE; 
  41.         } 
  42.  
  43.         wsprintf(szRegPath, _T("Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ZoneMap\\%s\\Range%d"),cQueryIERegName, dwKeys+10); 
  44.         rc = RegCreateKey(hKey, szRegPath, &hkResult); 
  45.         //必须要先创建DWORD值,再创建字符串值,否则不能在Internet选项中信任站点列表中显示 
  46.         RegSetValueEx(hkResult, szProtocol, NULL, REG_DWORD, (BYTE *)&dwType, sizeof(DWORD)); 
  47.  
  48.  
  49.         RegSetValueEx(hkResult, _T(":Range"), NULL, REG_SZ,  (LPBYTE)szUrl,  (lstrlen(szUrl)+1)*sizeof(TCHAR)); 
  50.  
  51.         RegCloseKey(hkResult); 
  52.  
  53.         //使注册表修改立即生效 
  54.         //SystemParametersInfo(SPI_SETCURSORS,0,NULL,SPIF_SENDCHANGE || SPIF_UPDATEINIFILE); 
  55.         SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, 0, 0);     
  56.  
  57.         hkResult = NULL; 
  58.     } 
  59.  
  60.     return TRUE;