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

正文內容

com:可連接對象結構化存儲(參考版)

2024-10-16 16:06本頁面
  

【正文】 與 CLSID的聯(lián)系 ? IStorage::SetClass函數(shù)把存儲對象與 CLSID聯(lián)系起來 ? GetClassFile函數(shù),從文件到 CLSID: 復合文件,直接得到根存儲的 CLSID 非復合文件: (1) 文件擴展名 〉 ProgID〉 CLSID (2) HKEY_CLASSES_ROOT\FileType鍵提供了匹配規(guī)則: HKEY_CLASSES_ROOT FileType {clsid } type id = offset,cb,mask,value type id = offset,cb,mask,value 復合文檔與 COM的關系 ? 復合文檔技術以 COM為基礎 ? 應用程序在處理復合文檔時 – 把 storage或 stream直接交給 COM組件來處理 – COM組件接受 storage或 stream作為數(shù)據存儲 – 多個組件協(xié)同處理同一個文件 ? 永久對象 永久對象 ? 永久對象 – 實現(xiàn)了 IPersistXXX接口的 COM對象 ? 永久接口: – class IPersist : public IUnknown – class IPersistStream : public IPersist – class IPersistStreamInit : public IPersist – class IPersistFile : public IPersist – class IPersistStorage : public Ipersist ? 永久接口的成員函數(shù): – GetClassID、 IsDirty、 Load和 Save, … ... ? 永久對象可以實現(xiàn)多個永久接口,但使用時要保持一致性 永久對象用法 ?永久對象與結構化存儲模型結合 ?永久對象例子 –用 MFC實現(xiàn)的 COM對象 –功能:永久狀態(tài)為一段文本,使用永久接口對文本維護 –實現(xiàn)了 IPersistStream和一個自動化接口 復合文檔例子 復合文檔查看工具 。 }。 virtual HRESULT UnlockRegion (ULARGE_INTEGER , ULARGE_INTEGER , unsigned long ) = 0。 virtual HRESULT SetSize (ULARGE_INTEGER cb) = 0。 virtual HRESULT WriteAt (ULARGE_INTEGER , VOID *pv, unsigned long , unsigned long *) = 0。 }。 virtual HRESULT SetStateBits (unsigned long grfStateBits, unsigned long grfMask) = 0。 virtual HRESULT SetElementTimes(const WCHAR *,FILETIME const *,FILETIME const*, FILETIME const *) = 0。 virtual HRESULT DestroyElement (const WCHAR * pwcsName) = 0。 virtual HRESULT Revert ()= 0。 virtual HRESULT MoveElementTo(const WCHAR * , LPSTORAGE *,char const * , unsigned long ) = 0。 virtual HRESULT OpenStorage (const WCHAR* , LPSTORAGE *, unsigned long , SNB , unsigned long , LPSTORAGE * ) = 0。 virtual HRESULT OpenStream (const WCHAR * , unsigned long , LPSTREAM * ) = 0。 }。 virtual HRESULT Stat (STATSTG *pStatStg, unsigned long grfStatFlag) = 0。 virtual HRESULT LockRegion (ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, unsigned long dwLockType) = 0。 virtual HRESULT Commit (unsigned long dwCommitFlags) = 0。 virtual HRESULT SetSize (ULARGE_INTEGER libNewSize) = 0。 virtual HRESULT Write (void *pv, unsigned long cb, unsigned long *pcbWritten) = 0。 ? 在接口映射表中加入接口IConnectionPointContainer的表項,再加入連接映射表 ? 定義連接點類的虛函數(shù) (至少為 GetIID) ? 加入事件激發(fā)函數(shù) 用 MFC在客戶程序中實現(xiàn)接收器 ?初始化 —— AfxOleInit ?定義出接口成員類 ?實現(xiàn)出接口成員類 ?創(chuàng)建源對象 ?建立連接和取消連接 ?完成可觸發(fā)事件的動作 用 MFC實現(xiàn)的例子 ATL實現(xiàn)可連接對象 ? 在 IDL中 – 定義一個用作出接口的 automation接口 – 在 coclass中加入出接口,含 source屬性 ? 增加 IConnectionPointContainer接口 – 在基類列表中增加 – IConnectionPointConntainerImplCMyClass – 在 COM MAP中加入 – COM_INTERFACE_ENTRY(IConnectionPointConntainer) 模板類 IConnectionPointImpl ? CMyClass繼承 IConnectionPointImpl一次或多次 – IConnectionPointImpl實現(xiàn)了獨立的引用計數(shù) – 用法:在基類列表中增加 – IConnectionPointImplCMyClass, amp。 END_TRY ()。 (pDispatch, FALSE)。 while (pos != NULL) { pDispatch = (LPDISPATCH) (pos)。 POSITION pos = ()。 }。 virtual HRESULT GetIDsOfNames(REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId) = 0。 } 與出接口有關
點擊復制文檔內容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1