Share via


IDataObject.GetCanonicalFormatEtc(FORMATETC, FORMATETC) 方法

定义

提供一个在逻辑上与更复杂的结构等效的标准 FORMATETC 结构。 使用此方法可以确定两个不同的 FORMATETC 结构是否将返回相同的数据,从而无需重复呈现。

public:
 int GetCanonicalFormatEtc(System::Runtime::InteropServices::ComTypes::FORMATETC % formatIn, [Runtime::InteropServices::Out] System::Runtime::InteropServices::ComTypes::FORMATETC % formatOut);
public int GetCanonicalFormatEtc (ref System.Runtime.InteropServices.ComTypes.FORMATETC formatIn, out System.Runtime.InteropServices.ComTypes.FORMATETC formatOut);
abstract member GetCanonicalFormatEtc : FORMATETC * FORMATETC -> int
Public Function GetCanonicalFormatEtc (ByRef formatIn As FORMATETC, ByRef formatOut As FORMATETC) As Integer

参数

formatIn
FORMATETC

由引用传递的、指向 FORMATETC 结构的指针,该结构定义调用方在后续调用(如 GetData(FORMATETC, STGMEDIUM))中检索数据时将要使用的格式、介质和目标设备。 在此情况下,TYMED 成员并无意义,应将其忽略。

formatOut
FORMATETC

此方法返回时,包含指向 FORMATETC 结构的指针(该结构中包含可能用于特定呈现的最常规信息),使其规范地等效于 formatetcIn。 调用方必须分配此结构,并且 GetCanonicalFormatEtc(FORMATETC, FORMATETC) 方法必须填充数据。 为了在后续调用(如 GetData(FORMATETC, STGMEDIUM))中检索数据,调用方将使用提供的 formatOut 值,除非提供的值为 null。 如果方法返回 null,则此值为 DATA_S_SAMEFORMATETC。 在此情况下,TYMED 成员并无意义,应将其忽略。 此参数未经初始化即被传递。

返回

此方法支持 E_INVALIDARG、E_UNEXPECTED 和 E_OUTOFMEMORY 等标准返回值,以及下面的值:

说明
S_OK 返回的 FORMATETC 结构与传递的结构不同。
DATA_S_SAMEFORMATETC FORMATETC 结构都相同,并且在 formatOut 参数中返回 null
DV_E_LINDEX lindex 有一个无效值;当前,只支持 -1。
DV_E_FORMATETC pFormatetc 参数有一个无效值。
OLE_E_NOTRUNNING 应用程序未运行。

注解

有关详细信息,请参阅 IDataObject::GetCanonicalFormatEtc 方法

适用于