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

正文內(nèi)容

com:可連接對象結(jié)構(gòu)化存儲-資料下載頁

2024-10-12 16:06本頁面

【導(dǎo)讀】類型信息由組件一方提供??蛻籼峁┏鼋涌诘膶?shí)現(xiàn),實(shí)現(xiàn)出接口的COM. 也是一個(gè)COM接口,有IID. 每個(gè)成員函數(shù)代表了:。普通的COM對象,支持一個(gè)或者多個(gè)出。連接枚舉器——實(shí)現(xiàn)IEnumConnections接口

  

【正文】 根存儲第一章 第二章第一節(jié)文件頭章信息............第二節(jié)節(jié)信息 圖片格式信息 位圖數(shù)據(jù)第二章第一節(jié) 章信息第二節(jié)節(jié)信息 表格格式信息 表格數(shù)據(jù)..................? 復(fù)合文件格式的文檔結(jié)構(gòu) 結(jié)構(gòu)化存儲特性 —— 訪問模式 ? STGM_CREATE ? STGM_CONVERT ? STGM_FAILIFTHERE ? STGM_DELETEONRELEASE ? STGM_DIRECT ? STGM_TRANSACTED ? STGM_PRIORITY ? STGM_READ ? STGM_WRITE ? STGM_READWRITE ? STGM_SHARE_DENY_READ ? STGM_SHARE_DENY_WRITE ? STGM_SHARE_EXCLUSIVE ? STGM_SHARE_DENY_NONE 結(jié)構(gòu)化存儲特性 —— 事務(wù)機(jī)制 ? 數(shù)據(jù)一致性和完整性 ? 操作: Commit、 Revert ? 事務(wù)嵌套:以 STGM_TRANSACTED標(biāo)志為基礎(chǔ) ? 事務(wù)機(jī)制需要消耗較多系統(tǒng)資源 ? Commit參數(shù): – STGC_DEFAULT – STGC_OVERWRITE – STGC_ONLYIFCURRENT – STGC_DANGEROUSLYCOMMITMERELYTODISKCACHE 結(jié)構(gòu)化存儲特性 —— 命名規(guī)則 ? 根存儲對象的名字遵守文件系統(tǒng)的命名約定 ? 長度不超過 32個(gè)字符 ? 首字符使用大于 32的字符,小于 32的字符作為首字符有特殊意義 ? 不能使用字符 “ \”、 “ /”、 “ :”和 “ !” ? 名字 “ .”和 “ ..”被保留 ? 名字保留大小寫,但比較操作大小寫無關(guān) 結(jié)構(gòu)化存儲特性 —— 增量訪問 ?減少保存和打開文件的時(shí)間 ?降低了應(yīng)用程序?qū)ο到y(tǒng)資源的要求 ?問題: –通過根存儲逐層找到目標(biāo)對象 –空間回收 復(fù)合文檔 ?結(jié)構(gòu)化存儲的具體實(shí)現(xiàn) ?底層機(jī)制: LockBytes對象 –把存儲介質(zhì)描述成一般化的字節(jié)序列 ?復(fù)合文檔 API函數(shù) ?零內(nèi)存保存特性 LockBytes 復(fù)合文檔模型 root Disk 其他 Memory LockBytes對象 ? ILockBytes接口 class ILockBytes : public IUnknown { public : virtual HRESULT ReadAt (ULARGE_INTEGER , VOID *pv, unsigned long , unsigned long *) = 0。 virtual HRESULT WriteAt (ULARGE_INTEGER , VOID *pv, unsigned long , unsigned long *) = 0。 virtual HRESULT Flush ()= 0。 virtual HRESULT SetSize (ULARGE_INTEGER cb) = 0。 virtual HRESULT LockRegion (ULARGE_INTEGER , ULARGE_INTEGER , unsigned long ) = 0。 virtual HRESULT UnlockRegion (ULARGE_INTEGER , ULARGE_INTEGER , unsigned long ) = 0。 virtual HRESULT Stat (STATSTG *, unsigned long ) = 0。 }。 復(fù)合文檔 API函數(shù) ? 創(chuàng)建復(fù)合文檔的 API函數(shù) – StgCreateDocfile、 StgCreateDocfileOnILockBytes ? 打開復(fù)合文檔的 API函數(shù) – StgOpenStorage、 StgOpenStorageOnILockBytes ? 與內(nèi)存句柄有關(guān)的一組操作函數(shù) – CreateILockBytesOnHGlobal、GetHGlobalFromILockBytes – CreateStreamOnHGlobal、 GetHGlobalFromStream ? 其他 零內(nèi)存保存特性 ? 意義:資源耗盡之后,保留修改信息 ? 資源預(yù)留,對于所有的流對象和存儲對象 ? “ Save”操作,只要調(diào)用 Commit函數(shù)即可 ? “ Save As”操作,利用根存儲對象上的IRootStorage接口,調(diào)用 SwitchToFile成員函數(shù),再調(diào)用 Commit函數(shù)即可。 與 CLSID的聯(lián)系 ? IStorage::SetClass函數(shù)把存儲對象與 CLSID聯(lián)系起來 ? GetClassFile函數(shù),從文件到 CLSID: 復(fù)合文件,直接得到根存儲的 CLSID 非復(fù)合文件: (1) 文件擴(kuò)展名 〉 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 復(fù)合文檔與 COM的關(guān)系 ? 復(fù)合文檔技術(shù)以 COM為基礎(chǔ) ? 應(yīng)用程序在處理復(fù)合文檔時(shí) – 把 storage或 stream直接交給 COM組件來處理 – COM組件接受 storage或 stream作為數(shù)據(jù)存儲 – 多個(gè)組件協(xié)同處理同一個(gè)文件 ? 永久對象 永久對象 ? 永久對象 – 實(shí)現(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, … ... ? 永久對象可以實(shí)現(xiàn)多個(gè)永久接口,但使用時(shí)要保持一致性 永久對象用法 ?永久對象與結(jié)構(gòu)化存儲模型結(jié)合 ?永久對象例子 –用 MFC實(shí)現(xiàn)的 COM對象 –功能:永久狀態(tài)為一段文本,使用永久接口對文本維護(hù) –實(shí)現(xiàn)了 IPersistStream和一個(gè)自動化接口 復(fù)合文檔例子 復(fù)合文檔查看工具
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1