使用VS2005创建COM
来源:互联网 发布:excel 对数据进行统计 编辑:程序博客网 时间:2024/05/22 06:24
本文使用Wizard模式创建COM。
一、ATL项目向导
使用ATL Project Wizard创建COM。
1. 建立ATL工程
File->New->Project
选择“ATL”中“ATL Project”。
注意,红框中的名称即是要生成DLL文件的名称
2. 概述
默认情况下的设置。
3. 工程设置
我们可以自定义设置工程情况。
Atrributed: 属性化
属性化项目不允许 MFC 支持和合并代理/存根 (stub) 代码。
默认情况下,其他将对象和控件插入项目的 ATL 向导使用属性化代码。
我们不生成ocx插件的情况下,不勾选此项。
二、ATL简单对象向导
1. 创建ATL Simple Object
右击项目名称,选择Add-〉Class
选择“ATL Simple Object”
点击“Add”进入设置向导。
2. 设置类名
3. 设置选项
默认状态下。
我么需要错误支持和链接点
三、添加方法向导
切换到“Class View”选项卡上,选择接口(ItestSOW),右击add-〉Add Method
添加方法名称以及参数
进行IDL属性设置,默认即可。
生成的文件
testSOW.h
// testSOW.h : Declaration of the CtestSOW#pragma once#include "resource.h" // main symbols#include "testATL.h"#include "_ItestSOWEvents_CP.h"#if defined(_WIN32_WCE) && !defined(_CE_DCOM) && !defined(_CE_ALLOW_SINGLE_THREADED_OBJECTS_IN_MTA)#error "Single-threaded COM objects are not properly supported on Windows CE platform, such as the Windows Mobile platforms that do not include full DCOM support. Define _CE_ALLOW_SINGLE_THREADED_OBJECTS_IN_MTA to force ATL to support creating single-thread COM object's and allow use of it's single-threaded COM object implementations. The threading model in your rgs file was set to 'Free' as that is the only threading model supported in non DCOM Windows CE platforms."#endif// CtestSOWclass ATL_NO_VTABLE CtestSOW :public CComObjectRootEx<CComSingleThreadModel>,public CComCoClass<CtestSOW, &CLSID_testSOW>,public ISupportErrorInfo,public IConnectionPointContainerImpl<CtestSOW>,public CProxy_ItestSOWEvents<CtestSOW>,public IDispatchImpl<ItestSOW, &IID_ItestSOW, &LIBID_testATLLib, /*wMajor =*/ 1, /*wMinor =*/ 0>{public:CtestSOW(){}DECLARE_REGISTRY_RESOURCEID(IDR_TESTSOW)BEGIN_COM_MAP(CtestSOW)COM_INTERFACE_ENTRY(ItestSOW)COM_INTERFACE_ENTRY(IDispatch)COM_INTERFACE_ENTRY(ISupportErrorInfo)COM_INTERFACE_ENTRY(IConnectionPointContainer)END_COM_MAP()BEGIN_CONNECTION_POINT_MAP(CtestSOW)CONNECTION_POINT_ENTRY(__uuidof(_ItestSOWEvents))END_CONNECTION_POINT_MAP()// ISupportsErrorInfoSTDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid);DECLARE_PROTECT_FINAL_CONSTRUCT()HRESULT FinalConstruct(){return S_OK;}void FinalRelease(){}public: STDMETHOD(testMehod1)(BSTR inParam);};OBJECT_ENTRY_AUTO(__uuidof(testSOW), CtestSOW)
testSOW.cpp
// testSOW.cpp : Implementation of CtestSOW#include "stdafx.h"#include "testSOW.h"// CtestSOWSTDMETHODIMP CtestSOW::InterfaceSupportsErrorInfo(REFIID riid){static const IID* arr[] = {&IID_ItestSOW};for (int i=0; i < sizeof(arr) / sizeof(arr[0]); i++){if (InlineIsEqualGUID(*arr[i],riid))return S_OK;}return S_FALSE;}STDMETHODIMP CtestSOW::testMehod1(BSTR inParam){ // TODO: Add your implementation code here return S_OK;}
参考文章(MSDN)
1. ATL 项目向导
2. ATL 项目向导的应用程序设置
3. 添加 ATL 简单对象
4. ATL 简单对象向导
5. “ATL 简单对象向导”的“选项”
6. 添加方法
- 使用VS2005创建COM
- vs2005使用ATL开发COM
- 使用VS2005创建“OCX”
- VS2005 C#创建WebService使用线程
- VS2005 C#创建WebService使用线程(续)
- 如何使用VS2005创建web安装包
- 在vs2005中使用Com连接SAP系统-Form方式
- 在vs2005中使用Com连接SAP系统-Web方式
- 在vs2005中使用Com连接SAP系统(一)
- 在vs2005中使用Com连接SAP系统(二)
- 在vs2005中使用Com连接SAP系统(一)
- 在vs2005中使用Com连接SAP系统(二)
- vba调用vs2005使用atl开发的com组件
- vs2005入门 之 定义类、创建及使用对象[视频]
- 使用VS2005方式创建安装包的一个问题
- 使用vs2005 webservice 创建,部署,调用的简单实例
- 初学者VS2005 .Net WebService使用(一)- 创建WebService 三步曲
- Java 使用SWT 创建COM对象。
- 通过分母有理化求根式的值
- DOG尺度空间
- Android
- MIB
- 标签切换
- 使用VS2005创建COM
- poj 2482 Stars in Your Window(线段树+扫描线)
- mongodb中的group功能
- eclipse配置spket
- Java 文件拷贝
- cocos2dx中的屏幕大小
- 内部类与匿名内部类区别和应用
- hadoop DistributeCatche使用代码片段
- WPF 数据绑定需要注意的地方