• OCX控件注册相关(检查是否注册,注册,反注册)


      1BOOL RegisterOcx(LPCTSTR OcxFileName) 
      2
      3 LPCTSTR pszDllName = OcxFileName ; //ActiveX控件的路径及文件名 
      4 HINSTANCE hLib = LoadLibrary(pszDllName); //装载ActiveX控件 
      5 if (hLib < (HINSTANCE)HINSTANCE_ERROR) 
      6 
      7  return FALSE ; 
      8 }
     
      9 FARPROC lpDllEntryPoint; 
     10 lpDllEntryPoint =GetProcAddress(hLib,_T("DllRegisterServer")); //获取注册函数DllRegisterServer地址 
     11
     12 if(lpDllEntryPoint!=NULL) //调用注册函数DllRegisterServer
     13 
     14  if(FAILED((*lpDllEntryPoint)())) 
     15  
     16   FreeLibrary(hLib); 
     17   return FALSE ; 
     18  }
     
     19  return TRUE ; 
     20 }
     
     21 else 
     22  return FALSE ; 
     23}
     
     24
     25
     26BOOL UnRegisterOcx(LPCTSTR OcxFileName)
     27
     28 LPCTSTR pszDllName = OcxFileName ; //ActiveX控件的路径及文件名 
     29 HINSTANCE hLib = LoadLibrary(pszDllName); //装载ActiveX控件 
     30 if (hLib < (HINSTANCE)HINSTANCE_ERROR)  
     31 {  
     32  return FALSE ;  
     33 }
     
     34 FARPROC lpDllEntryPoint; 
     35 lpDllEntryPoint = GetProcAddress(hLib,_T("DllUnregisterServer")); //获取注册函数DllUnregisterServer地址 
     36
     37 if(lpDllEntryPoint!=NULL) //调用注册函数DllUnregisterServer 
     38 {
     39  if(FAILED((*lpDllEntryPoint)())) 
     40  
     41   FreeLibrary(hLib); 
     42   return FALSE ; 
     43  }
     
     44  return TRUE ; 
     45 }
     
     46 else 
     47  return FALSE ; 
     48}
      
     49
     50
     51bool CMsgGathorDlg::IsReg()
     52
     53 HKEY hKey;   
     54 BOOL bPresent;   
     55 TCHAR szPath[_MAX_PATH];   
     56 DWORD dwRegType;   
     57 DWORD cbData = sizeof szPath * sizeof TCHAR; 
     58
     59 hKey = NULL; 
     60 bPresent = FALSE;
     61 ::RegOpenKey(HKEY_CLASSES_ROOT, _T("CLSID\\{4CAD92F0-D7C4-11D0-BCF7-00C04FC2FB86}\\InprocServer32"), &hKey); 
     62 if(hKey) 
     63 
     64  HANDLE hfile; 
     65  
     66  szPath[0= 0
     67  ::RegQueryValueEx(hKey, NULL, NULL, &dwRegType, (LPBYTE)szPath, &cbData); 
     68  ::RegCloseKey(hKey); 
     69  
     70  hfile = ::CreateFile(szPath, 0, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL); 
     71  if(INVALID_HANDLE_VALUE != hfile) 
     72  
     73   bPresent = TRUE; 
     74   ::CloseHandle(hfile); 
     75  }
     
     76 }
     
     77
     78 return bPresent;   
     79}

     80
     81
     82
     83bool CMsgGathorDlg::IsReg()
     84
     85 HKEY hKey;   
     86 BOOL bPresent;   
     87 TCHAR szPath[_MAX_PATH];   
     88 DWORD dwRegType;   
     89 DWORD cbData = sizeof szPath * sizeof TCHAR; 
     90
     91 hKey = NULL; 
     92 bPresent = FALSE;
     93 ::RegOpenKey(HKEY_CLASSES_ROOT, _T("CLSID\\{4CAD92F0-D7C4-11D0-BCF7-00C04FC2FB86}\\InprocServer32"), &hKey); 
     94 if(hKey) 
     95 
     96  HANDLE hfile; 
     97  
     98  szPath[0= 0
     99  ::RegQueryValueEx(hKey, NULL, NULL, &dwRegType, (LPBYTE)szPath, &cbData); 
    100  ::RegCloseKey(hKey); 
    101  
    102  hfile = ::CreateFile(szPath, 0, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL); 
    103  if(INVALID_HANDLE_VALUE != hfile) 
    104  
    105   bPresent = TRUE; 
    106   ::CloseHandle(hfile); 
    107  }
     
    108 }
     
    109
    110 return bPresent;   
    111}

    112
  • 相关阅读:
    还有更简单的不重复随机数生成方法吗?
    SqlServer数据插入性能小记
    html页面滚动时元素错位解决方案
    为Web页中的Table对象创建一个映射表
    js实现的快速排序
    webkit内核的浏览器为什么removeAttribute('style')会失效?
    setAttribute第三个参数
    Windows转到linux中,文件乱码,文件编码转换
    查看端口的占用
    sndfile
  • 原文地址:https://www.cnblogs.com/dwjaissk/p/1007490.html
Copyright © 2020-2023  润新知