home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DOS/V Power Report 2000 April
/
VPR0004A.BIN
/
OLS
/
SADKT100
/
sadkt100.lzh
/
ISREdit.txt
< prev
next >
Wrap
Text File
|
1999-12-31
|
20KB
|
710 lines
/*****************************************************
SARI
interface ISREdit (ver.1.0)解説
1999/12 by Kazuhiro Kito_
*****************************************************/
【概説】
SARIの編集、範囲選択、モード設定などを扱うインターフェースです。
デュアルインターフェースです。
外部から直接生成することはできません。インターフェースを得るには、ISRAPL
インターフェースのCreateEditObjectメソッドを使います。
またSARIのメインウィンドウが作成された後でなければ、このインターフェース
を取得することはできません。
このインターフェースのメソッドの多くは、マクロ記述用インタープリタ言語
ATIONのメソッドの変形です。ATIONのヘルプの使用例も参考にしてください。
(なをこの説明中に使うTRUEは0以外の数値, FALSEは0です。)
【メソッド】
HRESULT CaretUp(
[in]long lRows, // 移動させる行数(表示行数で)
[out,retval]long* plRtn // 実際に移動した量
);
<説明>
カレットを行番号を減らす方向へ移動します。すなわち横書き時は上、
縦書き時は右へ移動します。移動させる行数に負値を指定することはで
きません。
HRESULT CaretDown(
[in]long lRows, // 移動させる行数(表示行数で)
[out, retval]long* plRtn // 実際に移動した量
);
<説明>
カレットを行番号をふやす方向へ移動します。すなわち横書き時は下、
縦書き時は左へ移動します。移動させる行数に負値を指定することはで
きません。
HRESULT CaretLeft(
[in]long lBytes, // 移動させるバイト数
[out, retval]long* plRtn // 実際に移動した量
);
<説明>
カレットを桁数をへらす方向へ移動します。すなわち横書き時は左、縦
書き時は上へ移動します。移動させるバイト数に負値を指定することは
できません。カレットは行頭では止まりません。移動量があるときは前
行の末尾に行きます。
タブ展開部、自動整形モード時の左インデント部も移動量に含みます。
また指定した移動量が2バイト文字の2バイト目をさすときは、その文
字全体を含んで1バイト目まで移動します。
HRESULT CaretRight(
[in]long lBytes,
[out, retval]long* plRtn
);
<説明>
カレットを桁数をふやす方向へ移動します。すなわち横書き時は右、縦
書き時は下へ移動します。移動させるバイト数に負値を指定することは
できません。カレットは行末では止まりません。移動量があるときは次
行の先頭へ行きます。
タブ展開部、自動整形モード時の左インデント部も移動量に含みます。
また指定した移動量が2バイト文字の2バイト目をさすときは、その文
字全体を含んで次の1バイト目まで移動します。
HRESULT ToDRowTop();
<説明>
カレットを表示行先頭へ移動します。
HRESULT ToDRowEnd();
<説明>
カレットを表示行末尾へ移動します。
HRESULT ToLRowTop();
<説明>
カレットを論理行先頭へ移動します。
HRESULT ToLRowEnd();
<説明>
カレットを論理行末尾へ移動します。
HRESULT ToDocTop();
<説明>
カレットを文書先頭へ移動します。
HRESULT ToDocEnd();
<説明>
カレットを文書末尾へ移動します。
HRESULT NextLRowTop(
[out, retval]VARIANT_BOOL* pbResult // 結果の格納
);
<説明>
カレットを次の論理行先頭へ移動します。カレットが最終行にあるとき
はFALSEが返ります。
HRESULT PrevLRowTop([out, retval]VARIANT_BOOL* pbResult);
<説明>
カレットを前の論理行先頭へ移動します。カレットが先頭行にあるとき
はFALSEが返ります。
HRESULT CaretLMoveTo(
[in]long lRow, // 移動先の論理行番号
[in]long lCol // 移動先の論理桁数。
);
<説明>
カレットlRow, lColで指定される位置に移動します。論理行番号は先頭
行を0として数えたインデックスです。論理桁数は、その論理行の先頭を
0とし、表示行をこえて累積的に数えたバイト数です。タブ展開部、自動
整形モード時の左インデント部を含みます。
HRESULT CaretDMoveTo(
[in]long lRow, // 移動先の表示行番号
[in]long lCol // 移動先の桁数
);
<説明>
カレットlRow, lColで指定される位置に移動します。表示行番号は先頭
行を0として数えたインデックスです。桁数は、その表示行の先頭を0と
して数えたバイト数です。タブ展開部、自動整形モード時の左インデン
ト部を含みます。
存在しない行・桁を指定したときの動作は不定です。ハングすることは
ありません。
HRESULT CaretRealLMoveTo(
[in]long lRow, // 移動先の論理行番号
[in]long lCol // 移動先の真の論理桁数。
);
<説明>
カレットlRow, lColで指定される位置に移動します。論理行番号は先頭
行を0として数えたインデックスです。論理桁数は、その論理行の先頭を
0とし、表示行をこえて累積的に数えたバイト数です。このメソッドでは
タブ展開部、自動整形モード時の左インデント部を含みません。
存在しない行・桁を指定したときの動作は不定です。ハングすることは
ありません。
HRESULT GetDCaretPos(
[out]long* plDRow, // 表示行番号
[out]long* plDCol // 桁数
);
<説明>
現在のカレット位置を、表示行番号、桁数として得ます。
HRESULT GetLCaretPos(
[out]long* plLRow, // 論理行番号
[out]long* plLCol, // 論理桁数
[out]long* plRealLCol //真の論理桁数
);
<説明>
現在のカレット位置を、論理行番号、論理桁数として得ます。第3パラ
メータの真の論理桁数は、論理桁数から、タブ展開部、自動整形モード
時の左インデント部をのぞいたものです。
HRESULT SelUp();
<説明>
選択状態で、カレットを行番号を減らす方向へひとつ移動します。すな
わち横書き時は上、縦書き時は右へ移動します。
HRESULT SelDown();
<説明>
選択状態で、カレットを行番号をふやす方向へひとつ移動します。すな
わち横書き時は下、縦書き時は左へ移動します。
HRESULT SelLeft();
<説明>
選択状態で、カレットを桁数をへらす方向へ移動します。すなわち横書
き時は左、縦書き時は上へ移動します。行頭で実行したときは前行の末
尾に行きます。
HRESULT SelRight();
<説明>
選択状態で、カレットを桁数をふやす方向へ移動します。すなわち横書
き時は右、縦書き時は下へ移動します。行末で実行したときは次行の先
頭に行きます。
HRESULT SelDRow();
<説明>
カレットのある表示行全体を選択状態にします。
HRESULT SelLRow();
<説明>
カレットのある論理行全体を選択状態にします。
HRESULT SelAllDoc();
<説明>
全文書を選択状態にします。
HRESULT SelToDRowTop();
<説明>
選択状態でカレットを表示行先頭へ移動します。
HRESULT SelToDRowEnd();
<説明>
選択状態でカレットを表示行末尾へ移動します。
HRESULT SelToLRowTop();
<説明>
選択状態でカレットを論理行先頭へ移動します。
HRESULT SelToLRowEnd();
<説明>
選択状態でカレットを論理行末尾へ移動します。
HRESULT SelToDocTop();
<説明>
選択状態でカレットを文書先頭へ移動します。
HRESULT SelToDocEnd();
<説明>
選択状態でカレットを文書末尾へ移動します。
HRESULT GetSelRange(
[out]long* plARow, // 選択範囲の一端の表示行番号を格納
[out]long* plACol, // 選択範囲の一端の桁数を格納
[out]long* plBRow, // 選択範囲の他の一端の表示行番号を格納
[out]long* plBCol, // 選択範囲の他の一端の桁数を格納
[out, retval]VARIANT_BOOL *pbResult // 結果を格納
);
<説明>
現在の選択範囲を得ます。選択範囲がなかったら、pbResultにFALSEがセ
ットされて返ります。なを*pARow<=*pBRowは保証されません。*pARow>*
pBRowとなる場合があります。
HRESULT GetSelRangeSFA(
[out]VARIANT *pvrRange, //選択範囲を示すSAFEARRAY
[out, retval]VARIANT_BOOL *pbResult // 結果を格納
);
<説明>
現在の選択範囲を得ます。
GetSelRangeメソッドのSAFEARRAY版です。
pvrRangeには、0をインデックスの下底とした、要素数4、long型の
SAFEARRAYがセットされて返ります。各要素は下記の値を持ちます。
pvrRange[0]; // 選択範囲の一端の表示行番号
pvrRange[1]; // 選択範囲の一端の桁数
pvrRange[2]; // 選択範囲の他の一端の表示行番号
pvrRange[3]; // 選択範囲の他の一端の桁数
選択範囲がなかったら、pbResultにFALSEがセットされて返ります。
HRESULT SetSelRange(
[in]long lARow,// 選択範囲の一端の表示行番号
[in]long lACol,// 選択範囲の一端の桁数
[in]long lBRow,// 選択範囲の他の一端の表示行番号
[in]long lBCol,// 選択範囲の他の一端の桁数
[out, retval]VARIANT_BOOL* pbResult // 結果を格納
);
<説明>
新たに選択範囲を設定します。存在しない行・桁を指定するなどして、
設定できなかったときは、*pbResultにFALSEが返ります。
HRESULT SetSelRangeSFA(
[in]VARIANT vrRange,//選択範囲のSAFEARRAY
[out, retval]VARIANT_BOOL *pbResult // 結果を格納
);
<説明>
新たに選択範囲を設定します。
SetSelRangeメソッドのSAFEARRAY版です。第1パラメータのVARIANTに
は、0をインデックスの下底とした、要素数4、long型のSAFEARRAYをセ
ットしてください。各要素の意味はGetSelRangeSFAメソッドの説明をご
覧ください。存在しない行・桁を指定するなどして、設定できなかった
ときは、*pbResultにFALSEが返ります。
HRESULT CancelSelect();
<説明>
選択状態をキャンセルし、非選択状態にします。
HRESULT GetDRowString(
[in]VARIANT_BOOL bIntact,// 内部表現状態のまま得るか
[out, retval]BSTR *pbsStr // 文字列格納用
);
<説明>
カレットのある表示行の文字列を取得します。
第1パラメータbIntactがTRUEのときは、SARIの内部表現状態のまま、文
字列をえます。すなわち、タブ展開のためのダミー文字0xFEを含み、改
行は\rで表現された状態です。FALSEを指定したときは、タブ展開のため
のダミー文字を除去し、改行を\r\nとした形で文字列が返されます。(
ATIONのヘルプ「SARIの内部処理」の項を参照)
HRESULT GetLRowString(
[in]VARIANT_BOOL bReserved,//現在は使いません。TRUE/FALSEどちらでも。
[out, retval]BSTR *pbsStr // 文字列格納用
);
<説明>
カレットのある論理行の文字列を取得します。
第1パラメータは将来のために予約されています。このメソッドは
GetDRowStringと異なり、常に、タブ展開のためのダミー文字を除去し、
改行を\r\nとした形で文字列が返されます。
HRESULT GetString(
[in]long lARow, //範囲の一端を示す表示行番号
[in]long lACol, //範囲の一端を示す桁数
[in]long lBRow, //範囲の他の一端を示す表示行番号
[in]long lBCol, //範囲の他の一端を示す桁数
[in]VARIANT_BOOL bIntact,// 内部表現状態のまま得るか
[out, retval]BSTR *pbsStr // 文字列格納用
);
<説明>
lARow行lACol桁から、lBRow行lBCol桁までの範囲の文字列を得ます。
第5パラメータは、SARIの内部表現状態のままで文字列を得るかどうかを指
定します。GetDRowStringの説明を参考にしてください。
HRESULT GetStringSFA(
[in]VARIANT vrRange, //範囲を示すSAFEARRAY
[in]VARIANT_BOOL bIntact,// 内部表現状態のまま得るか
[out, retval]BSTR *pbsStr// 文字列格納用
);
<説明>
範囲を指定して文字列を得ます。
GetStringメソッドのSAFEARRAY版です。
第1パラメータのVARIANTには、0をインデックスの下底とした、要素数
4、long型のSAFEARRAYをセットしてください。各要素の意味は
GetSelRangeSFAメソッドの説明をご覧ください。
HRESULT GetSelString(
[in]VARIANT_BOOL bIntact,// 内部表現状態のまま得るか
[out, retval]BSTR* pbsStr // 文字列格納用
);
<説明>
選択範囲の文字列を得ます。
第1パラメータについては、GetDRowStringの説明を参考にしてくださ
い。
HRESULT GetCharacter(
[out]short* stKindOfChar, //文字の種類が返ります。
[out, retval]BSTR* pbsStr //文字が格納されて返ります。
);
<説明>
カレット位置の文字を一文字得ます。
第1パラメータに返される文字の種類は次のとおりです。
1バイト文字 0
2バイト文字 1
何らかの不正常 0xff
HRESULT DelDRowString(
[in]VARIANT_BOOL bStack
//削除文字列をスタックバッファに入れるかどうか。
);
<説明>
カレットのある表示行を削除します。削除した文字列をスタックバッフ
ァにいれるかどうかを、第1パラメータで指定します。
スタックバッファに関してはATIONのヘルプをご覧ください。
HRESULT DelLRowString(
[in]VARIANT_BOOL bStack
//削除文字列をスタックバッファに入れるかどうか。
);
<説明>
カレットのある論理行を削除します。削除した文字列をスタックバッフ
ァにいれるかどうかを、第1パラメータで指定します。
スタックバッファに関してはATIONのヘルプをご覧ください。
HRESULT DelSelString(
[in]VARIANT_BOOL bStack
//削除文字列をスタックバッファに入れるかどうか。
);
<説明>
選択範囲の文字列を削除します。削除した文字列をスタックバッファに
いれるかどうかを、第1パラメータで指定します。
スタックバッファに関してはATIONのヘルプをご覧ください。
HRESULT BackSpace();
<説明>
バックスペースです。
HRESULT DelCharacter();
<説明>
カレットのある一文字を削除します。
HRESULT DelAllDocument(
[in]VARIANT_BOOL bQuery // 確認メッセージの有無
);
<説明>
全文書を削除し、ドキュメントを空にします。第1パラメータがTRUEの
ときは、削除してもよいかどうかを問いかけるメッセージを表示しま
す。メッセージに対してユーザーがキャンセルすると、削除は実行され
ません。
HRESULT PutString(
[in]BSTR bsStr // 挿入する文字列
);
<説明>
カレット位置に文字列を挿入します。そのときSARIが上書きモードな
ら、上書きモードで挿入されます。行折り処理などはすべてSARIがおこ
ないます。挿入によりカレットは挿入した文字列の次を示す位置に移動
します。たとえば挿入文字列が"\r\n"で終わっていたなら、挿入によっ
てカレットは次行の先頭へ移動します。
HRESULT InsertFromFile(
[in]BSTR bsPath, // ファイルのパス
[out, retval]VARIANT_BOOL * pbResult // 結果格納用
);
<説明>
カレット位置にファイルから文書を挿入します。ファイルが見つからな
かったり、開くことができなかったときは、pbResultにFALSEが返りま
す。
HRESULT IsInSelectMode(
[out, retval]VARIANT_BOOL *pbReturn // 結果格納用
);
<説明>
カレットのある位置が選択範囲内かどうかを返します。
HRESULT IsDocModified(
[out, retval]VARIANT_BOOL *pbReturn // 結果格納用
);
<説明>
文書が更新されているかどうかを返します。
HRESULT IsOverwriteMode(
[out, retval]VARIANT_BOOL *pbReturn // 結果格納用
);
<説明>
上書きモードならTRUEを、挿入モードならFALSEを返します。
HRESULT EnableEdit(
[out, retval]VARIANT_BOOL *pbReturn // 結果格納用
);
<説明>
編集禁止かどうかを返します。
HRESULT IsAutoFormatMode(
[out, retval]VARIANT_BOOL *pbReturn // 結果格納用
);
<説明>
自動整形モードかどうかを返します。
HRESULT IsAutoIndentMode(
[out, retval]VARIANT_BOOL *pbReturn // 結果格納用
);
<説明>
自動インデントモードかどうかを返します。
HRESULT SetModified(
[in]VARIANT_BOOL bSet // セットする値。FALSE/TRUE
);
<説明>
更新フラグを設定します。
HRESULT SetOverwriteMode(
[in]VARIANT_BOOL bSet // セットする値。FALSE/TRUE
);
<説明>
上書きモード/挿入モードを切り替えます。
パラメータがTRUEなら上書きモード、FALSEなら挿入モードに変わりま
す。
HRESULT SetEnableEdit(
[in]VARIANT_BOOL bSet // セットする値。FALSE/TRUE
);
<説明>
編集禁止を設定/解除します。
パラメータがTRUEなら編集可能、FALSEなら編集禁止です。
HRESULT SetAutoFormatMode(
[in]VARIANT_BOOL bSet // セットする値。FALSE/TRUE
);
<説明>
自動整形モードをを設定/解除します。
パラメータがTRUEなら自動整形モード、FALSEなら非自動整形モードで
す。
HRESULT SetAutoIndentMode(
[in]VARIANT_BOOL bSet // セットする値。FALSE/TRUE
);
<説明>
自動インデントを設定/解除します。
パラメータがTRUEなら自動インデント、FALSEなら自動インデントしませ
ん。
HRESULT GetMaxColumn(
[out, retval]long* lCol // 桁数格納用
);
<説明>
設定されている行折りの桁数を得ます。
HRESULT SetMaxColumn(
[in]long lSetCol, // 設定する桁数
[in]VARIANT_BOOL bRemakeRows, // 行折り処理をしなおすかどうか。
[out, retval]long* lNewCol //実際に設定された桁数の格納用
);
<説明>
行折りの桁数を第1パラメータの値にします。ただし、一定数(現在は
10桁)以下の桁数を指定したときや、タブ展開数より小さな桁数を指定
したときなど、指定どおりの桁数に設定されない場合があります。第3
パラメータに実際に設定された新しい桁数が返ります。
第2パラメータがTRUEなら、新たな桁数によって、文書全体の行折り処
理をやりなおします。FALSEなら行折り処理はしません。その場合、それ
以降に編集される論理行だけ、新たな桁数が適用されます。
HRESULT GetTabSize(
[out, retval]long* lSize // タブ展開桁数格納用
);
<説明>
設定されているタブ展開桁数を得ます。
HRESULT SetTabSize(
[in]long lSetSize, // 設定するタブ展開数
[in]VARIANT_BOOL bRemakeRows,// 行折り処理をしなおすかどうか。
[out,retval]long* lNewSize //実際に設定された数値の格納用
);
<説明>
タブ展開の桁数を第1パラメータの値にします。ただし、行折りの桁数
より大きな値を指定したときなど、指定どおりに設定されない場合があ
ります。第3パラメータに実際に設定された数値が返ります。
第2パラメータがTRUEなら、文書全体の行折り処理をやりなおします。
FALSEなら行折り処理はしません。その場合、それ以降に編集される論理
行だけ、新たなタブ展開数が適用されます。
HRESULT GetLeftAutoIndentBytes(
[out, retval]short* stBytes // 数値の格納用
);
<説明>
自動整形モードのときだけ意味をもちます。
カレットのある表示行で、左インデントのためにプログラムが挿入した
空白文字全体の桁数を返します。
HRESULT GetIndentAdjustment(
[out]short* stHowMany, // インデントの増減値
[out]VARIANT_BOOL* bZenspace, // 増減値が全角文字の個数かどうか。
[out,retval]VARIANT_BOOL* pbResult // 自動整形モードかどうか。
);
<説明>
自動整形モードのときだけ意味をもちます。
左インデント処理で、2行目以降のインデント量の増減値を返します。
第2パラメータにTRUEが返ったときは、その増減値が、全角文字の数で
指定されていることを示します。FALSEなら、増減値はバイト数で指定さ
れています。非自動整形モード時には第3パラメータにFALSEが返りま
す。
HRESULT SetIndentAdjustment(
[in]short stHowMany,// 設定するインデントの増減値
[in]VARIANT_BOOL bZenspace, // 増減値が全角文字の個数かどうか。
[out, retval]VARIANT_BOOL* pbResult // 成功したか
);
<説明>
自動整形モードのときだけ意味をもちます。
左インデント処理で、2行目以降のインデント量の増減値を指定しま
す。第2パラメータがTRUEなら、その増減値は全角文字の数で指定され
たものとします。FALSEなら増減値はバイト数です。非自動整形モード時
には第3パラメータにFALSEが返ります。
HRESULT IsIMEOpened(
[out,retval]VARIANT_BOOL* pbResult // 結果格納用
);
<説明>
IMEがオンかオフかを返します。
HRESULT SetIME(
[in]VARIANT_BOOL bOpen // TRUE/FALSE
);
<説明>
IMEをオン(TRUE)にし、あるいはオフ(FALSE)にします。
HRESULT IsFormattingNow(
[out, retval]VARIANT_BOOL * pbResult // 結果格納用
);
<説明>
SARIはファイルを読み込むとき、別スレッドで行折り処理を行います。
その処理中かどうかを返します。
HRESULT SetStatusBarText(
[in]BSTR bsText // 表示する文字列
);
<説明>
ステータスバーに文字列を表示します。
表示できる文字列の長さは画面のレゾルーションによります。
あまり長い文字列を指定しないでください。