freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

com開發(fā)-資料下載頁

2024-10-18 03:46本頁面

【導(dǎo)讀】主窗口的創(chuàng)建及顯示。Win32SDK包括COM庫函數(shù)的支持。Unknwn.h標(biāo)準(zhǔn)接口IUnknown和IClassFactory的IID及接口成員函數(shù)的定義。Wtype包含了COM使用的數(shù)據(jù)結(jié)構(gòu)的說明。Comdef.h所有標(biāo)準(zhǔn)接口以及COM和OLE內(nèi)部對象的CLSID。ObjBase.h所有的COMAPI函數(shù)的說明。Ole2.h所有經(jīng)過封裝的OLE輔助函數(shù)。DECLARE_INTERFACE聲明接口iface,它不從其它的接口派生。STDMETHOD聲明接口成員函數(shù)method,函數(shù)返回類型為HRESULT。在CWnd派生類定義中加入聲明:。在類的實現(xiàn)文件中加入表和表項的定義:。//構(gòu)造函數(shù)和析構(gòu)函數(shù)

  

【正文】 CComContainedObject(void* pv) {m_pOuterUnknown = (IUnknown*)pv。} STDMETHOD_(ULONG, AddRef)() {return OuterAddRef()。} STDMETHOD_(ULONG, Release)() {return OuterRelease()。} STDMETHOD(QueryInterface)(REFIID iid, void ** ppvObject) { …… // 調(diào)用 OuterQueryInterface(iid, ppvObject)。 } …… IUnknown* GetControllingUnknown() { … } }。 // CComObjectRootBase基類中聯(lián)合成員 m_pOuterUnknown起作用 接口映射表項類型 ? COM_INTERFACE_ENTRY ? COM_INTERFACE_ENTRY_IID(iid, x) ? COM_INTERFACE_ENTRY2(x, x2) ? COM_INTERFACE_ENTRY2_IID(iid, x, x2) ? COM_INTERFACE_ENTRY_FUNC(iid, dw, func) ? COM_INTERFACE_ENTRY_FUNC_BLIND(dw, func) ? COM_INTERFACE_ENTRY_TEAR_OFF(iid, x) ? COM_INTERFACE_ENTRY_CACHED_TEAR_OFF(iid, x, punk) ? COM_INTERFACE_ENTRY_AGGREGATE(iid, punk) ? COM_INTERFACE_ENTRY_AGGREGATE_BLIND(punk) ? COM_INTERFACE_ENTRY_CHAIN(classname) ATL Servers ?功能 – Register and Unregister all class – exposing class object – managing server’s lifetime ? ATL實現(xiàn)結(jié)構(gòu) – object map – CComModule Object Map ? 示例 BEGIN_OBJECT_MAP(ObjectMap) OBJECT_ENTRY(CLSID_DictionaryObj, CDictionaryObj) OBJECT_ENTRY_NON_CREATEABLE(COtherObj) END_OBJECT_MAP() ? 宏定義: define BEGIN_OBJECT_MAP(x) static _ATL_OBJMAP_ENTRY x[] = { define END_OBJECT_MAP() {NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL}}。 _ATL_OBJMAP_ENTRY定義 struct _ATL_OBJMAP_ENTRY { const CLSID* pclsid。 HRESULT (WINAPI *pfnUpdateRegistry)(BOOL bRegister)。 _ATL_CREATORFUNC* pfnGetClassObject。 _ATL_CREATORFUNC* pfnCreateInstance。 IUnknown* pCF。 DWORD dwRegister。 _ATL_DESCRIPTIONFUNC* pfnGetObjectDescription。 _ATL_CATMAPFUNC* pfnGetCategoryMap。 void (WINAPI *pfnObjectMain)(bool bStarting)。 }。 OBJECT_ENTRY定義 define OBJECT_ENTRY(clsid, class) {amp。clsid, class::UpdateRegistry, class::_ClassFactoryCreatorClass::CreateInstance, class::_CreatorClass::CreateInstance, NULL, 0, class::GetObjectDescription, class::GetCategoryMap, class::ObjectMain }, define OBJECT_ENTRY_NON_CREATEABLE(class) {amp。CLSID_NULL, class::UpdateRegistry, NULL, NULL, NULL, 0, NULL, class::GetCategoryMap, class::ObjectMain }, 類的注冊 ? OBJECT_ENTRY中的 class::UpdateRegistry項 – 要求每個類都要提供 UpdateRegistry成員 – 宏: ? DECLARE_NO_REGISTRY() ? DECLARE_REGISTRY(class, pid, vpid, nid, flags) ? DECLARE_REGISTRY_RESOURCE(x) ? DECLARE_REGISTRY_RESOURCEID(x) ? 缺省生成的工程使用資源進(jìn)行注冊 – Registry Script File 類 廠 ? OBJECT_ENTRY宏包含: class::_ClassFactoryCreatorClass::CreateInstance ? DECLARE_CLASSFACTORY_EX宏定義: define DECLARE_CLASSFACTORY_EX(cf) \ typedef CComCreator CComObjectCached cf \ _ClassFactoryCreatorClass。 define DECLARE_CLASSFACTORY() \ DECLARE_CLASSFACTORY_EX(CComClassFactory) ? CComCoClass定義中包含 DECLARE_CLASSFACTORY() 類實例的創(chuàng)建 ? OBJECT_ENTRY宏包含: class::_CreatorClass::CreateInstance ? DECLARE_AGGREGATABLE(x)宏定義: define DECLARE_AGGREGATABLE(x) public:\ typedef CComCreator2 CComCreator CComObject x , \ CComCreator CComAggObject x _CreatorClass。 ? CComCoClass定義中包含 DECLARE_AGGREGATABLE(T) 類廠與類實例的連接 ?類廠的初始化 – inproc server, DllGetClassObject – outofproc server, RegisterClassObject ?把實例創(chuàng)建函數(shù)傳遞給類廠 – CComClassFactory類具有以下成員: _ATL_CREATORFUNC* m_pfnCreateInstance。 ?類廠的 CreateInstance方法調(diào)用m_pfnCreateInstance CComModule ? 全局變量 – ATL inproc server: CComModule _Module。 – ATL local server: CExeModule _Module。 – servicebase server: CServiceModule _Module。 ? Init/Term函數(shù) ? 注冊功能 ? 提供全局鎖功能 ATL實現(xiàn)窗口類的技術(shù) ?第一次窗口過程為 ATL窗口類 編譯優(yōu)化 ? ATL_NO_VTABLE – 阻止在構(gòu)造 /析構(gòu)過程中調(diào)整 vptr,由于純虛基類的vtable引用只是被構(gòu)造 /析構(gòu)函數(shù)訪問,所以這會導(dǎo)致鏈接器優(yōu)化掉純虛函數(shù)的 vptr ? _ATL_MIN_CRT – 不鏈接標(biāo)準(zhǔn) C/C++運(yùn)行庫 ? _ATL_DLL – 動態(tài)鏈接 ? _ATL_STATIC_REGISTRY – 靜態(tài)鏈接組件注冊功能 字典類的 ATL對象 class CDictionary : public CComObjectRootExCComSingleThreadModel, public CComCoClassCDictionary, amp。CLSID_Dictionary, public IDictionary, public ISpellCheck { public: CDictionary() { } DECLARE_REGISTRY_RESOURCEID(IDR_DICTIONARY) DECLARE_PROTECT_FINAL_CONSTRUCT() BEGIN_COM_MAP(CDictionary) COM_INTERFACE_ENTRY(IDictionary) COM_INTERFACE_ENTRY(ISpellCheck) END_COM_MAP() 字典類的 ATL對象 (續(xù) ) public: // IDictionary STDMETHOD_(BOOL, Initialize)()。 STDMETHOD_(BOOL, LoadLibrary)(LPOLESTR)。 STDMETHOD_(BOOL, InsertWord)(LPOLESTR, LPOLESTR)。 STDMETHOD_(void, DeleteWord)( LPOLESTR)。 STDMETHOD_(BOOL, LookupWord)(LPOLESTR, LPOLESTR *)。 STDMETHOD_(BOOL, RestoreLibrary)(LPOLESTR)。 STDMETHOD_(void, FreeLibrary)()。 // ISpellCheck STDMETHOD_(BOOL, CheckWord)(LPOLESTR, LPOLESTR *)。 private: …… }。 通過 ATL Object Wizard創(chuàng)建對象 通過 ATL Object Wizard設(shè)置對象名字 通過 ATL Object Wizard設(shè)置對象屬性
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1