不注册直接使用COM组件的方法
2011-05-21 11:10
225 查看
不注册直接使用COM组件的方法
1. 定义导出函数指针
2.导出COM组件这个DLL 的 DllGetClassObject函数
3.通过 DllGetClassObject 获得COM的类厂 ,然后通过类厂获得所要的接口
1. 定义导出函数指针
//定义函数指针 typedef HRESULT (_stdcall *Func) (REFCLSID , REFIID , LPVOID*); Func g_DllGetClassObject=NULL;
2.导出COM组件这个DLL 的 DllGetClassObject函数
if (g_DllGetClassObject==NULL) { CString strParam = theApp.strRootDirectory + TEXT("//MMGifCtrl.dll"); HMODULE module=LoadLibrary(strParam.GetBuffer(0)); if (module!=NULL) { g_DllGetClassObject= (Func) GetProcAddress(module,"DllGetClassObject"); } }
3.通过 DllGetClassObject 获得COM的类厂 ,然后通过类厂获得所要的接口
IMMGifCtrl * pShowGif = NULL; CComQIPtr<IClassFactory> pGifFactory; HRESULT hr; //如果 g_DllGetClassObject不为空 if (g_DllGetClassObject) { hr= g_DllGetClassObject(__uuidof(CMMGifCtrl), IID_IClassFactory,(LPVOID*)&pGifFactory); if (hr ==S_OK) { pGifFactory->CreateInstance(NULL,__uuidof(IMMGifCtrl),(LPVOID*)&pShowGif); if (pShowGif) { //成功获得COM接口 } } }
相关文章推荐
- 不注册直接使用COM组件的方法
- 不注册直接使用COM组件的方法
- 不注册直接使用COM组件的方法
- sharepoint 使用命令行注册dll文件到gac的方法
- Linux使用cp命令直接覆盖不提示的方法
- python直接生成exe的方法(使用py2exe)
- 【cocos2d-js官方文档】二十四、如何在android平台上使用js直接调用Java方法
- JNI--使用RegisterNatives注册本地方法
- 使用Spring时,在service类中直接获取request的方法
- 【cocos2d-js官方文档】二十四、如何在android平台上使用js直接调用Java方法
- .NET Core中间件的注册和管道的构建(3) ---- 使用Map/MapWhen扩展方法
- 注册DLL文件命令的使用方法及详细说明
- Flex Remote Object中直接使用HttpSession的方法
- php抓取新闻方法实例(包含新闻图片),配好数据库和表结构可直接使用
- 免注册COM的使用方法
- 微软ASP.Net Ajax:使用AJAX直接调用后台页面类方法
- 微软ASP.Net Ajax:使用AJAX直接调用后台页面类方法
- 现在介绍一种使用资源文件,将dll、ocx打包进exe,点击直接注册的例子:
- 子类可以直接使用父类的变量、方法吗?
- C++ 把枚举变量的名称,直接当字符串使用方法 字符串化符号 #