COM原理及應用----統一資料轉送

來源:互聯網
上載者:User

1、概述

COM提供了應用之間資料交換的標準方案,稱為統一資料轉送(UDT,uniform data transfer)。統一資料轉送技術建立在結構化儲存技術的基礎之上,它通過一個“資料對象”來表達要傳輸的資料資訊,因此,統一資料轉送技術的核心在於資料對象的定義和實現。剪貼簿和拖-放是統一資料轉送的兩個典型應用。

2、資料交換標準

早期的OLE1.0版本使用DDE(Dynamic Data Exchange,動態資料交換)作為資料交換標準,但DDE使用的格式比較簡單,並且只能用全域記憶體作為傳輸介質,所以傳輸的效率和功能都受限制。OLE2.0版本引入了COM作為其基本的結構模型,使用COM提供的統一資料轉送作為其資料交換器制,可直接在不同介質之間進行傳輸。

3、資料交換與傳輸協議的分離

在不同應用之間進行資料轉送操作包括兩方面的內容,首先是資料格式的統一,其次是傳輸協議的建立。

以前採用DDE方式只能使用簡單的資料結構對資訊進行描述,COM的統一資料轉送機制使用“資料對象”作為資訊實體,資料對象通過IDataObject 介面暴露其內部資訊。由於資料對象本身是一個COM對象,因此它不僅可以表達一般的結構化資訊,也可以表達一些非結構化資訊,甚至是動態資訊。IDataObject介面為應用程式進行資料轉送建立了標準。在Windows平台上,最基本的傳輸協議為剪貼簿、拖-放,應用程式通常利用這兩種協議獲得資料對象。

在統一資料機制引入到Windows系統之前,Windows提供了許多API函數以及預定義的訊息用於應用之間傳輸資料的橋樑。這些API函數把傳輸協議和傳輸資料資訊綁在一起,比如用於處理剪貼簿資料傳送的一組函數:GetClipboardData、SetClipboardData和 CloseClipboard等,而DDE則通過發送訊息作為資料傳送的手段。

COM提供的統一資料轉送機制可很好地避免Windows API函數的資料轉送的限制,一方面它定義了兩個資料結構FORMATETC和STGMEDIUM,分別用來描述資料格式和儲存介質,使新的機制可適應更廣泛的資料類型和儲存介質;另一方面它為資料對象提供了“資料表化通知”的機制。

資料對象的概念使統一資料轉送機制不僅可用於應用之間傳輸資料,也可以成為組件程式之間的資訊交換標準。

4、剪貼簿

剪貼簿是一個全系統共用的資料緩衝區,每個應用都可以通過系統提供的API函數訪問剪貼簿。它的三個標準操作是:剪下、複製、粘貼。

Windows系統在引入COM的統一資料轉送機制之前,提供了一組API函數以及預定義的CF_***標準格式,這些格式包括文本類型、位元影像類型、圖元檔案(metafile)資料等,而且這些資料必須存放在全域記憶體中。但剪貼簿技術與資料對象結合之後,情況有了很大的變化,可用於傳輸資料對象,比如 OLE文檔對象、ActiveX控制對象等,或者是應用程式中自訂的資料對象,只要此對象實現IDataObject介面即可。剪貼簿成為資料對象的提供方和接收方之間的通訊協定,而且這種通訊方式是非同步進行的。

5、拖-放

拖-放技術也是基本的傳輸協議,它的使用方式與剪貼簿有所不同,程式採用同步的方式進行。

6、資料結構FORMATETC和STGMEDIUM

FORMATETC結構定義了用於傳輸的資料格式,它擴充了基本的剪貼簿資料格式;STGMEDIUM結構定義了用於傳輸的介質類型,它即可以描述常用的全域記憶體,也可以描述其他的儲存介質。

7、資料對象和IDataObject介面

統一資料轉送中的資料對象是一個COM對象,它實現了IDataObject介面。在資料對象的實現方(即提供方)和客戶(即接收方)之間,IDataObject介面為兩者建立了標準,而各種傳輸協議如剪貼簿和拖-放等,它們所傳遞的實際上是IDataObject介面指標。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.