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 をモデル化し、アプリケーションでは 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 |