VS2005开发简单COM控件,以和调用.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
VS2005开发简单COM控件,以和调用.doc

Visual Studio 开发简单COM控件,以及调用 开发COM控件 下面例子的开发过程是使用VS2005,VS2008类似。 创建COM工程 创建COM工程的过程如下: 首先,创建COM工程,选择“ATL”的“ATL项目”。这里的工程名称为“ComTest”。 接着,出现“欢迎使用ATL项目向导”,直接点击“下一步”即可。 然后,出现“应用程序设置”,默认设置即可。 创建工程以后,会自动产生比较多的文件,宝卡的文件如下。 添加对象 右键点击“ComTest”工程添加类,如下图所示。 添加“ATL简单对象”即可。 填写类的名称,这里填写的简称为TestObject,这个在后面的应用中,会作为对象的名称。点击“下一步”。 选择“ATL简单对象”属性,这里可以把“ISupportErrorInfo”和“IObjectWithSite”,在这个测试工程没有使用到。点击“完成”。 在添加对象“TestObject”之后,工程会自动产生文件“TestObject.h”和“TestObject.cpp”,另外,文件“ComTest.idl”会更改,把TestObject相关的对象信息写入。 添加源代码 更改TestObject.h 这个头文件的源代码如下: // TestObject.h : CTestObject 的声明 #pragma once #include resource.h // 主符号 #include atlctl.h #include ComTest.h #if defined(_WIN32_WCE) !defined(_CE_DCOM) !defined(_CE_ALLOW_SINGLE_THREADED_OBJECTS_IN_MTA) #error Windows CE 平台(如不提供完全DCOM 支持的Windows Mobile 平台)上无法正确支持单线程COM 对象。定义_CE_ALLOW_SINGLE_THREADED_OBJECTS_IN_MTA 可强制ATL 支持创建单线程COM 对象实现并允许使用其单线程COM 对象实现。rgs 文件中的线程模型已被设置为“Free”,原因是该模型是非DCOM Windows CE 平台支持的唯一线程模型。 #endif // CTestObject class ATL_NO_VTABLE CTestObject : public CComObjectRootExCComSingleThreadModel, public CComCoClassCTestObject, CLSID_TestObject, public ISupportErrorInfo, public IObjectWithSiteImplCTestObject, public IDispatchImplITestObject, IID_ITestObject, LIBID_ComTestLib, /*wMajor =*/ 1, /*wMinor =*/ 0, public IObjectSafetyImplCTestObject, INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA // 添加的接口 { public: CTestObject() { // 初始化 m_name = 0; memcpy(m_time,00:00:00, 18); } DECLARE_REGISTRY_RESOURCEID(IDR_TESTOBJECT) BEGIN_COM_MAP(CTestObject) COM_INTERFACE_ENTRY(ITestObject) COM_INTERFACE_ENTRY(IDispatch) COM_INTERFACE_ENTRY(ISupportErrorInfo) COM_INTERFACE_ENTRY(IObjectWithSite) COM_INTERFACE_ENTRY(IObjectSafety) END_COM_MAP() // ISupportsErrorInfo STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid); DECLARE_PROTECT_FINAL_CONSTRUCT() HRESULT FinalConstruct() { return S_OK; } void FinalRelease() { } private: // 两个变量 char m_time[32]; char *m_name

文档评论(0)

dmz158 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档