-
大小: 24KB文件类型: .zip金币: 1下载: 0 次发布日期: 2021-05-29
- 语言: C/C++
- 标签: C++ COM 组件 CoInitialize
资源简介
实现一个最简单的COM组件,麻雀虽小,五脏俱全,使用完全C++和COM库实现,可以看到整个COM组件的组成脉络。
代码片段和文件信息
#include “stdafx.h“
#include “PeopleInterfaces.h“
#include “PeopleFactory.h“
BOOL APIENTRY DllMain( HMODULE hModule
DWORD ul_reason_for_call
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
g_hModule = hModule;
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
/************************************************************************/
/* DLL 应用程序的导出函数。 */
/************************************************************************/
//组件注册函数
STDAPI DllRegisterServer(void)
{
TCHAR szModule[MAX_PATH];
DWORD dwResult = ::GetModuleFileName(g_hModule szModule MAX_PATH);
if (0 == dwResult)
{
return SELFREG_E_CLASS;
}
return CToolHelper::RegisterServer( CLSID_EasyComPeople
TEXT(“EasyCom.object“)
szModule
TEXT(“EasyCom Component Description“))
? S_OK : SELFREG_E_CLASS;
}
//组件取消注册函数
STDAPI DllUnregisterServer(void)
{
return CToolHelper::UnRegisterServer(CLSID_EasyComPeople TEXT(“EasyCom.object“))
? S_OK : SELFREG_E_CLASS;
}
//组件信息函数
STDAPI DllGetClassobject(__in REFCLSID rclsid __in REFIID riid LPVOID FAR* ppv)
{
if (rclsid == CLSID_EasyComPeople)
{
CPeopleFactory *pFactory = new CPeopleFactory;
if (NULL == pFactory)
{
return E_FAIL;
}
HRESULT hr = pFactory->QueryInterface(riid ppv);
return hr;
}
else
{
return CLASS_E_CLASSNOTAVAILABLE;
}
}
//组件卸载函数
STDAPI DllCanUnloadNow(void)
{
if(g_LockNumber == 0 && g_EasyComNumber==0)
{
return S_OK;
}
else
{
return S_FALSE;
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2016-06-16 19:40 最简单的COM实现\
目录 0 2016-06-16 19:40 最简单的COM实现\EasyCom\
文件 1790 2016-06-10 20:51 最简单的COM实现\EasyCom\dllmain.cpp
文件 155 2016-06-10 21:04 最简单的COM实现\EasyCom\EasyCom.def
文件 5140 2016-06-10 21:04 最简单的COM实现\EasyCom\EasyCom.vcproj
文件 1401 2016-06-16 19:39 最简单的COM实现\EasyCom\EasyCom.vcproj.QIHUQIH-I5QE4NK.Administrator.user
文件 1673 2016-06-16 19:26 最简单的COM实现\EasyCom\People.cpp
文件 460 2016-06-10 20:39 最简单的COM实现\EasyCom\People.h
文件 1402 2016-06-16 19:20 最简单的COM实现\EasyCom\PeopleFactory.cpp
文件 528 2016-06-10 20:25 最简单的COM实现\EasyCom\PeopleFactory.h
文件 774 2016-06-10 20:34 最简单的COM实现\EasyCom\PeopleInterfaces.h
文件 1161 2016-06-10 18:26 最简单的COM实现\EasyCom\ReadMe.txt
文件 213 2016-06-10 20:37 最简单的COM实现\EasyCom\stdafx.cpp
文件 546 2016-06-10 20:43 最简单的COM实现\EasyCom\stdafx.h
文件 3224 2016-06-10 20:37 最简单的COM实现\EasyCom\ToolHelper.cpp
文件 446 2016-06-10 20:06 最简单的COM实现\EasyCom\ToolHelper.h
目录 0 2016-06-16 19:40 最简单的COM实现\TestCom\
文件 774 2016-06-10 20:34 最简单的COM实现\TestCom\PeopleInterfaces.h
文件 1183 2016-06-10 20:53 最简单的COM实现\TestCom\ReadMe.txt
文件 212 2016-06-10 20:53 最简单的COM实现\TestCom\stdafx.cpp
文件 362 2016-06-10 20:53 最简单的COM实现\TestCom\stdafx.h
文件 1026 2016-06-10 20:53 最简单的COM实现\TestCom\targetver.h
文件 1341 2016-06-16 19:39 最简单的COM实现\TestCom\TestCom.cpp
文件 4602 2016-06-10 21:00 最简单的COM实现\TestCom\TestCom.vcproj
文件 1427 2016-06-16 19:39 最简单的COM实现\TestCom\TestCom.vcproj.QIHUQIH-I5QE4NK.Administrator.user
文件 1346 2016-06-10 21:00 最简单的COM实现\最简单的COM实现.sln
文件 41984 2016-06-16 19:39 最简单的COM实现\最简单的COM实现.suo
相关资源
- MFC实现简单的COM
- (转)VC老版主薄荷用VC++6.0写的TCP
- C++ 矩阵乘并行算法实现
- c++ 贪食蛇控制台游戏代码,不闪屏功
- C++实现音频录音wav格式
- 唯一可译码判决准则 1使用的编程:
- x新安江模型c++
- C++停车场管理系统的完整代码.txt
- C++经典试题附答案
- c++数组查找函数实现
- c++递归实现数组遍历和阶乘函数
- c++内置函数
- c++函数模板使用
- c++写的平衡树数据结构
- 网络对战象棋游戏源代码
- C++ Primer Plus 6th书本源代码
- C++大学教程第九版教程内代码
- zw_MFCCombox自动提示.zip
- 计算无向图中桥的数量环算法超快
- 计算无向图中桥的数量并查集+路径压
- C++后两次实验题.docx
- C++图书信息管理系统使用链表写的
- 读取txt文件的c++程序将特定数据从t
- c++售票系统
- 高校水电费管理系统设计.rar
- 学生考勤管理系统.rar
- 诊所信息管理系统.rar
- C++程序设计第三版谭浩强教材习题程
- C++程序设计实践教程-马光志-习题答案
- C++航空售票系统
评论
共有 条评论