## 呼び出し手順

SL4 は以下の手順でプラグインを組み込み、実行します。

### SL4 起動

1. SL4 は、起動時に Plugins フォルダを検索し、プラグインファイルをロードします。
2. 関数 SLXGetName を実行し、プラグインの名前を取得します。もし同じ名前のプラグインが既に組み込まれている場合はエラーになり、その旨がユーザーに通知されます。
3. プラグインファイルをアンロードします。

### プラグイン起動

1. プラグインファイルをロードします。
2. 関数 SLXSetInitFile を実行し、プラグインに設定ファイルの名前を通知します。
3. 関数 SLXGetButton を実行し、プラグインが持つボタンをロードします。
4. 関数 SLXGetMenu を実行し、プラグインが持つメニューをロードします。
5. 関数 SLXBeginPlugin を実行し、プラグインに開始を通知します。通常このときにプラグインは関数 SLXSetInitFile で取得したファイルから設定を読み込みます。

### プラグイン停止

1. 関数 SLXEndPlugin を実行し、プラグインに終了を知らせます。通常このときにプラグインは関数 SLXSetInitFile で取得したファイルに設定を保存します。
2. プラグインファイルをアンロードします。

### パッド

1. パッドのアクティブ状態が変更された際に、関数 SLXChangePadForeground を実行します。
2. パッドにマウスが入った際と出た際に、関数 SLXChangePadMouseEntered を実行します。

### ボタン

1. ボタンがパッドに作成される際に、関数 SLXButtonCreate を実行します。
2. ボタンがパッドから削除される際に、関数 SLXButtonDestroy を実行します。
3. ボタンをクリックで関数 SLXButtonClick を実行します。
4. ボタンでファイルを開く際に、関数 SLXButtonDropFiles を実行します。
5. 構造体 TSLXButtonInfo のメンバ OwnerDraw が TRUE の場合、ボタン描画時に関数 SLXButtonDraw と関数 SLXButtonDrawEx を実行します。
6. 構造体 TSLXButtonInfo のメンバ UpdateInterval が 1 以上のボタンの場合、指定の間隔で関数 SLXButtonUpdate を実行します。また、関数 SLXButtonUpdate の戻り値が TRUE だった場合、ボタンを再描画します。
7. 構造体 TSLXButtonInfo のメンバ OwnerChip が TRUE のボタンの場合、ボタンにカーソル通過で関数 SLXButtonChip を実行し、チップを表示します。
8. ボタンの追加／変更ダイアログの設定ボタンのクリックで関数 SLXButtonOptions を実行します。

### メニュー

1. メニューの選択で関数 SLXMenuClick を実行します。
2. メニュー表示時に関数 SLXMenuCheck を実行し、戻り値が TRUE の場合メニューにチェックマークを付けます。

### オプション

1. プラグインの情報で、関数 SLXGetExplanation を実行します。
2. プラグインの設定で、関数 SLXChangeOptions を実行します。戻り値が TRUE の場合、関数 SLXButtonUpdate を実行します。