ITfRange::InsertEmbedded 方法 (msctf.h)
ITfRange::InsertEmbedded 方法在文本范围的起始定位点位置插入对象。
语法
HRESULT InsertEmbedded(
[in] TfEditCookie ec,
[in] DWORD dwFlags,
[in] IDataObject *pDataObject
);
parameters
[in] ec
编辑从 ITfDocumentMgr::CreateContext 或 ITfEditSession::D oEditSession 获取的 Cookie。
[in] dwFlags
指定插入方式的位字段。 如果设置了 TF_IE_CORRECTION ,则此操作是一种更正,以便其他文本服务可以保留与原始文本关联的数据。
[in] pDataObject
指向要插入的数据传输对象的指针。
返回值
此方法可以返回其中一个值。
值 | 说明 |
---|---|
|
方法成功。 |
|
实现应用程序不会在其流中公开嵌入的对象。 |
|
上下文所有者拒绝了默认组合。 |
|
上下文所有者无法处理指定的对象类型。 |
|
ec 参数的值是无效的 Cookie,或者调用方没有只读锁。 |
|
调用方已具有活动组合,但范围位于合成未涵盖的文本上。 |
|
无法修改文档或区域的位置。 |
注解
使用此方法可将对象插入到文本流中,因为无法将 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 |