//************************************************************************** //Skeleton of treditor.dll(外部エディタ連動) //************************************************************************** // #include #include //外部参照(DLL)関数の定義 #ifdef __cplusplus //この分岐宣言はC言語(*.C)としてコンパイルする時は省略可 extern "C" { #endif __declspec(dllexport) void TREDITOREXECPROGRAM(char*); __declspec(dllexport) void TREDITOREXECOPTION(char*); __declspec(dllexport) void TREDITORFINDWINDOW(char*,int*); __declspec(dllexport) void TREDITORTOP(); __declspec(dllexport) void TREDITORDOWN(int*); __declspec(dllexport) void TREDITORDOWN2(int*); __declspec(dllexport) void TREDITORJUMP(int*); __declspec(dllexport) void TREDITORJUMP2(int*); __declspec(dllexport) void TREDITOREXIT(); #ifdef __cplusplus //この分岐宣言はC言語(*.C)としてコンパイルする時は省略可 } #endif //本DLL内でのグローバル変数を定義 HWND eHwnd; // エディタのWindow Handle //************************************************************************** //外部参照(DLL)関数の引数説明 //[I -] 入力のみ(関数内では参照するだけにして下さい) //[- O] 出力のみ(参照時は未定義になっています。必ず値を返して下さい。) //[I O] 入出力 // // //====================================================================== void TREDITOREXECPROGRAM(char *path) // [- O] 起動エディタのフルパス指定 // 又は // [I -] 初期設定ファイル(TRYCUT.INI)にて // 指定されたエディタのフルパス表現 // 本dll内で格納場所を利用する場合 // それを覚えさせる目的でも利用可。 // 機能:処理の初期化 // 説明:TRYCUT起動時に1回だけ呼ばれます。 //    初期設定ファイル(TRYCUT.INI)側にて指定する場合は省略可 //    ただしMACROなどの格納フォルダを認識する場合は、可能場所の //    特定に利用して下さい。 { //strcpy(path,"C:\\Program Files\\sakura\\sakura.exe"); } //====================================================================== void TREDITOREXECOPTION(char *option) // [- O] 起動時に指定行JUMPする //                      ことを想定した起動オプション // %1をNCファイル名、%2を行番号 // と仮定して指定 // 機能:起動時の引数指定方法を定義します。 // 説明:TRYCUT起動時に1回だけ呼ばれます。 // 起動時の頭だしで使われます。 //    初期設定ファイル(TRYCUT.INI)側にて指定する場合は省略可 // TRYCUT.INIでも指定されていない場合は"%1"と見なします。 { //strcpy(option,"-Y=%2 %1"); } //====================================================================== void TREDITORFINDWINDOW(char *ncfile, // [I -] NCファイル名 int *ist) // [- O] 検索結果フラグ =TRUE :成功 // =FALSE:失敗 // 機能:EditorのWindow Handleを取得 // 説明:EDITOR起動直後に1回だけ呼ばれます。 // 後のコントロール処理で使用するためのWindowのHANDLE(eHwnd)を取得して // おきます。 { *ist=TRUE; } //====================================================================== void TREDITORTOP() // 機能:カーソルをトップに移動 // シミュレーション開始時に呼ばれます。 { } //====================================================================== void TREDITORDOWN(int *num) // [I -] スクロールダウン後の行番号 //    JUMP命令で実現する場合に利用 // 機能:カーソルを一行スクロールダウン // 説明:シミュレーション中のスクロール毎に1回呼ばれます。 //注)スクロールダウンや行番号によるJUMPが出来ない場合で、指定バイト位置 へのJUMPが可能なエディタの場合"TREDITORDOWN2"にて、引数にて行番号の替わ りにバイト位置を指定して下さい。この場合は"TREDITORDOWN"側は削除(省略) して下さい。 { } //====================================================================== void TREDITORJUMP(int *num) // [I -] JUMP先の行番号 // 機能:カーソルを指定行にJUMP // 説明:検索機能を使用したタイミングや、途中停止状態でエディタ側だけ // カーソル位置をズラした場合などの補正に使われます。 //注)行番号によるJUMPが出来ない場合で、指定バイト位置へのJUMPが可能な エディタの場合"TREDITORJUMP2"にて、引数にて行番号の替わりにバイト位置を 指定して下さい。この場合は"TREDITORJUMP"側は削除(省略)して下さい。 { } //====================================================================== void TREDITOREXIT() // 機能:エディタを終了 // 説明:TRYCUT終了時に参照されます。省略可。 // ただし初期設定ファイル(TRYCUT.INI)にて、 // CLOSE END=YES が設定されていることが条件です。設定されて // いない場合は、本関数が用意されていても参照されません。 { }