社区
ATL
帖子详情
关于DECLARE_OLECREATE和IMPLEMENT_OLECREATE
clicksoft
2006-01-05 04:28:33
为什么我在有的以mfc方式实现com的代码中看见一些实现某一接口的类声明和使用了DECLARE_OLECREATE和IMPLEMENT_OLECREATE
但同一个工程中实现另外一些接口的类里不包含这些东西
请问包含和不包含有什么区别
谢谢
...全文
221
5
打赏
收藏
关于DECLARE_OLECREATE和IMPLEMENT_OLECREATE
为什么我在有的以mfc方式实现com的代码中看见一些实现某一接口的类声明和使用了DECLARE_OLECREATE和IMPLEMENT_OLECREATE 但同一个工程中实现另外一些接口的类里不包含这些东西 请问包含和不包含有什么区别 谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
clicksoft
2006-01-09
打赏
举报
回复
ding
loverx
2006-01-06
打赏
举报
回复
我觉得无论是用MFC写COM,还是用ATL写COM
最基本的DECLARE_OLECREATE,BEGIN_OBJECT_MAP......BEGIN_INTERFACE_MAP
既类厂是如何创建的,接口是如何被查询到的
在学习的过程中最好有所了解
clicksoft
2006-01-06
打赏
举报
回复
顶
handsomerun
2006-01-05
打赏
举报
回复
呵呵,这是mfc经常干的一些小伎俩
一组宏定义而已,呵呵
包含了他们,
就是支持动态创建
类厂的由来
不用说,COM对象的创建是需要类厂的.
---------------------------------------------------------------------------------------------------------
DECLARE_OLECREATE(CSAM)宏剖析
-----------------------------------------------------------------------------
#define DECLARE_OLECREATE(class_name) \
public: \
static AFX_DATA COleObjectFactory factory; \
//定义类厂对象…
static AFX_DATA const GUID guid; \
//组件类的GUID
------------------------------------------------------------------------------------------------------------
IMPLEMENT_OLECREATE 宏剖析
------------------------------------------------------------------
#define IMPLEMENT_OLECREATE(class_name, external_name, l, w1, w2, b1,\
b2, b3, b4, b5, b6, b7, b8) \
AFX_DATADEF COleObjectFactory class_name::factory(class_name::guid, \
RUNTIME_CLASS(class_name), FALSE, _T(external_name)); \
//这里要注意的是external_name:ProgID
AFX_COMDAT const AFX_DATADEF GUID class_name::guid = \
{ l, w1, w2, { b1, b2, b3, b4, b5, b6, b7, b8 } }; \
//将组件类的CLSID赋予组件类的成员变量guid.
-----------------------------------------------------------------------------------------------------------
IMPLEMENT_OLECREATE(CSAM, "MFCCOM.SAM",
0x43d242f9, 0x4f7e, 0x4cbb, 0xae, 0xda, 0x77, 0x8d, 0xa1, 0x16, 0xd0, 0xd9)
说明:我们知道,在创建组件类对象时,首先由App核心获得当前状态,
从中取出类厂表,依据CLSID获得相应的类厂对象指针.正是在这里
将类厂和CLSID、ProID等信息关联.
aspnetwuxueyou
2006-01-05
打赏
举报
回复
是否支持动态创建
MFC OCX控件实现安全初始化和脚本安全的方法
DECLARE
_
OLE
CREATE
_EX(CTestOCXCtrl) // Class factory and guid //***************************************************************add begin //ISafeObject
DECLARE
_INTERFACE_MAP() BEGIN_...
ATL和MFC创建ActiveX控件的区别
在visual C++ 6.0中,ATL和MFC代表了两种不同的框架,分别面向不同类型的基于Windows的开发。ATL提供了一种框架来实现创建COM客户机和服务器所必须的样板文件代码;MFC代表了创建独立的Windows应用的一种简单、一致
IMPLEMENT
_DYN
CREATE
IMPLEMENT
_DYN
CREATE
This macro must appear in the
implement
ation file for any class that uses
DECLARE
_
OLE
CREATE
. The external name is the identifie
COM编程 笔记2
然后在COM对象实现时,指定类厂和guid的值,MFC使用宏
IMPLEMENT
_
OLE
CREATE
(class_name,external_name,1,w1,w2,b1,b2,b3,b4, b5,b6,b7,b8); 转载于:...
VC++ IE控件(MFC ActiveX ocx)开发
新建一个MFC ActiveX项目 在"项目名.cpp"增加代码 所有代码都增加在"项目名.cpp"文件中 增加头文件 #include "comcat.h" ...
IMPLEMENT
_
OLE
CREATE
_EX(CtestCtrl, "控件ProgID",0xa7e03b16,0x0ca1,0x411...
ATL
3,245
社区成员
48,539
社区内容
发帖
与我相关
我的任务
ATL
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
复制链接
扫一扫
分享
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章