mqsdx 310.0.1 MQPluginSDK Extention Library / mqsdkをC++またはCLI(.Net)拡張するサポートライブラリ

- メインページ
- 関連ページ
- モジュール
- クラス
- ファイル

- 構成
- 構成索引
- クラス階層
- 構成メンバ

全て クラス 関数 変数 型定義 プロパティ グループ ページ
Public メソッド | すべてのメンバ一覧
クラス MQCLI::Plugins::StationPlugin
MQCLI-Plugins名前空間 | MQCLIの一覧

StationPluginを作成する時に継承するマネージドベースクラス [詳細]

MQCLI::Plugins::StationPluginに対する継承グラフ
[凡例]

## Public メソッド
| StationPlugin (const char *productName, const char *pluginFullName, const char *displayName)
| コンストラクタ（プラグインIDを自動生成して初期化） [詳細]
| StationPlugin (const char *productName, const char *pluginFullName, const char *displayName, const DWORD idProduct, const DWORD idPlugin)
| コンストラクタ（任意のプラグインIDを指定して初期化） [詳細]
Public メソッド inherited from MQCLI::Plugins::StationPluginTemplate< StationPluginsInterfacedBase, StationPluginsUnmanaged >
| StationPluginTemplate (const char *productName, const char *pluginFullName, const char *displayName)
| StationPluginTemplate (const char *productName, const char *pluginFullName, const char *displayName, const DWORD idProduct, const DWORD idPlugin)
Public メソッド inherited from MQCLI::Plugins::StationPluginsInterfacedBase
virtual BOOL | Activate (MQDocument doc, BOOL flag)
void | BeginCallback (void *option)
const char * | EnumString ()
virtual bool | ExecuteCallback (MQDocument doc, void *option)
virtual void | Exit ()
void | GetPlugInID (DWORD *Product, DWORD *ID)
const char * | GetPlugInName ()
int | GetPlugInType ()
virtual BOOL | Initialize ()
virtual BOOL | IsActivated (MQDocument doc)
virtual void | OnDraw (MQDocument doc, MQScene scene, int Width, int Height)
virtual void | OnEndDocument (MQDocument doc)
virtual void | OnMaterialModified (MQDocument doc)
virtual void | OnMinimize (MQDocument doc, BOOL flag)
virtual void | OnNewDocument (MQDocument doc, const char *filename, MQStationPlugin::NEW_DOCUMENT_PARAM &param)
virtual void | OnObjectModified (MQDocument doc)
virtual void | OnObjectSelected (MQDocument doc)
virtual int | OnReceiveUserMessage (MQDocument doc, DWORD src_product, DWORD src_id, const char *description, void *message)
virtual BOOL | OnRedo (MQDocument doc, int redo_state)
virtual void | OnSaveDocument (MQDocument doc, const char *filename, MQStationPlugin::SAVE_DOCUMENT_PARAM &param)
virtual BOOL | OnUndo (MQDocument doc, int undo_state)
virtual void | OnUpdateMaterialList (MQDocument doc)
virtual void | OnUpdateObjectList (MQDocument doc)
virtual void | OnUpdateScene (MQDocument doc, MQScene scene)
virtual void | OnUpdateUndo (MQDocument doc, int undo_state, int undo_size)
int | SendUserMessage (MQDocument doc, DWORD target_product, DWORD target_id, const char *description, void *param)
void | WindowClose ()

## Additional Inherited Members
Protected 型 inherited from MQCLI::Plugins::StationPluginTemplate< StationPluginsInterfacedBase, StationPluginsUnmanaged >
typedef PluginDefault::DRAW_OBJECT_VIISIBILITY | DRAW_OBJECT_VIISIBILITY
typedef PluginDefault < typename StationPluginsUnmanaged::PluginType > | PluginDefault
typedef PluginDefault::SCENE_OPTION | SCENE_OPTION
Protected メソッド inherited from MQCLI::Plugins::StationPluginTemplate< StationPluginsInterfacedBase, StationPluginsUnmanaged >
MQMaterial | CreateDrawingMaterial (MQDocument doc, int &index, BOOL instant)
MQMaterial | CreateDrawingMaterial (MQDocument doc, int &index)
MQObject | CreateDrawingObject (MQDocument doc, DRAW_OBJECT_VIISIBILITY visibility, BOOL instant)
MQObject | CreateDrawingObject (MQDocument doc, DRAW_OBJECT_VIISIBILITY visibility)
void | DeleteDrawingMaterial (MQDocument doc, MQMaterial mat)
void | DeleteDrawingObject (MQDocument doc, MQObject obj)
int | GetCurrentUndoState (MQDocument doc)
void | GetSceneOption (MQScene scene, SCENE_OPTION &option)
プロパティ inherited from MQCLI::Plugins::StationPluginTemplate< StationPluginsInterfacedBase, StationPluginsUnmanaged >
MQBasePlugin * | basePlugin`[get]`
StationPluginsUnmanaged * | pluginBody`[get]`
MQ0x::SettingProxy::Handle | Setting`[get]`
| Settingハンドルの取得 [詳細]
MQStationPlugin * | stationPlugin`[get]`

## 説明

StationPluginを作成する時に継承するマネージドベースクラス

MQCLI::StationPluginはMQStationPluginのラッパークラスです。MQStationPlugin同様に、1.継承する／2.カスタム処理をオーバーライドする、という手順でプラグインを作る基底クラスです。 ただしもうひとつ「3.最初に一度だけ MQCLI::Initialize()にインスタンスを生成して渡す」という処理を記述するようにしてください。

#include "mqsdx/MQCLI.hpp"
public ref class CustomPlugin : MQCLI::StationPlugin {
public:
CustomPlugin() : CommandPlugin( "tiritomato", "Sample Copyright(C) 2013, tiritomato.", "SampleButton" ) {}
virtual BOOL Activate(MQDocument doc, BOOL flag) override {
if ( flag == TRUE ) ::MessageBox( MQ_GetWindowHandle(), "Activate!", NULL, 0 );
return flag;
}
};
static bool initialResult = MQCLI::Initialize( gcnew CustomPlugin() ); //Initialize!

MQCLIライブラリではこの手順だけでプラグインを作る事が可能です（というよりこれ以外の手順では作れません）。

- このサンプルではActivateメソッドをオーバーライドしています。オーバーライドできる機能やメソッド名は、もともとのメタセコイアプラグインSDKとほぼ同じなので、プラグインSDKのヘルプファイルをチェックしてください。
- MQCLIの使い方：コンパイルするためのプロジェクト設定／初期化の制約／DllMain()などの行方

MQStationPluginとの相違点

1.MQSettingに代わりSettingProxyを使用します
  MQCLI::StationPlugin::Settingプロパティでハンドルを取得してMQ0x::SettingProxyクラスを生成します。

MQ0x::SettingProxyはMQSettingクラスの代行です。コンストラクト時にOpen、デストラクト時にCloseを自動的に実行します。さきほどのActivateメソッド内でSave/Loadするとこんな感じです。

public ref class CustomPlugin : MQCLI::StationPlugin {
public:
CustomPlugin() : StationPlugin( "tiritomato", "Sample Copyright(C) 2013, tiritomato.", "SampleButton" ) {}
virtual BOOL Activate(MQDocument doc, BOOL flag) override {
if ( flag == TRUE ) {
SettingProxy setting( MQCLI::StationPlugin::Setting );
setting.Load(...);
setting.Save(...);
setting.Close(); // このClose()はSettingProxyのデストラクタに任せる事も出来ます。
::MessageBox( MQ_GetWindowHandle(), "Activate!", NULL, 0 );
}
return TRUE;
}
};

2.いくつかの抽象メソッドの実装が既に代行されています。
  MQStationPluginで実装しなければいけなかったいくつかの仮想メソッドの仮実装は既に記述してあります。必要な時だけオーバーライドしてください。

なお下記にリストされる基本的な仮想関数はオーバーライドでカスタムすることはできません。これらの返すべき値は、StationPluginコンストラクタに初期値として設定します。

- GetPlugInID()
- GetPlugInName()
- EnumString()

覚え書き

継承構造
  StationPluginsInterfacedBase／ベースクラス。外部から参照されるvirtualメソッド全般の標準実装。

  StationPluginTemplate／protectedメソッドの実装

## コンストラクタとデストラクタ

MQCLI::Plugins::StationPlugin::StationPlugin | ( | const char * | productName,
|  | const char * | pluginFullName,
|  | const char * | displayName
| ) |  |
| inline

コンストラクタ（プラグインIDを自動生成して初期化）

引数

  productName | 作者名を指定します。設定した値はGetProductName()で取得されます。この文字列のハッシュをProductIDに設定します。
  pluginFullName | プラグイン名を設定します。設定した値はGetPlugInName()で取得されます。この文字列のハッシュをPluginIDに設定します。
  displayName | 表示名を設定します。設定した値はEnumString()で取得されます。

覚え書き
  ハッシュはMQ0x::CollectionHashCode<DWORD>(const char*)によって計算されます。

MQCLI::Plugins::StationPlugin::StationPlugin | ( | const char * | productName,
|  | const char * | pluginFullName,
|  | const char * | displayName,
|  | const DWORD | idProduct,
|  | const DWORD | idPlugin
| ) |  |
| inline

コンストラクタ（任意のプラグインIDを指定して初期化）

引数

  productName | 作者名を指定します。設定した値はGetProductName()で取得されます。
  pluginFullName | プラグイン名を設定します。設定した値はGetPlugInName()で取得されます。
  displayName | 表示名を設定します。設定した値はEnumString()で取得されます。
  idProduct | 任意のプロダクトIDを指定します。
  idPlugin | 任意のプラグインIDを指定します。