last update 2002.11.03
したらびあんプラグイン(ShitaraBian-Plugin)
02.11.03時点、開発途上です。以下に示す仕様は予告なく変更されることがありますΣ(゚Д゚ )ガーン

●もくじ
 したらびあんプラグインの利用
 0.したらびあんプラグイン一覧

 したらびあんプラグインの自作
 1.したらびあんプラグイン概要
 2.プラグインの作り方
 3.プラグインAPIリファレンス
 4.したらびあんAPIリファレンス
 5.サンプルプロジェクト


■1.したらびあんプラグイン概要
 ・したらびあんプラグイン(以後sbpと呼びます)はDLLです。
  DLLの拡張子を"sbp"にしただけのものです。
 ・sbpファイルをしたらびあんのexeファイルと同じフォルダにおいておくと、
  したらびあんは起動時にそれらをロードし、利用可能にします。
 ・sbpは主にしたらびあん本体からのイベント処理要求で動きます(イベントドリブン)。
 ・sbpはしたらびあん本体へアクセスして編集文書の情報を取得することができます。


■2.プラグインの作り方
 ・作成手順は通常のDLL作成と同様です。
 ・sbpに実装すべきIFは「プラグインAPIリファレンス」を参照してください。
 ・sbpから利用できるしたらびあん本体のIFは「したらびあんAPIリファレンス」を参照してください。
 ・サンプルプロジェクトを用意しました。参考にしてください。(VC++6.0)
 ・具体的な手順はココにまとめました。


■3.プラグインAPIリファレンス
 ◆注意点
  ・API関数はすべてが必須ではありません。提供したい機能だけ実装すればよいです。
  ・関数はすべて
    extern "C" int __declspec(dllexport) WINAPI 関数名( 引数リスト );
   という形式になりますです。(戻り値の型はみんな一緒♪)
  ・一部の情報を CDocumentIF オブジェクトへのポインタで受け取ります。
  ・MFC必須です。ごめんなさい。

 ◆exportする関数一覧
関数名 引数リスト 機能
OnInitialize void* pDoc ‥ドキュメントI/F 初期化処理。
ロード後に1度だけ実行されます。
初期化ファイルを読み込んで状態復帰、などを行います。
pDoc は CDocumentIF* にキャストしてください。
OnDestroy void* pDoc ‥ドキュメントI/F 終了処理。
したらびあん終了時に実行されます。
設定情報の初期化ファイル書き出し、などを行います。
pDoc は CDocumentIF* にキャストしてください。
GetPlugInName const char** ppName
  ‥格納アドレスのポインタ
プラグイン名称取得。
ppNameにconst文字列へのポインタを返してください。
したらびあんのプラグイン一覧ダイアログに表示されます。
OnDrawWall void* pDoc,  ‥ドキュメントI/F
HDC hdcDst, ‥表示先DC
long left,    ‥左端座標
long top,   ‥上端座標
long width,  ‥X幅
long height  ‥Y幅
壁紙表示ハンドラ。
好きな壁紙を表示できます。
手抜きせずに対象矩形内だけに転送してね♪
pDoc は CDocumentIF* にキャストしてください。
OnEdit void* pDoc ‥ドキュメントI/F 文書更新ハンドラ。
文書内容が変更されたときに実行されます。
リアルタイムHTMLシミュレータなどに使用します。
pDoc は CDocumentIF* にキャストしてください。
OnSetting void* pDoc ‥ドキュメントI/F 設定ハンドラ。
設定ダイアログを表示すべきときに実行されます。
pDoc は CDocumentIF* にキャストしてください。
OnToolButton void* pDoc,  ‥ドキュメントI/F
int idxButton ‥ボタンの番号
ツールボタンハンドラ。
sbpがしたらびあん上にツールバー配置した場合、
ボタン押下をこのハンドラで受け取ります。
pDoc は CDocumentIF* にキャストしてください。
idxButtonはセパレータも数に含みます。
OnToolButtonUI void* pDoc,  ‥ドキュメントI/F
int idxButton, ‥ボタンの番号
void* pCmdUI ‥ボタンの番号
ツールボタンUIハンドラ。
sbpがしたらびあん上にツールバー配置した場合の、
ボタンの表示設定ハンドラです。
pCmdUI の利用方法は MFCの CCmdIF のヘルプを参照してください。
pDoc は CDocumentIF* にキャストしてください。
idxButton はセパレータも数に含みます。
pCmdUI は CCmdUI* にキャストしてください。
OnKeyDown void* pDoc,
  ‥ドキュメントI/F
UCHAR* punKey,
  ‥仮想キーコードへのポインタ
BOOL* pbShift,
  ‥Shiftキー押下状態
BOOL* pbCtrl,
  ‥Ctrlキー押下状態
BOOL* pbAlt
  ‥Altキー押下状態
キー押下ハンドラ。
キーが押されたときのハンドラです。
punKey 以下の引数の内容を改変することで、
キー入力をすり替えることができます。
キーマクロ、キー割り当てプラグインの作成に使用できる機能。
pDoc は CDocumentIF* にキャストしてください。
OnChar void* pDoc,
  ‥ドキュメントI/F
CString* pstrChar,
  ‥文字列へのポインタ
BOOL* pbShift
  ‥Shiftキー押下状態
BOOL* pbCtrl,
  ‥Ctrlキー押下状態
BOOL* pbAlt
  ‥Altキー押下状態
文字入力ハンドラ。
文字が入力されたときのハンドラです。
VK_RETURN などのキーコードを受け取ることがあるかもしれません。
IME入力によって文字列を受け取るかもしれません。
pstrChar 以下の引数の内容を改変することで、
入力をすり替えることができます。
キーマクロ、キー割り当てプラグインの作成に使用できる機能。
pDoc は CDocumentIF* にキャストしてください。


■4.したらびあんAPIリファレンス
 ◆注意点
  ・したらびあんが晒しているIF関数は一つです。
   CDocumentIF はこの関数へのラッパです。
   sbpからは CDocumentIF を使ってアクセスしてください。
  ・CDocumentIF クラスのヘッダ・実装はサンプルプロジェクトに含まれています。

 ◆CDocumentIFクラス
  ・したらびあんの実行情報へアクセスするためのIFクラスです。
  ・sbpには CDocumentIF クラスの実装を取り込む必要があります。
   具体的には、"DocumentIF.cpp"と"DocumentIF.h"をプロジェクトに追加せよ、ということ。
  ・CDocumentIF クラスのヘッダ・実装はサンプルプロジェクトに含まれています。
メンバ関数名 引数リスト 機能
(詳細は) (まだ) (書いてません)

TOPへ戻る>