COM开发
潘爱民
.pcourse
内容
• Win32 SDK和MFC介绍
•的支持
•组件
•的支持
•组件
•布置作业
Win32 SDK: Windows程序结构
•入口函数WinMain
•应用初始化
•主窗口的创建及显示
•消息分发循环
•程序结束处理
Win32 的支持
• Win32 库函数的支持
Win32 SDK 提供的一些头文件的说明
头文件说明
标准接口 IUnknown 和 IClassFactory 的 IID 及接口成员函数的定义。
使用的数据结构的说明。
所有标准接口的定义,既可用于 C 语言风格的定义,也可用于 C++语言风格
的定义。
和 OLE 内部对象的 CLSID。
API 函数的说明。
所有经过封装的 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,
LPVOID FAR* ppvObject) PURE;
STDMETHOD(LockServer)(THIS_
BOOL fLock) PURE;
};
VC提供的用于描述接口的宏
接口有关的一些宏的说明
宏说明
DECLARE_INTERFACE(iface) 声明接口 iface,它不从其它的接口派生。
DECLARE_INTERFACE_( iface, baseiface) 声明接口 iface,它从接口 baseiface 派生。
STDMETHOD(method) 声明接口成员函数 method,函数返回类型为 HRESULT。
STDMETHOD_(type,method) 声明接口成员函数 method,函数返回类型为 type。
MFC基础
•应用类
–AfxGetApp
– CWinApp::InitInstance
– CWinApp::ExitInstance
– CWinApp::OnIdle
– CWinApp::Run
– CWnd *m_pMainWnd
•窗口类
– AfxGetMainWnd
MFC的消息处理机制
——消息映射表
•在CWnd派生类定义中加入声明:
DECLARE_MESSAGE_MAP()
•在类的实现文件中加入表和表项的定义:
BEGIN_MESSAGE_MAP(theClass, baseClass)
......
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(MANDHELP, mandHelp)
ON_MESSAGE(WM_HELPHITTEST, OnHelpHitTest)
MAND_UI(ID_VIEW_STATUS_BAR,
OnUpdateControlBarMenu)
ON_NOTIFY_EX_RANGE(TTN_NEEDTEXTW, 0, 0xFFFF,
OnToolTipText)
//}}AFX_MSG_MAP
END_MESSAGE_MAP
MFC应用类型
•常规应用:MDI应用、SDI应用、基于对话框程序
•DLL应用:静态连接MFC库的正规DLL、动态连接
MFC库的正规DLL、MFC扩展DLL
•其他应用:
–支持OLE服务或者包容器的SDI应用
–支持OLE服务或者包容器的MDI应用
–支持自动化(Automation)服务的SDI或者MDI程序
– ActiveX控制应用(OCX应用)
组件技术讲义------08 来自淘豆网www.taodocs.com转载请标明出处.