MFC库结构 CObject 其它类 应用类结构 Internet支持类 图形设备环境类 CCmd Target 异常类L文件服务类数组类 运行时刻对象支持 制支持类 列表类 简单值类型 窗口支持文档类 图形对象类 射类 结构 CWnd 菜单类 nternet 其它支持类 ODBC支持类 集合模板类 框架窗口类L对话框类L视类一控制类DAO支持类 自动化类型 控制条类 步类 用于同步的类 属性页表类 / indows套接字类
MFC库结构 CObject CCmdTarget CWnd 应用类结构 窗口支持 异常类 文件服务类 文档类 框架窗口类 控制条类 属性页表类 对话框类 视类 控制类 图形设备环境类 控制支持类 Windows 套接字类 图形对象类 菜单类 ODBC 支持类 DAO 支持类 同步类 其它类: Internet 支持类 自动化类型 运行时刻对象支持 简单值类型 结构 其它支持类 集合模板类 用于同步的类 数组类 列表类 映射类 Internet 类
MFC对COM应用的支持
MFC对COM应用的支持
用嵌套类实现COM接口 class Dictionary ∥构造函数和析构函数 HRESULT stdcall QueryInterface(REFIID iid, void** ppvObj); ULONG stdcall Add Ref ULONG stdcall releasee class XDictionaryObj: public IDictionary DIctionary*m pArent; virtual HreSULT stdcall QueryInterface(REFIID iid, void** ppvobj); virtual ulonG stdcall Add refo virtual ULONG stdcall Releasee virtual BOoL stdcall Initialize(; virtual void stdcall Freelibraryo 3 m dictionaryObj; 未完
用嵌套类实现COM接口 class CDictionary { …… //构造函数和析构函数 HRESULT __stdcall QueryInterface(REFIID iid, void** ppvObj); ULONG __stdcall AddRef(); ULONG __stdcall Release(); class XDictionaryObj : public IDictionary { public: CDictionary * m_pParent; virtual HRESULT __stdcall QueryInterface(REFIID iid, void** ppvObj); virtual ULONG __stdcall AddRef(); virtual ULONG __stdcall Release(); virtual BOOL __stdcall Initialize(); …... virtual void __stdcall FreeLibrary(); } m_dictionaryObj; 未完
用嵌套类实现COM接口(续一) 续 class XspellCheckObj: public ISpell Check publ DIctionary*m pArent virtual HRESULT stdcall QueryInterface(REFIID iid, void** ppvobj); virtual ULONG stdcall AddRef(; virtual ulonG stdcall released virtual BOOL stdcall Check Word(String word, String *); 3 m spellCheckobj ate struct Dict*m pData cha "m DictFilename[ 128; Int nt m n WordNumber. m nStructNumber };
用嵌套类实现COM接口(续一) class XSpellCheckObj : public ISpellCheck { public: CDictionary * m_pParent; virtual HRESULT __stdcall QueryInterface(REFIID iid, void** ppvObj); virtual ULONG __stdcall AddRef(); virtual ULONG __stdcall Release(); virtual BOOL __stdcall CheckWord (String word, String *); } m_spellCheckObj; private : struct DictWord *m_pData; char *m_DictFilename[128]; int m_Ref ; int m_nWordNumber, m_nStructNumber; }; 续
用嵌套类实现COM接口(续二) CDictionary: CDictionaryO ∥ initializtion m dictionaryObj. m pArent=this m spellCheckObi. m pArent=this
用嵌套类实现COM接口 (续二 ) CDictionary::CDictionary() { ....... // Initializtion m_dictionaryObj. m_pParent = this; m_spellCheckObj. m_pParent = this; }