hm.NETでは比較的複雑な「常駐型」のプログラムが組まれることも想定されています。
こういったプログラムで必要となるのが、
ユーザーのタイミングで秀丸がクローズされた時、後片付けの処理を実行する
というものです。
返り値がIntPtrの関数(メソッド)を適当に定義します。
引数もIntPtrのメソッドを定義します。
(引数に関しては引数なしでも大丈夫です)
秀丸エディタ v8.66未満
freedll #HMNET などこの#DLLを手動でfreedllしようとした。
loaddll関数ではなく、loaddll文を利用しており、新たなloaddll文が呼ばれることで、解放されようしている。
loaddll文はそもそもhm.NETでは使うべきではない。
プロセスが終了した(タブが閉じたか秀丸自体が閉じた)
keepdll #HMNET, 0 が記載されている場合に発生する。
マクロエラーによりdllが強制的に終了する際にこの4となる。
keepdll #HMNET, 3を指定している時にのみ発生する。 ファイルを閉じて「無題」になる等、「プロセスが残った」状態でファイルが切り替わると呼び出される
秀丸を閉じることで、該当の秀丸プロセスが終了します。
(タブモードであれば、タブそのものを閉じてタブを減らす行為をする)
この時、秀丸が完全に終了する直前に OnDetachMethod が実行される、ということになります。
を組む場合には、この「SetDetachMethod」を利用した「後片付けをするメソッドの指定」は必須なものとなるでしょう。