VC++注册,卸载OCX控件,以及判断是否注册
注册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"
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
2008-11-21 鼠标移动之hook学习