注册OCX控件

BOOL CYourClass::RegistOcx()

{

HINSTANCE hLib = LoadLibrary("NTGraph.ocx");      //指定要注册的ocx文件的路径及文件名。

if (hLib == NULL)

{

  MessageBox("不能载入OCX文件!");

  return;

}

//获取注册函数DllRegisterServer地址

  FARPROC lpDllEntryPoint;

  lpDllEntryPoint = GetProcAddress(hLib,"DllRegisterServer");

//调用注册函数DllRegisterServer

  if(lpDllEntryPoint!=NULL)

  {

    if(FAILED((*lpDllEntryPoint)()))

    {

      //MessageBox(Handle,"调用DllRegisterServer失败!","失败ing..",MB_OK);

       MessageBox("OCX注册失败!");

      FreeLibrary(hLib);

  return;

};

  //MessageBox(Handle,"注册成功!","Reg",MB_OK);

  MessageBox("OCX注册成功!");

  }

  else

MessageBox("OCX注册失败!");

  //MessageBox(Handle,"调用DllRegisterServer失败!","失败ing..",MB_OK);

}

卸载控件

BOOL CYourClass::UnRegistOcx()

{

  HINSTANCE hLib = LoadLibrary("NTGraph.ocx");

    //指定要注册的ocx文件的路径及文件名。

    if (hLib==NULL)

    {

      //MessageBox(Handle,"不能载入Dll文件!","失败ing..",MB_OK);

      MessageBox("不能载入OCX文件!");

      return;

    }

  //获取注册函数DllRegisterServer地址

  FARPROC lpDllEntryPoint;

  lpDllEntryPoint = GetProcAddress(hLib,"DllUnregisterServer");//注意这里是DllUnregisterServer。

//调用注册函数DllRegisterServer

  if(lpDllEntryPoint!=NULL)

  {

    if(((*lpDllEntryPoint)()))

    {

    //MessageBox(Handle,"调用DllUnRegisterServer失败!","失败ing..",MB_OK);

     MessageBox("调用DllUnRegisterServer失败!!!");

    FreeLibrary(hLib);

    return;

};

  //MessageBox(Handle,"注销成功!","Unreg",MB_OK);

MessageBox("OCX注销成功!");

  }

   else

  //MessageBox(Handle,"调用DllUnRegisterServer失败!!!","结果",MB_OK);

MessageBox("OCX调用DllUnRegisterServer失败!!!");

}

判断是否注册

BOOL CYourClass::IsRegistOcx()

{

  HKEY hKey;

  BOOL bPresent;

  TCHAR szPath[_MAX_PATH];

  DWORD dwRegType;

  DWORD cbData   =   sizeof   szPath   *   sizeof   TCHAR;

if(RegOpenKeyEx(HKEY_CLASSES_ROOT,"ActiveX.ActiveXControl//Clsid",0,KEY_READ,&hKey)!=ERROR_SUCCESS)

     return false;

else

return true;   //ActiveX.ActiveXControl为控件的名称和内部名称   如"NTGRAPH.NTGraphCtrl.1//CLSID"

}

VC++注册,卸载OCX控件,以及判断是否注册的更多相关文章

  1. 帮同事写了几行代码,在 安装/卸载 程序里 注册/卸载 OCX控件

    写了个小控制台程序,这个程序用来注册 / 卸载OCX控件,用在Inno Setup做的安装卸载程序里. #include "stdafx.h" #include <windo ...

  2. VC++如何在程序中用代码注册和卸载ocx控件(代码)

    方法一:在dos或Windows命令行下运行:regsvr32 ocxname.ocx 注册 示例:regsvr32 netshare.ocx     //注册netshare.ocx控件regsvr ...

  3. Delphi安装/卸载OCX控件的方法

    delphi  安装卸载ocx 请参见 如下 http://blog.csdn.net/xt_chaoji/article/details/7027298 打开Delphi,关闭所有项目. 1.    ...

  4. 程序安装时注册dsoframer.ocx控件

    我使用的是Smart Install Maker打包软件 (1)将dsoframer.ocx控件添加进 (2)添加ActiveX控件 dsoframer.ocx属于ActiveX控件,在ActiveX ...

  5. win7/win8 64位系统注册TeeChart8.ocx 控件---以及dllregisterserver调用失败问题解决办法

    TeeChart控件就不多介绍了,很多朋友不知道开始怎么注册使用,尤其是在64位系统下如何注册的问题,具体如下: win7.win8  64位系统问题所在: 64位的系统一般都是可以安装32位程序的 ...

  6. win10 x64 注册ZQDeviceOcx.ocx控件

    正常的方式在32位系统下可行, 但是在64位系统下是不可行的. 在64位系统中正确的注册步骤是: 1. 将对应的ocx和dll放到C:\Windows\SysWOW64目录下. 2. 然后找到C:\W ...

  7. OCX控件的注册卸载,以及判断是否注册

    方法一:在dos或Windows命令行下运行:regsvr32 ocxname.ocx 注册 示例:regsvr32 netshare.ocx     //注册netshare.ocx控件regsvr ...

  8. C# 从注册表判断指定ocx控件是否已注册 以及获取它的注册路径

    /// <summary> /// 注册控件 /// </summary> /// <returns></returns> public bool Re ...

  9. Win7 64位系统 注册 ocx控件

    32位系统注册ocx就不谈了.网上一搜一大把.下面说下win7 64位 旗舰版下如果注册ocx控件    1.首先复制 XXXX.OCX文件到“C:\Windows\SysWOW64”目录. (XXX ...

随机推荐

  1. 使用Servlet实现图片下载

    package chensi.com; import java.io.FileInputStream; import java.io.IOException; import java.net.URLE ...

  2. C++主要数据类型在计算机中所占字节大小

    遇到了数据存储的大端和小端问题,这你妹的看的一头雾水,发现我基本知识严重匮乏啊,先了解C++各数据类型在自己机子上占多少字节吧,以及这些数据类型所占字节大小与神马有关.各种查资料然后写代码检验,小结于 ...

  3. mfc控件——list control的使用

    [前话] 编译原理的第一个实验——词法分析器验收时,老师要求最后的结果用GUI的形式表现出来.想想确实,黑白的控制台应用程序界面在用户操作时的确不如GUI 友好.GUI界面也算是大势所趋.我现在掌握三 ...

  4. Servlet 的认识

    Servlet的响应过程:1,web 客户端向 Servlet容器发出http请求2,Servlet容器接收 客户端发来的请求3,创建一个 HttpRequest对象,将客户端发来的请求信息封装到这个 ...

  5. LeetCode OJ--Minimum Window Substring ***

    https://oj.leetcode.com/problems/minimum-window-substring/ 模拟题 这道题细节比较多.从左到右扫一遍模拟着做 class Solution { ...

  6. 几个与特殊字符处理有关的PHP函数

    函数名 释义 介绍 htmlspecialchars 将与.单双引号.大于和小于号化成HTML格式 &转成&"转成"' 转成'<转成<>转成> ...

  7. JS-for中的i

    var aBtn = document.getElementsByTagName('input');        for( var i=0; i<aBtn.length; i++ ){     ...

  8. Linux更改服务器Hostname

    在我们需要维护较多的服务器时,有意义的Hostname将时刻提醒我们这台服务器的功能. ****** 1.Debian echo '127.0.1.1 git-server' >> /et ...

  9. "产品测试管理&敏捷项目管理"研讨会在深圳成功举办!

    2016年1月9日,由深圳市共创力企业管理咨询发起的"产品测试管理&敏捷项目管理"研讨会在深圳南山科技园创新谷咖啡成功举办!参加此次研讨会的企业有华为.中兴.烽火.腾讯.康 ...

  10. ActiveMQ学习笔记

    关键接口和类: ConnectionFactory connectionFactory;//连接工厂 Connection connection;//连接 Session session; Desti ...