Win32 API 日本語リファレンス
ホームUI.Controls.RichEdit › IRichEditOle

IRichEditOle

COM
IID00020d00-0000-0000-c000-000000000046継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

IRichEditOle インターフェイスは、リッチエディットコントロールの Component Object Model (COM) 機能を公開します。このインターフェイスは、EM_GETOLEINTERFACE メッセージを送信することで取得できます。このインターフェイスには次のメソッドがあります。

メソッド 16

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT GetClientSite(IOleClientSite** lplpolesite)

新しいオブジェクトを作成する際に使用する IOleClientSite インターフェイスを取得します。リッチエディットコントロールに挿入されるすべてのオブジェクトは、この関数が返すクライアントサイトインターフェイスを使用する必要があります。1 つのクライアントサイトは、ちょうど 1 つのオブジェクトに対してのみ使用できます。

lplpolesiteIOleClientSite**outIOleClientSite インターフェイスのアドレス。

戻り値

Type: HRESULT

成功した場合は S_OK を、それ以外の場合は失敗コードを返します。クライアントサイト用のメモリを割り当てられなかった場合は E_OUTOFMEMORY が返されます。

vtbl 4 INT GetObjectCount()

リッチエディットコントロールに現在含まれているオブジェクトの数を返します。

戻り値

Type: LONG

このメソッドはオブジェクトの数を返します。

vtbl 5 INT GetLinkCount()

リッチエディットコントロール内でリンクであるオブジェクトの数を返します。

戻り値

Type: LONG

このメソッドはリンクの数を返します。

vtbl 6 HRESULT GetObject(INT iob, REOBJECT* lpreobject, RICH_EDIT_GET_OBJECT_FLAGS dwFlags)

リッチエディットコントロール内のオブジェクトに関する情報を、REOBJECT 構造体に格納して取得します。

iobINTin情報を返す対象のオブジェクトを指定する 0 から始まるインデックス。このパラメーターが REO_IOB_USE_CP の場合、REOBJECT 構造体で指定された文字位置にあるオブジェクトに関する情報が返されます。
lpreobjectREOBJECT*inoutオブジェクトに関する情報を受け取る構造体。この構造体で返されるインターフェイスの参照カウントはインクリメントされています。Release メソッドを使用してカウントをデクリメントするのは呼び出し元の責任です。
dwFlagsRICH_EDIT_GET_OBJECT_FLAGSin

構造体で返すインターフェイスを指定する操作フラグ。dwFlags パラメーターには、次の値の組み合わせを指定できます。

意味
REO_GETOBJ_POLEOBJ
オブジェクトインターフェイスを取得します。
REO_GETOBJ_PSTG
ストレージインターフェイスを取得します。
REO_GETOBJ_POLESITE
サイトインターフェイスを取得します。
REO_GETOBJ_NO_INTERFACES
インターフェイスを取得しません。
REO_GETOBJ_ALL_INTERFACES
すべてのインターフェイスを取得します。

戻り値

Type: HRESULT

成功した場合は S_OK を、それ以外の場合はエラー値を返します。REOBJECT 構造体用のバッファーが指定されていない場合、または iob の値や文字位置が無効な場合は E_INVALIDARG が返されます。

vtbl 7 HRESULT InsertObject(REOBJECT* lpreobject)

リッチエディットコントロールにオブジェクトを挿入します。

lpreobjectREOBJECT*inoutオブジェクトの情報とインターフェイス。リッチエディットコントロールがインターフェイスを保持する場合は、その参照カウントを自動的にインクリメントします。そのため、インターフェイスが不要であれば呼び出し元は安全に解放できます。

戻り値

Type: HRESULT

成功した場合は S_OK を、それ以外の場合は失敗コードを返します。オブジェクトを挿入するためのメモリを割り当てられなかった場合は E_OUTOFMEMORY が返されます。

解説(Remarks)

REOBJECT 構造体の cp メンバーが REO_CP_SELECTION の場合、選択範囲は指定されたオブジェクトで置き換えられます。

vtbl 8 HRESULT ConvertObject(INT iob, GUID* rclsidNew, LPSTR lpstrUserTypeNew)

オブジェクトを新しい型に変換します。この呼び出しはオブジェクトを再読み込みしますが、更新を強制はしません。更新は呼び出し元が行う必要があります。

iobINTin変換するオブジェクトのインデックス。このパラメーターが REO_IOB_SELECTION の場合、選択されているオブジェクトが変換対象になります。
rclsidNewGUID*inオブジェクトの変換先となるクラスのクラス識別子。
lpstrUserTypeNewLPSTRinオブジェクトの変換先となるクラスの、ユーザーに表示される型名。

戻り値

Type: HRESULT

成功した場合は S_OK を、それ以外の場合は失敗コードを返します。インデックスが無効な場合は E_INVALIDARG が返されます。

vtbl 9 HRESULT ActivateAs(GUID* rclsid, GUID* rclsidAs)

旧クラスのすべてのオブジェクトをアンロードし、それらのオブジェクトを新クラスのオブジェクトとして扱うよう OLE に指示し、オブジェクトを再読み込みすることで、Activate As の動作を処理します。オブジェクトを再読み込みできない場合は削除されます。

rclsidGUID*in旧クラスのクラス識別子。
rclsidAsGUID*in新クラスのクラス識別子。

戻り値

Type: HRESULT

成功した場合は S_OK を、それ以外の場合は失敗コードを返します。

vtbl 10 HRESULT SetHostNames(LPSTR lpstrContainerApp, LPSTR lpstrContainerObj)

オブジェクトがリッチエディットコントロールに挿入される際に、それらのオブジェクトに与えるホスト名を設定します。ホスト名は、開かれたオブジェクトのコンテナーコンテキストを説明するために、サーバーのユーザーインターフェイスで使用されます。

lpstrContainerAppLPSTRinコンテナーアプリケーションの名前 (null 終端)。
lpstrContainerObjLPSTRinコンテナーのドキュメントまたはオブジェクトの名前 (null 終端)。

戻り値

Type: HRESULT

成功した場合は S_OK を、それ以外の場合は失敗コードを返します。文字列を保持するためのメモリを割り当てられなかった場合は E_OUTOFMEMORY が返されます。

vtbl 11 HRESULT SetLinkAvailable(INT iob, BOOL fAvailable)

オブジェクトのフラグ内の link-available ビットの値を設定します。

iobINTinビットを設定する対象のオブジェクトのインデックス。このパラメーターが REO_IOB_SELECTION の場合、選択されているオブジェクトのビットが設定対象になります。
fAvailableBOOLin設定操作で使用する値。値は TRUE または FALSE を指定できます。

戻り値

Type: HRESULT

成功した場合は S_OK を、それ以外の場合は失敗コードを返します。インデックスが無効な場合は E_INVALIDARG が返されます。

vtbl 12 HRESULT SetDvaspect(INT iob, DWORD dvaspect)

リッチエディットコントロールがオブジェクトを描画する際に使用するアスペクトを設定します。この呼び出しは、オブジェクトにキャッシュされている描画情報を変更しません。これは呼び出し元が行う必要があります。ただし、この呼び出しによってオブジェクトは再描画されます。

iobINTinアスペクトを設定する対象のオブジェクトのインデックス。このパラメーターが REO_IOB_SELECTION の場合、選択されているオブジェクトのアスペクトが設定対象になります。
dvaspectDWORDin描画時に使用するアスペクト。値は OLE によって定義されます。

戻り値

Type: HRESULT

成功した場合は S_OK を、それ以外の場合は失敗コードを返します。インデックスが無効な場合は E_INVALIDARG が返されます。

vtbl 13 HRESULT HandsOffStorage(INT iob)

リッチエディットコントロールが、指定されたオブジェクトに関連付けられたストレージインターフェイスへの参照を解放するタイミングを示します。この呼び出しは、オブジェクトの IRichEditOle::HandsOffStorage メソッドを呼び出しません。それは呼び出し元が行う必要があります。

iobINTinストレージを解放する対象のオブジェクトのインデックス。このパラメーターが REO_IOB_SELECTION の場合、選択されているオブジェクトのストレージが解放対象になります。

戻り値

Type: HRESULT

成功した場合は S_OK を、それ以外の場合は失敗コードを返します。インデックスが無効な場合は E_INVALIDARG が返されます。

vtbl 14 HRESULT SaveCompleted(INT iob, IStorage* lpstg)

直近の保存操作が完了したこと、およびリッチエディットコントロールがそのオブジェクトに対して別のストレージを保持すべきことを示します。

iobINTinストレージを指定する対象のオブジェクトのインデックス。このパラメーターが REO_IOB_SELECTION の場合、選択されているオブジェクトが使用されます。
lpstgIStorage*inオブジェクトの新しいストレージ。ストレージが NULL でない場合、リッチエディットコントロールは現在そのオブジェクトに対して保持しているストレージをすべて解放し、代わりにこの新しいストレージを使用します。

戻り値

Type: HRESULT

成功した場合は S_OK を、それ以外の場合は失敗コードを返します。インデックスが無効な場合は E_INVALIDARG が返されます。

vtbl 15 HRESULT InPlaceDeactivate()

リッチエディットコントロールが、現在アクティブなインプレースオブジェクト (存在する場合) を非アクティブ化するタイミングを示します。

戻り値

Type: HRESULT

成功した場合は S_OK を、それ以外の場合は失敗コードを返します。アクティブなインプレースオブジェクトが存在しない場合、このメソッドは成功します。

vtbl 16 HRESULT ContextSensitiveHelp(BOOL fEnterMode)

リッチエディットコントロールがコンテキスト依存ヘルプモードに移行するか、そこから抜けるかを示します。状態変化が発生している場合、リッチエディットコントロールは、現在アクティブなインプレースオブジェクトの IRichEditOle::ContextSensitiveHelp メソッドを呼び出します。

fEnterModeBOOLinコントロールがコンテキスト依存ヘルプモードに入る (TRUE) か、そこから抜ける (FALSE) かを示すインジケーター。

戻り値

Type: HRESULT

成功した場合は S_OK を、それ以外の場合は失敗コードを返します。

vtbl 17 HRESULT GetClipboardData(CHARRANGE* lpchrg, DWORD reco, IDataObject** lplpdataobj)

エディットコントロール内の範囲に対するクリップボードオブジェクトを取得します。

lpchrgCHARRANGE*inoutクリップボードオブジェクトを作成する対象の範囲。
recoDWORDin未使用。
lplpdataobjIDataObject**outlpchrg パラメーターで指定された範囲を表すクリップボードオブジェクトの IDataObject インターフェイス。

戻り値

Type: HRESULT

成功した場合は S_OK を返します。メソッドが失敗した場合は、次のいずれかの値を返すことがあります。

戻り値 説明
E_INVALIDARG
無効な引数がありました。
E_OUTOFMEMORY
操作を実行するのに十分なメモリがありませんでした。
vtbl 18 HRESULT ImportDataObject(IDataObject* lpdataobj, WORD cf, HGLOBAL hMetaPict)

クリップボードオブジェクトをリッチエディットコントロールにインポートし、現在の選択範囲を置き換えます。

lpdataobjIDataObject*inインポートするクリップボードオブジェクト。
cfWORDin使用するクリップボード形式。0 を指定すると、利用可能な最適な形式が使用されます。
hMetaPictHGLOBALinオブジェクトのアイコン表示を含むメタファイルへのハンドル。このハンドルは、Paste Special 操作で DVASPECT_ICON 表示アスペクトが必要とされる場合にのみ使用されます。

戻り値

Type: HRESULT

成功した場合は S_OK を返します。メソッドが失敗した場合は、次のいずれかの値を返すことがあります。

戻り値 説明
E_INVALIDARG
無効な引数がありました。
E_OUTOFMEMORY
操作を実行するのに十分なメモリがありませんでした。
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IRichEditOle "{00020D00-0000-0000-C000-000000000046}"
#usecom global IRichEditOle IID_IRichEditOle "{}"
#comfunc global IRichEditOle_GetClientSite         3 sptr
#comfunc global IRichEditOle_GetObjectCount        4
#comfunc global IRichEditOle_GetLinkCount          5
#comfunc global IRichEditOle_GetObject             6 int,var,int
#comfunc global IRichEditOle_InsertObject          7 var
#comfunc global IRichEditOle_ConvertObject         8 int,var,str
#comfunc global IRichEditOle_ActivateAs            9 var,var
#comfunc global IRichEditOle_SetHostNames          10 str,str
#comfunc global IRichEditOle_SetLinkAvailable      11 int,int
#comfunc global IRichEditOle_SetDvaspect           12 int,int
#comfunc global IRichEditOle_HandsOffStorage       13 int
#comfunc global IRichEditOle_SaveCompleted         14 int,sptr
#comfunc global IRichEditOle_InPlaceDeactivate     15
#comfunc global IRichEditOle_ContextSensitiveHelp  16 int
#comfunc global IRichEditOle_GetClipboardData      17 var,int,sptr
#comfunc global IRichEditOle_ImportDataObject      18 sptr,int,sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。