(new in Rev2.40)
MQBasePlugin クラスはすべての種類のプラグインの基底となるクラスで、MQBasePlugin.cpp および MQBasePlugin.h をプロジェクトに追加することでクラスライブラリとして利用します。MQBasePluginから派生したクラスを GetPluginClass() で返すことにより、本体との複雑なメッセージ処理を隠ぺい化して簡便な実装で各プラグインを作成することができます。
MQBasePlugin クラス内には各プラグイン関数が仮想関数として宣言されており、継承クラスで各仮想関数を実装する必要があります。
クラス | |
MQBasePlugin | コンストラクタ |
~MQBasePlugin | デストラクタ |
プラグイン | |
GetPlugInID | プラグインIDの取得 |
GetPlugInName | プラグイン名の取得 |
GetPlugInType | プラグインの種類の取得 |
補助関数 | |
OpenSetting | 設定ファイルを開く |
CloseSetting | 設定ファイルを閉じる |
GetResourceString | リソース文字列を取得する |
SendUserMessage | 他のプラグインにプラグイン独自のメッセージを送る |
MQBasePlugin::MQBasePlugin();
コンストラクタです。
virtual MQBasePlugin::~MQBasePlugin();
デストラクタです。仮想関数として定義されます。
virtual void MQBasePlugin::GetPlugInID(DWORD *Product, DWORD *ID);
プロダクト名(制作者名)とIDを、全部で64bitの値として返します。
Product および ID の値は他と重複しないような適当にランダムなもので構いません。
純粋仮想関数として宣言されており、継承クラスで実装することにより MQGetPlugInID() を隠ぺい化します。
virtual const char *MQBasePlugin::GetPlugInName();
[プラグインについて]ダイアログ上で表示するプラグイン名を返します。
純粋仮想関数として宣言されており、継承クラスで実装することにより MQGetPlugInName() を隠ぺい化します。
virtual int MQBasePlugin::GetPlugInType();
プラグインの種類を返します。
純粋仮想関数として宣言されており、継承クラスで実装することにより MQGetPlugInType() を隠ぺい化します。
MQSetting *MQBasePlugin::OpenSetting();
Metasequoia が各種設定を保存する metaseq.setting.xml ファイルへのアクセスを行うためのクラスを取得します。
取得した設定クラスを操作することにより、プラグイン独自の設定情報を読み込み・保存することができます。
取得した MQSetting クラスは CloseSetting() で削除する必要があります。
(in Rev4.00)
アクセスするファイルは metaseq.ini から metaseq.setting.xml へ変更されました。
void MQBasePlugin::CloseSetting(MQSetting *setting);
OpenSetting() で開いた設定オブジェクトを閉じます。
std::wstring MQBasePlugin::GetResourceString(const char *id);
(new in Rev4.00)
現在の言語のcommand.xml内で定義される文字列を取得します。
int MQBasePlugin::SendUserMessage(MQDocument doc, DWORD target_product, DWORD target_id, const char *description, void *param);
(new in Rev2.41)
他の常駐型・コマンドプラグインに任意のメッセージを送ります。
プラグインに渡すデータは任意のものを message にポインタとして与えることができます。
target_product と target_id に 0 を指定すると、すべてのプラグインに通知されます。
送出されたメッセージは受け取り側のプラグイン側の MQStationPlugin::OnReceiveUserMessage() で受け取ります。
注意:Ver2.4.4または以前のバージョンでは、戻り値が正しく取得できません。