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; };