ITfRange::InsertEmbedded 方法 (msctf.h)
ITfRange::InsertEmbedded方法會在文字範圍的起始錨點位置插入物件。
語法
HRESULT InsertEmbedded(
[in] TfEditCookie ec,
[in] DWORD dwFlags,
[in] IDataObject *pDataObject
);
參數
[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 |