DataObject.IDataObject.GetCanonicalFormatEtc(FORMATETC, FORMATETC) 方法

定义

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

 virtual int System.Runtime.InteropServices.ComTypes.IDataObject.GetCanonicalFormatEtc(System::Runtime::InteropServices::ComTypes::FORMATETC % pformatetcIn, [Runtime::InteropServices::Out] System::Runtime::InteropServices::ComTypes::FORMATETC % pformatetcOut) = System::Runtime::InteropServices::ComTypes::IDataObject::GetCanonicalFormatEtc;
int IDataObject.GetCanonicalFormatEtc (ref System.Runtime.InteropServices.ComTypes.FORMATETC pformatetcIn, out System.Runtime.InteropServices.ComTypes.FORMATETC pformatetcOut);
abstract member System.Runtime.InteropServices.ComTypes.IDataObject.GetCanonicalFormatEtc : FORMATETC * FORMATETC -> int
override this.System.Runtime.InteropServices.ComTypes.IDataObject.GetCanonicalFormatEtc : FORMATETC * FORMATETC -> int
Function GetCanonicalFormatEtc (ByRef pformatetcIn As FORMATETC, ByRef pformatetcOut As FORMATETC) As Integer Implements IDataObject.GetCanonicalFormatEtc

参数

pformatetcIn
FORMATETC

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

pformatetcOut
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 应用程序未运行。

实现

注解

此成员是显式接口成员的实现。 它只能在 DataObject 被强制转换为 IDataObject 接口时使用。

适用于