在MFC程序中如何注册/注销/检测ActiveX控件(.OCX)
2014-05-26 15:57
369 查看
一、注册ActiveX控件
BOOL RegistOcx()
{
//装载ActiveX控件
HINSTANCE hLib = LoadLibrary(_T("C:\\Windows\\System32\\Macromed\\Flash\\Flash.ocx"));
if (hLib < (HINSTANCE)HINSTANCE_ERROR)
{
//MessageBox(_T("不能载入OCX文件!"));
return FALSE;
}
//获取注册函数DllRegisterServer地址
FARPROC lpDllEntryPoint;
lpDllEntryPoint = GetProcAddress(hLib,"DllRegisterServer");//注意这里是DllRegisterServer
//调用注册函数DllRegisterServer注册
if(lpDllEntryPoint!=NULL)
{
if(FAILED((*lpDllEntryPoint)()))
{
//MessageBox(_T("调用DllRegisterServer失败!"));
FreeLibrary(hLib);
return FALSE;
}
//MessageBox(_T("OCX注册成功!"));
return TRUE;
}
else
{
//MessageBox(_T("OCX注册失败!"));
return FALSE;
}
}
二、注销ActiveX控件
BOOL UnRegistOcx()
{
//装载ActiveX控件
HINSTANCE hLib = LoadLibrary(_T("C:\\Windows\\System32\\Macromed\\Flash\\Flash.ocx"));
if (hLib < (HINSTANCE)HINSTANCE_ERROR)
{
//MessageBox(_T("不能载入OCX文件!"));
return FALSE;
}
//获取注销函数DllUnregisterServer地址
FARPROC lpDllEntryPoint;
lpDllEntryPoint = GetProcAddress(hLib,"DllUnregisterServer");//注意这里是DllUnregisterServer
//调用注销函数DllUnregisterServer注销
if(lpDllEntryPoint!=NULL)
{
if(FAILED((*lpDllEntryPoint)()))
{
//MessageBox(_T("调用DllUnregisterServer失败!"));
FreeLibrary(hLib);
return FALSE;
}
//MessageBox(_T("OCX注销成功!"));
return TRUE;
}
else
{
//MessageBox(_T("OCX注销失败!"));
return FALSE;
}
}
三、检测ActiveX控件
BOOL IsRegistOcx()
{
HKEY hKey;
if(RegOpenKeyEx(HKEY_CLASSES_ROOT,_T("CLSID\\{D27CDB6E-AE6D-11CF-96B8-444553540000}\\InprocServer32"),0,KEY_READ,&hKey)!=ERROR_SUCCESS)
{
//MessageBox(_T("OCX没有注册!!!"));
return FALSE;
}
else
{
//MessageBox(_T("OCX已经注册!!!"));
return TRUE;
}
}
BOOL RegistOcx()
{
//装载ActiveX控件
HINSTANCE hLib = LoadLibrary(_T("C:\\Windows\\System32\\Macromed\\Flash\\Flash.ocx"));
if (hLib < (HINSTANCE)HINSTANCE_ERROR)
{
//MessageBox(_T("不能载入OCX文件!"));
return FALSE;
}
//获取注册函数DllRegisterServer地址
FARPROC lpDllEntryPoint;
lpDllEntryPoint = GetProcAddress(hLib,"DllRegisterServer");//注意这里是DllRegisterServer
//调用注册函数DllRegisterServer注册
if(lpDllEntryPoint!=NULL)
{
if(FAILED((*lpDllEntryPoint)()))
{
//MessageBox(_T("调用DllRegisterServer失败!"));
FreeLibrary(hLib);
return FALSE;
}
//MessageBox(_T("OCX注册成功!"));
return TRUE;
}
else
{
//MessageBox(_T("OCX注册失败!"));
return FALSE;
}
}
二、注销ActiveX控件
BOOL UnRegistOcx()
{
//装载ActiveX控件
HINSTANCE hLib = LoadLibrary(_T("C:\\Windows\\System32\\Macromed\\Flash\\Flash.ocx"));
if (hLib < (HINSTANCE)HINSTANCE_ERROR)
{
//MessageBox(_T("不能载入OCX文件!"));
return FALSE;
}
//获取注销函数DllUnregisterServer地址
FARPROC lpDllEntryPoint;
lpDllEntryPoint = GetProcAddress(hLib,"DllUnregisterServer");//注意这里是DllUnregisterServer
//调用注销函数DllUnregisterServer注销
if(lpDllEntryPoint!=NULL)
{
if(FAILED((*lpDllEntryPoint)()))
{
//MessageBox(_T("调用DllUnregisterServer失败!"));
FreeLibrary(hLib);
return FALSE;
}
//MessageBox(_T("OCX注销成功!"));
return TRUE;
}
else
{
//MessageBox(_T("OCX注销失败!"));
return FALSE;
}
}
三、检测ActiveX控件
BOOL IsRegistOcx()
{
HKEY hKey;
if(RegOpenKeyEx(HKEY_CLASSES_ROOT,_T("CLSID\\{D27CDB6E-AE6D-11CF-96B8-444553540000}\\InprocServer32"),0,KEY_READ,&hKey)!=ERROR_SUCCESS)
{
//MessageBox(_T("OCX没有注册!!!"));
return FALSE;
}
else
{
//MessageBox(_T("OCX已经注册!!!"));
return TRUE;
}
}
相关文章推荐
- VC++在MFC程序中如何注册/注销ActiveX控件(.OCX)
- VC++在MFC程序中如何注册/注销ActiveX控件(.OCX)
- 如何在PB的程序中注册用到的OCX控件
- 在程序中动态的注册或注销OCX
- 如何使程序在运行时自动注册ActiveX控件
- 在程序中注册ActiveX控件(.OCX)的函数
- 如何使程序在运行时自动注册ActiveX控件
- 如何使程序在运行时自动注册ActiveX控件
- VC++如何在程序中用代码注册和卸载ocx控件(代码)
- 如何检测非MFC程序的内存泄露?
- 如何使程序在运行时自动注册ActiveX控件
- 如何通过C#程序来对ActiveX控件进行注册?
- 如何在PB的程序中注册用到的OCX控件
- 使用Regsvr32.exe程序注册/注销ActiveX控件
- 使用Regsvr32.exe程序注册/注销ActiveX控件
- 如何使程序在运行时自动注册ActiveX控件
- 使用Regsvr32.exe程序注册/注销ActiveX控件
- 在程序中注册ActiveX控件(.OCX)的函数
- 如何用visual studio 2005中调试 Windows Mobile MFC ACTIVEX控件
- 如何在IDA中找到MFC程序的消息处理函数