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

ITextDocument

COMIDispatch (デュアル)
IDispatch を実装(デュアルインターフェース)。HSP では comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。
IID8cc497c0-a1df-11ce-8098-00aa0047be5d継承元IDispatch呼び出し名前(IDispatch) または vtbl自前メソッド開始 vtbl7

メソッド 19

vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。

vtbl 7 HRESULT GetName(LPWSTR* pName)
pNameLPWSTR*outドキュメントの名前(ファイル名)を受け取る BSTR を受け取るポインタである。
vtbl 8 HRESULT GetSelection(ITextSelection** ppSel)
ppSelITextSelection**outドキュメントの選択範囲を表す ITextSelection を受け取るポインタである。
vtbl 9 HRESULT GetStoryCount(INT* pCount)
pCountINT*outドキュメント内のストーリー(テキスト領域)の数を受け取るポインタである。
vtbl 10 HRESULT GetStoryRanges(ITextStoryRanges** ppStories)
ppStoriesITextStoryRanges**outドキュメント内のストーリー範囲を列挙する ITextStoryRanges を受け取るポインタである。
vtbl 11 HRESULT GetSaved(INT* pValue)
pValueINT*outドキュメントが保存済みかどうかを受け取るポインタである。
vtbl 12 HRESULT SetSaved(tomConstants Value)
ValuetomConstantsinドキュメントの保存状態(保存済みまたは未保存)を指定する。
vtbl 13 HRESULT GetDefaultTabStop(FLOAT* pValue)
pValueFLOAT*out既定のタブ幅を受け取るポインタである。
vtbl 14 HRESULT SetDefaultTabStop(FLOAT Value)
ValueFLOATin既定のタブ幅を指定する。
vtbl 15 HRESULT New()
vtbl 16 HRESULT Open(VARIANT* pVar, tomConstants Flags, INT CodePage)
pVarVARIANT*in開く対象(ファイル名またはストリーム)を格納した VARIANT へのポインタである。
FlagstomConstantsinファイルを開く際のモードとアクセス権を指定するフラグである。
CodePageINTinテキストの読み込みに使用するコードページを指定する。
vtbl 17 HRESULT Save(VARIANT* pVar, tomConstants Flags, INT CodePage)
pVarVARIANT*in保存先(ファイル名またはストリーム)を格納した VARIANT へのポインタである。NULL を指定すると現在のファイルに保存する。
FlagstomConstantsinファイルを保存する際のモードを指定するフラグである。
CodePageINTinテキストの書き込みに使用するコードページを指定する。
vtbl 18 HRESULT Freeze(INT* pCount)
pCountINT*out凍結後のネストカウントを受け取るポインタである。
vtbl 19 HRESULT Unfreeze(INT* pCount)
pCountINT*out凍結解除後のネストカウントを受け取るポインタである。
vtbl 20 HRESULT BeginEditCollection()
vtbl 21 HRESULT EndEditCollection()
vtbl 22 HRESULT Undo(INT Count, INT* pCount)
CountINTin取り消す操作の回数を指定する。
pCountINT*out実際に取り消された操作の回数を受け取るポインタである。
vtbl 23 HRESULT Redo(INT Count, INT* pCount)
CountINTinやり直す操作の回数を指定する。
pCountINT*out実際にやり直された操作の回数を受け取るポインタである。
vtbl 24 HRESULT Range(INT cpActive, INT cpAnchor, ITextRange** ppRange)
cpActiveINTin範囲のアクティブ端の文字位置を指定する。
cpAnchorINTin範囲のアンカー端の文字位置を指定する。
ppRangeITextRange**out生成された ITextRange を受け取るポインタである。
vtbl 25 HRESULT RangeFromPoint(INT x, INT y, ITextRange** ppRange)
xINTinスクリーン座標の X 座標を指定する。
yINTinスクリーン座標の Y 座標を指定する。
ppRangeITextRange**out指定した点に対応する ITextRange を受け取るポインタである。

HSP用 COM定義

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

出力引数:
#define global IID_ITextDocument "{8CC497C0-A1DF-11CE-8098-00AA0047BE5D}"
#usecom global ITextDocument IID_ITextDocument "{}"
#comfunc global ITextDocument_GetName              7 var
#comfunc global ITextDocument_GetSelection         8 sptr
#comfunc global ITextDocument_GetStoryCount        9 var
#comfunc global ITextDocument_GetStoryRanges       10 sptr
#comfunc global ITextDocument_GetSaved             11 var
#comfunc global ITextDocument_SetSaved             12 int
#comfunc global ITextDocument_GetDefaultTabStop    13 var
#comfunc global ITextDocument_SetDefaultTabStop    14 float
#comfunc global ITextDocument_New                  15
#comfunc global ITextDocument_Open                 16 var,int,int
#comfunc global ITextDocument_Save                 17 var,int,int
#comfunc global ITextDocument_Freeze               18 var
#comfunc global ITextDocument_Unfreeze             19 var
#comfunc global ITextDocument_BeginEditCollection  20
#comfunc global ITextDocument_EndEditCollection    21
#comfunc global ITextDocument_Undo                 22 int,var
#comfunc global ITextDocument_Redo                 23 int,var
#comfunc global ITextDocument_Range                24 int,int,sptr
#comfunc global ITextDocument_RangeFromPoint       25 int,int,sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。