当前位置:高等教育资讯网  >  中国高校课件下载中心  >  大学文库  >  浏览文档

北京大学:《组件技术》课程教学资源(讲义课件)第八讲 COM开发

资源类别:文库,文档格式:PDF,文档页数:77,文件大小:321.18KB,团购合买
一、Win32SDK和MFC介绍 二、MFC对COM的支持 三、用MFC开发COM组件 四、ATL对COM的支持 五、用ATL开发COM组件 六、布置作业
点击下载完整版文档(PDF)

COM开发 潘爱民 http://www.icst.pkuedu.cn/compcourse

COM开发 潘爱民 http://www.icst.pku.edu.cn/compcourse

内容 Win32SDK和MFC介绍 MFC对COM的支持 用MFC开发COM组件 ATL对COM的支持 用ATL开发COM组件 布置作业

内容 • Win32 SDK和MFC介绍 • MFC对COM的支持 • 用MFC开发COM组件 • ATL对COM的支持 • 用ATL开发COM组件 • 布置作业

Win32SDK: Windows程序结构 入口函数 Winmain 应用初始化 主窗口的创建及显示 消息分发循环 程序结束处理

Win32 SDK: Windows程序结构 • 入口函数WinMain • 应用初始化 • 主窗口的创建及显示 • 消息分发循环 • 程序结束处理

Win32SDK对COM的支持 Win32SDK包括COM库函数的支持 Wn32SDK提供的一些头文件的说明 头文件 说明 Unknwn. h 标准接口 IUnknown和 IClassFactory的D及接口成员函数的定义。 Types. h 包含了COM使用的数据结构的说明。 所有标准接口的定义,既可用于C语言风格的定义,也可用于C艹语言风格 Objid. h 的定义。 Cometh 所有标准接口以及COM和OE内部对象的 CLSID ObjBase h 所有的 COMAPI函数的说明。 Ole2. h 所有经过封装的OLE辅助函数

Win32 SDK对COM的支持 • Win32 SDK包括COM库函数的支持 Win32 SDK 提供的一些头文件的说明 头文件 说明 Unknwn.h 标准接口 IUnknown 和 IClassFactory 的 IID 及接口成员函数的定义。 Wtypes.h 包含了 COM 使用的数据结构的说明。 Objidl.h 所有标准接口的定义,既可用于 C 语言风格的定义,也可用于 C++语言风格 的定义。 Comdef.h 所有标准接口以及 COM 和 OLE 内部对象的 CLSID。 ObjBase.h 所有的 COM API 函数的说明。 Ole2.h 所有经过封装的 OLE 辅助函数

利用宏描述接口 DECLARE INTERFACE (IClassFactory, IUnknown STDMETHOD(QueryInterface)(THIS REFIID riid LPVOID FAR* PPVObJ PURE STDMETHOD ULONG, AddRef)(THIS) PURE STDMETHOD (ULONG, Release)(THIS) PURE STDMETHOD(CreateInstance)(THIS LPUNKNOWN pUnkOuter REFIID riid LP VOID FAR PPVObject)PURE, STDMETHOD(Lock Server )(THIS BOOL fLock) PURE

利用宏描述接口 DECLARE_INTERFACE_(IClassFactory, IUnknown) { STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE; STDMETHOD_(ULONG,AddRef) (THIS) PURE; STDMETHOD_(ULONG,Release) (THIS) PURE; STDMETHOD(CreateInstance) (THIS_ LPUNKNOWN pUnkOuter, REFIID riid, LPVOID FAR* ppvObject) PURE; STDMETHOD(LockServer)(THIS_ BOOL fLock) PURE; };

VC提供的用于描述接口的宏 与COM接口有关的一些宏的说明 宏 说明 DECLARE INTERFACE(iface 声明接口iace,它不从其它的接口派生。 DECLARE INTERFACE( iface, baseiface)声明接口iece,它从接口bsee派生。 STDMETHOD(method) 声明接口成员函数 method,函数返回类型为 HRESULT。 STDMETHOD(type, method) 声明接口成员函数 method,函数返回类型为tpe

VC提供的用于描述接口的宏 与 COM 接口有关的一些宏的说明 宏 说明 DECLARE_INTERFACE(iface) 声明接口 iface,它不从其它的接口派生。 DECLARE_INTERFACE_( iface, baseiface) 声明接口 iface,它从接口 baseiface 派生。 STDMETHOD(method) 声明接口成员函数 method,函数返回类型为 HRESULT。 STDMETHOD_(type,method) 声明接口成员函数 method,函数返回类型为 type

MFC基础 应用类 Afx Netapp CWinApp: InitInstance CWinApp: ExitInstance CWinApp: Onldle CWinApp: Run CWnd*m pMainWnd 窗口类 AfxGetmain Wnd

MFC基础 • 应用类 – AfxGetApp – CWinApp::InitInstance – CWinApp::ExitInstance – CWinApp::OnIdle – CWinApp::Run – CWnd *m_pMainWnd • 窗口类 – AfxGetMainWnd

MFC的消息处理机制 消息映射表 在CWnd派生类定义中加入声明: DECLARE MESSAGE MAPO 在类的实现文件中加入表和表项的定义: BEGIN MESSAGE MAP(the Class, base Class END MESSAGE MAP

MFC的消息处理机制 ——消息映射表 • 在CWnd派生类定义中加入声明: DECLARE_MESSAGE_MAP() • 在类的实现文件中加入表和表项的定义: BEGIN_MESSAGE_MAP(theClass, baseClass) ...... END_MESSAGE_MAP

消息映射表示例 BEGIN MESSAGE MAP(the Class, base Class RAFX MSG MAP(the Class) ON WM SETFOCUSO ON WM CREATEO ON WM DESTROYO ON WM CLOSEO ON WM SIZEO ON MESSAGECWM COMMANDHELP, OnCommandHelp ON MESSAGECWM HELPHITTEST, On HelpHitTest ON UPDATE COMMAND UI(ID VIEW STATUS BAR OnUpdate ControlBarMenu) ON NOTIFY EX RANGE(TTN NEEDTEXTW, 0, OXFFFF On ToolTip Text) ∥} AFX MSG MAP END MESSAGE MAP

消息映射表示例 BEGIN_MESSAGE_MAP(theClass, baseClass) //{{AFX_MSG_MAP(theClass) ON_WM_SETFOCUS() ON_WM_CREATE() ON_WM_DESTROY() ON_WM_CLOSE() ON_WM_SIZE() ON_MESSAGE(WM_COMMANDHELP, OnCommandHelp) ON_MESSAGE(WM_HELPHITTEST, OnHelpHitTest) ON_UPDATE_COMMAND_UI(ID_VIEW_STATUS_BAR, OnUpdateControlBarMenu) ON_NOTIFY_EX_RANGE(TTN_NEEDTEXTW, 0, 0xFFFF, OnToolTipText) //}}AFX_MSG_MAP END_MESSAGE_MAP

MFC应用类型 常规应用:MD应用、SD应用、基于对话框程序 DLL应用:静态连接MFC库的正规DL、动态连接 MFC库的正规DLL、MFC扩展DL 其他应用: 支持OLE服务或者包容器的SD应用 支持OLE服务或者包容器的MD应用 支持自动化( Automation)服务的SD或者MD程序 ActiveX控制应用OCX应用

MFC应用类型 • 常规应用:MDI应用、SDI应用、基于对话框程序 • DLL应用:静态连接MFC库的正规DLL、动态连接 MFC库的正规DLL、MFC扩展DLL • 其他应用: – 支持OLE服务或者包容器的SDI应用 – 支持OLE服务或者包容器的MDI应用 – 支持自动化(Automation)服务的SDI或者MDI程序 – ActiveX控制应用(OCX应用)

点击下载完整版文档(PDF)VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
共77页,可试读20页,点击继续阅读 ↓↓
相关文档

关于我们|帮助中心|下载说明|相关软件|意见反馈|联系我们

Copyright © 2008-现在 cucdc.com 高等教育资讯网 版权所有