DLLプラグイン用のI/F
- ページ: Request
- 投稿者: anonymous
- 優先順位: 低
- 状態: 提案
- カテゴリー:
- 投稿日: 2013-03-25 (月) 20:13:07
- バージョン:
メッセージ
DLLプラグイン用のI/Fを実装してほしい。
- CSMacroMgr::m_MacroFuncInfoNotCommandArr, m_MacroFuncInfoArrをプラグイン接続時等に取得できること。できない場合はこれらの定義をプラグインのコンパイル時にインクルードできるようにすること。 --
- マクロスクリプト言語として登録するため、RegisterCreatorに渡すクラスの継承元であるCMacroManagerBaseをプラグインで利用できるようにすること。 --
- RegisterClassを呼び出してマクロ言語として登録(解除)する手段を用意すること。 --
- プラグインからHandleCommand,HandleFunctionを呼び出す手段を用意すること。 --
- プラグインの作成を容易にするために、CDialog等の基底クラスをライブラリとして提供できるとよい。これらはサクラエディタと共有する必要はない。 --
- バージョンアップ時に互換性を保ちつつI/Fを拡張できるようにすること。 --
- m_MacroFuncInfoNotCommandArr, m_MacroFuncInfoArrを動的に受け取る必要がないとき、あらかじめマクロまたは関数呼び出し口をライブラリとして用意しておくと、プラグイン作成が楽になる。(char<>wchar<>BSTR変換とか面倒) --
- Functioncode_enum.hは独立しているのでプラグインでそのままインクルードして利用できる。 --
- CDllPlugin::InvokePlugのparamsにオブジェクトを渡し、CDllPlugin::InvokePlugのplug.m_handler();で必要な情報をプラグインに渡す。 --
- RegisterClassを呼び出す仕組みは、CComplementIfObjみたいに専用のFuncIdを持つDLL用CDllPluginIfObjみたいなのを作るのかな --
- m_MacroFuncInfoNotCommandArr, m_MacroFuncInfoArrは*IfObbj毎に重複するIDで持っているので、IfObj毎に渡す必要がある。最低限PluginIfObj/EditorIfObjを渡す。 --
- プラグイン開発ガイドのDLLプラグイン固有[DLL]は[Dll]の間違い。 --
- CPluginIfObj.hで実体定義しててこのヘッダ使えない。 --
- 元のCWSHIfObjクラスがGetMacroCommandInfoとかHandleFunctionをpublicにしてないから --
- m_nPlugIndexが未初期化なので、提供関数を呼ぶとでたらめな値が返ってくる。 --
|