ITfRange::InsertEmbedded 方法 (msctf.h)

ITfRange::InsertEmbedded 方法在文本范围的起始定位点位置插入对象。

语法

HRESULT InsertEmbedded(
  [in] TfEditCookie ec,
  [in] DWORD        dwFlags,
  [in] IDataObject  *pDataObject
);

parameters

[in] ec

编辑从 ITfDocumentMgr::CreateContextITfEditSession::D oEditSession 获取的 Cookie。

[in] dwFlags

指定插入方式的位字段。 如果设置了 TF_IE_CORRECTION ,则此操作是一种更正,以便其他文本服务可以保留与原始文本关联的数据。

[in] pDataObject

指向要插入的数据传输对象的指针。

返回值

此方法可以返回其中一个值。

说明
S_OK
方法成功。
E_NOTIMPL
实现应用程序不会在其流中公开嵌入的对象。
TF_E_COMPOSITION_REJECTED
上下文所有者拒绝了默认组合。
TF_E_FORMAT
上下文所有者无法处理指定的对象类型。
TF_E_NOLOCK
ec 参数的值是无效的 Cookie,或者调用方没有只读锁。
TF_E_RANGE_NOT_COVERED
调用方已具有活动组合,但范围位于合成未涵盖的文本上。
TF_E_READONLY
无法修改文档或区域的位置。

注解

使用此方法可将对象插入到文本流中,因为无法将 TF_CHAR_EMBEDDED 对象占位符字符传递到 ITfRange::SetText 中。 此方法在 OLE 剪贴板 API 之后建模,应用程序使用 pDataObject ,就像从 OleGetClipboard 返回的 IDataObject 一样。

当范围涵盖多个区域时,应在每个区域单独调用 方法。 否则,方法可能会失败。

默认情况下,文本服务将启动和结束涵盖该区域的临时合成,以确保上下文所有者始终识别编辑文本上的合成。 如果合成所有者拒绝默认组合,则该方法返回TF_E_COMPOSITION_REJECTED。 仅当调用方尚未启动默认组合时,才会创建默认组合。 如果调用方具有活动组合,则调用将失败。

若要提前确定上下文所有者是否支持插入特定对象,请使用 ITfQueryEmbedded::QueryInsertEmbedded

要求

   
最低受支持的客户端 Windows 2000 专业版 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows 2000 Server [桌面应用 |UWP 应用]
目标平台 Windows
标头 msctf.h
DLL Msctf.dll
可再发行组件 Windows 2000 专业版上的 TSF 1.0

另请参阅

IDataObject

ITfDocumentMgr::CreateContext

ITfEditSession::D oEditSession

ITfRange

ITfRange::GetEmbedded

其他框架常量

文本存储