FORMATETC 結構

FORMATETC 結構是一般化剪貼簿格式,已增強為包含目標裝置、 數據的外觀 或檢視,以及儲存媒體。 數據取用者,例如 OLE 容器應用程式,會傳遞 FORMATETC 結構做為 IDataObject 呼叫中的自變數,以指出它想要的數據源數據類型,例如複合檔案物件。 來源會 使用 FORMATETC 結構來描述它可以提供的格式。

FORMATETC 幾乎可以描述任何數據,包括其他物件,例如Moniker。 容器可以呼叫 IDataObject::EnumFormatEtc 來要求其中一個內嵌物件列出其數據格式,此物件會傳回實作 IEnumFORMATETC 介面的列舉值物件。 物件不能只回復它具有「文字和點陣圖」,而是可以提供數據的詳細說明,包括轉譯數據的裝置(通常是螢幕或印表機),要呈現給使用者的外觀(完整內容、縮圖、圖示或格式化印表),以及包含數據的儲存媒體(全域記憶體, 磁碟檔案、記憶體對象或數據流。 這項能夠及時嚴格描述數據,會導致高品質的印表機和屏幕輸出,以及數據流覽的效率更高,其中縮圖素描的擷取和顯示速度比完全詳細的轉譯更快。

下表列出 FORMATETC 數據結構的欄位及其指定的資訊。

欄位 指定
cfFormat
要轉譯數據的格式,可以是標準剪貼簿格式、專屬格式或 OLE 格式。 如需 OLE 格式的詳細資訊,請參閱 複合檔
ptd
DVTARGETDEVICE 結構,其中包含 Windows 目標裝置的足夠資訊,例如螢幕或列印機,以便使用 CreateDC 函式建立其裝置內容的句柄。
dwAspect
要轉譯之數據的層面或檢視;可以是完整內容、縮圖草圖、圖示或格式化列印。
lindex
感興趣的層面的一部分:對於目前,值必須是 -1,表示整個檢視都感興趣。
tymed
數據的儲存媒體,可以是全域記憶體、磁碟檔案,或其中一個 COM 結構化記憶體介面的實例。

數據格式和傳輸媒體