|
DLLプラグイン用のI/FメッセージDLLプラグイン用のI/Fを実装してほしい。 DLLプラグイン仕様書(α版)※DLLプラグインは開発中です。 はじめにDLLプラグインはDLLを使用してサクラエディタ本体に様々な機能を提供します。 DLLプラグイン開発環境プラグイン開発フォルダは以下のような構成になります。 <Sakura Editor Source>/ sakura_core/ plugin/ SakuraPlugin.h -- DLLプラグインI/Fヘッダ external/ plugins/ common/ CBasePluginService.cpp -- プラグインサービス基本クラス CBasePluginService.h -- プラグインサービス基本クラス CExternalComplementIfObj.cpp -- 補完アクセスクラス CExternalComplementIfObj.h -- 補完アクセスクラス CExternalEditorIfObj.cpp -- エディタアクセスクラス CExternalEditorIfObj.h -- エディタアクセスクラス CExternalIfObj.h -- アクセスクラス基本クラス CExternalMacroIfObj.cpp -- マクロアクセスクラス CExternalMacroIfObj.h -- マクロアクセスクラス CExternalOutlineIfObj.cpp -- アウトラインアクセスクラス CExternalOutlineIfObj.h -- アウトラインアクセスクラス CExternalPluginIfObj.cpp -- プラグインアクセスクラス CExternalPluginIfObj.h -- プラグインアクセスクラス CExternalSmartIndentIfObj.cpp -- スマートインデントアクセスクラス CExternalSmartIndentIfObj.h -- スマートインデントアクセスクラス SakuraMeetsPlugin.cpp -- プラグインサービス公開API SakuraMeetsPlugin.h -- プラグインサービス公開API SakuraMeetsPlugin.def -- プラグインサービス公開APIサンプル定義ファイル plugin.def -- プラグイン定義サンプルファイル HelloPlugin/ CPluginService.cpp -- プラグインサービス本体です CPluginService.h -- プラグインサービス本体です dllmain.cpp -- ここに hInstance 設定を追加します HelloPlugin.cpp -- ここに独自の公開APIを追加します HelloPlugin.def -- プラグインサービス公開API定義ファイル HelloPlugin.sln HelloPlugin.vcxproj HelloPlugin/ plugin.def -- プラグイン定義サンプルファイル ReadMe.txt stdafx.cpp stdafx.h <Your Plugin Folder>/ -- ここに新しいプラグインフォルダを作ります tools/ -- プラグイン作成のためのツール類をここに置きます <Your Tool Folder>/ プロジェクトの作成Visual StudioでDLLアプリケーションプロジェクトを作成します。
プロジェクトに common/ 配下のソースファイルとヘッダファイルをすべて追加します。 #include "stdafx.h" + #include "SakuraMeetsPlugin.h" BOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ) { + SetDllInstance(hModule); switch (ul_reason_for_call) { ... CBasePluginServiceクラスを継承したCPluginServiceクラスを作成します。 アクセスクラスPluginサクラエディタのプラグイン情報にアクセスします。 sakura_core/plugin/CPluginIfObj.h external/plugins/common/CExternalPluginIfObj.h
Editorサクラエディタのエディタ情報にアクセスします。 sakura_core/macro/CEditorIfObj.h external/plugins/common/CExternalEditorIfObj.h
Macroサクラエディタのマクロ情報にアクセスします。 sakura_core/macro/CMacroIfObj.h external/plugins/common/CExternalMacroIfObj.h external/plugins/common/CBasePluginService.cpp の OnPluginMacroメソッド DLLマクロは2回呼び出されます。どの呼び出しかは GetMode() で確認できます。
Outlineサクラエディタのアウトライン情報にアクセスします。 sakura_core/plugin/COutlineIfObj.h external/plugins/common/CExternalOutlineIfObj.h
SmartIndentサクラエディタのスマートインデント情報にアクセスします。 sakura_core/plugin/CSmartIndentIfObj.h external/plugins/common/CExternalSmartIndentIfObj.h
Complementサクラエディタの補完情報にアクセスします。 sakura_core/plugin/CComplementIfObj.h external/plugins/common/CExternalComplementIfObj.h
|