MQBasePluginクラス

(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);

Product
プロダクト名(制作者名)をセットすべきポインタ
ID
プロダクトIDをセットすべきポインタ

プロダクト名(制作者名)とIDを、全部で64bitの値として返します。

Product および ID の値は他と重複しないような適当にランダムなもので構いません。

純粋仮想関数として宣言されており、継承クラスで実装することにより MQGetPlugInID() を隠ぺい化します。


virtual const char *MQBasePlugin::GetPlugInName();

戻り値
プラグイン名

[プラグインについて]ダイアログ上で表示するプラグイン名を返します。

純粋仮想関数として宣言されており、継承クラスで実装することにより MQGetPlugInName() を隠ぺい化します。


virtual int MQBasePlugin::GetPlugInType();

戻り値
プラグインタイプ
[MQPLUGIN_TYPE_IMPORT] ファイル入力用
[MQPLUGIN_TYPE_EXPORT] ファイル出力用
[MQPLUGIN_TYPE_CREATE] オブジェクト作成用
[MQPLUGIN_TYPE_OBJECT] オブジェクト変形用
[MQPLUGIN_TYPE_SELECT] 選択部変形用
[MQPLUGIN_TYPE_STATION] 常駐型
[MQPLUGIN_TYPE_COMMAND] コマンド (new in Rev2.41)

プラグインの種類を返します。

純粋仮想関数として宣言されており、継承クラスで実装することにより MQGetPlugInType() を隠ぺい化します。


MQSetting *MQBasePlugin::OpenSetting();

戻り値
設定オブジェクト

Metasequoia が各種設定を保存する metaseq.setting.xml ファイルへのアクセスを行うためのクラスを取得します。

取得した設定クラスを操作することにより、プラグイン独自の設定情報を読み込み・保存することができます。

取得した MQSetting クラスは CloseSetting() で削除する必要があります。

(in Rev4.00)

アクセスするファイルは metaseq.ini から metaseq.setting.xml へ変更されました。


void MQBasePlugin::CloseSetting(MQSetting *setting);

setting
設定オブジェクト

OpenSetting() で開いた設定オブジェクトを閉じます。


std::wstring MQBasePlugin::GetResourceString(const char *id);

id
リソース文字列ID
戻り値
文字列

(new in Rev4.00)

現在の言語のcommand.xml内で定義される文字列を取得します。


int MQBasePlugin::SendUserMessage(MQDocument doc, DWORD target_product, DWORD target_id, const char *description, void *param);

doc
ドキュメント
target_product
送出先プラグインのプロダクトID
target_id
送出先プラグインのプラグインID
description
メッセージの種類を示す任意の文字列
message
任意のメッセージ
戻り値
プラグインから返された値

(new in Rev2.41)

他の常駐型・コマンドプラグインに任意のメッセージを送ります。

プラグインに渡すデータは任意のものを message にポインタとして与えることができます。

target_product と target_id に 0 を指定すると、すべてのプラグインに通知されます。

送出されたメッセージは受け取り側のプラグイン側の MQStationPlugin::OnReceiveUserMessage() で受け取ります。

 

注意:Ver2.4.4または以前のバージョンでは、戻り値が正しく取得できません。