FORMATETC 結構 (objidl.h)

表示一般化的剪貼簿格式。 其增強功能可包含目標裝置、數據的外觀或檢視,以及儲存媒體指示器。 其中一個可能預期會尋找剪貼簿格式,OLE 會改用 FORMATETC 數據結構。 這個結構會當做需要數據格式資訊的 OLE 函式和方法中的參數使用。

語法

typedef struct tagFORMATETC {
  CLIPFORMAT     cfFormat;
  DVTARGETDEVICE *ptd;
  DWORD          dwAspect;
  LONG           lindex;
  DWORD          tymed;
} FORMATETC, *LPFORMATETC;

成員

cfFormat

感興趣的剪貼簿格式。 OLE 可辨識三種類型的格式:

  • 標準交換格式,例如CF_TEXT。
  • 只有提供格式的應用程式或提供類似功能的其他應用程式才能瞭解私人應用程式格式。
  • OLE 格式,用來建立連結或內嵌物件。

ptd

DVTARGETDEVICE 結構的指標,其中包含所組成數據的目標裝置相關信息。 每當指定的數據格式與目標裝置無關,或呼叫端不小心使用哪個裝置時,就會使用 NULL 值。 在後者的情況下,如果數據需要目標裝置,對象應該挑選適當的默認裝置, (通常) 視覺效果元件的顯示。 從具有 NULL 目標裝置的物件取得的數據,例如大部分元檔,都與目標裝置無關。 產生的數據通常與使用者從 [檔案] 選單選擇 [存新檔] 命令並選取交換格式時相同。

dwAspect

指出轉譯中應該包含多少詳細數據。 此參數應該是其中一個 DVASPECT 列舉值。 單一剪貼簿格式可以支持物件的多個層面或檢視。 大部分的數據和簡報傳輸和快取方法都會傳遞層面資訊。 例如,呼叫端可能會使用元檔剪貼簿格式來擷取物件圖示圖片。 請注意,dwAspect 中只能使用一個 DVASPECT 值。 也就是說, dwAspect 不能是數個 DVASPECT 值上布爾值 OR 運算的結果。

lindex

數據必須跨頁面界限分割的一部分。 最常見的值為 -1,可識別所有數據。 對於DVASPECT_THUMBNAIL和DVASPECT_ICON層面,會忽略 lindex。

tymed

其中一個 TYMED 列舉常數,指出用來傳輸對象數據的儲存媒體類型。 數據可以使用物件有意義的任何媒體來傳輸。 例如,數據可以使用全域記憶體、磁碟檔案或結構化儲存對象來傳遞。 如需詳細資訊,請參閱 TYMED 列舉。

備註

FORMATETC 結構是由數據傳輸和呈現介面中的方法所使用,做為指定要傳輸之數據的參數。 例如, IDataObject::GetData 方法會使用 FORMATETC 結構來指出呼叫端要求的確切數據種類。

規格需求

需求
最低支援的用戶端 Windows 2000 專業版 [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows 2000 Server [傳統型應用程式 |UWP 應用程式]
標頭 objidl.h

另請參閱

DVASPECT

IDataAdviseHolder

IDataObject

IEnumFORMATETC

IOleCache

OleCreate

OleCreateFromData

OleCreateLink

OleCreateLinkFromData

OleCreateLinkToFile

OleCreateStaticFromData

STATDATA

STGMEDIUM

TYMED