次の方法で共有


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

挿入するデータ転送オブジェクトへのポインター。

戻り値

このメソッドは、これらの値のいずれかを返すことができます。

説明
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 をモデル化し、アプリケーションでは OleGetClipboard から返される IDataObject と同様に pDataObject を使用します。

範囲が複数のリージョンをカバーする場合は、各リージョンで メソッドを個別に呼び出す必要があります。 そうしないと、メソッドが失敗する可能性があります。

既定では、テキスト サービスは範囲をカバーする一時的なコンポジションを開始および終了し、コンテキスト所有者が編集されたテキストに対してコンポジションを一貫して認識できるようにします。 コンポジション所有者が既定のコンポジションを拒否した場合、メソッドはTF_E_COMPOSITION_REJECTEDを返します。 既定のコンポジションは、呼び出し元がまだ開始されていない場合にのみ作成されます。 呼び出し元にアクティブなコンポジションがある場合、呼び出しは失敗します。

コンテキスト所有者が特定のオブジェクトの挿入をサポートしているかどうかを事前に確認するには、 ITfQueryEmbedded::QueryInsertEmbedded を使用します。

要件

   
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリ |UWP アプリ]
対象プラットフォーム Windows
ヘッダー msctf.h
[DLL] Msctf.dll
再頒布可能パッケージ Windows 2000 Professional 上の TSF 1.0

関連項目

Idataobject

ITfDocumentMgr::CreateContext

ITfEditSession::D oEditSession

ITfRange

ITfRange::GetEmbedded

その他のフレームワーク定数

テキスト ストア